Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
faecher:informatik:oberstufe:algorithmen:rekursion:programmaufrufstack:start [13.01.2022 12:40] – sbel | faecher:informatik:oberstufe:algorithmen:rekursion:programmaufrufstack:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 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? | ||
- | |||
- | {{ : | ||
- | |||
- | ---- | ||
- | |||
- | {{ : |