Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
faecher:informatik:oberstufe:algorithmen:rekursion:programmaufrufstack:start [13.01.2022 08:59] – angelegt sbel | faecher:informatik:oberstufe:algorithmen:rekursion:programmaufrufstack:start [13.01.2022 10:06] – sbel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Der Programmaufrufstack ====== | ====== Der Programmaufrufstack ====== | ||
+ | Unter dem (Programm)Aufrufstapel (englisch call stack, procedure stack) versteht man einen besonders genutzten Stapelspeicher, | ||
+ | |||
+ | Was bedeutet das? Wir betrachten ein Beispiel: | ||
+ | |||
+ | <code java> | ||
+ | public class Hallo | ||
+ | { | ||
+ | public Hallo(String name) | ||
+ | { | ||
+ | System.out.println(" | ||
+ | GruessGott(name); | ||
+ | System.out.println(" | ||
+ | AufWiedersehen(); | ||
+ | AufWiedersehen(); | ||
+ | } | ||
+ | | ||
+ | public void GruessGott(String name) { | ||
+ | System.out.println(" | ||
+ | |||
+ | } | ||
+ | | ||
+ | public void AufWiedersehen() { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | Beim Aufruf des Konstruktors werden also zwei weitere Methoden, also " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dabei fällt auf, dass der Programmablauf nach jedem Aufruf eines Unterprogramms zu der Stelle zurückkehren muss, von der dieses aufgerufen wurde. Das wird dadurch realisiert, dass beim Aufruf einer Methode/ | ||
+ | |||
+ | ^ Was passiert | ||
+ | |\\ || | ||
+ | | Der Konstruktor wird mit dem Argument '' | ||
+ | |\\ || | ||
+ | | Aus dem Konstruktor heraus wird die Methode '' | ||
+ | |\\ || | ||
+ | | Die Bearbeitung von '' | ||
+ | |\\ || | ||
+ | | Aus dem Konstruktor heraus wird die Methode '' | ||
+ | |\\ || | ||
+ | | Der erste Aufruf von '' | ||
+ | | Aus dem Konstruktor heraus wird die Methode '' | ||
+ | |\\ || |