Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige ÜberarbeitungLetzte Ü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 12:39] – 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 '' | ||
+ | |\\ || | ||
+ | | Der zweite Aufruf von '' | ||
+ | |\\ || | ||
+ | |Der Konstruktoraufruf ist beendet.\\ Der Call-Stack ist leer. | {{ .: | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A1) === | ||
+ | |||
+ | Welche Informationen kannst du den folgenden Darstellungen des Programmaufrufstacks entnehmen? Welche Informationen kannst du den Darstellungen des Stacks nicht entnehmen? | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ : |