Skip to Content

1.62 Referenzieren-Dereferenzieren

Gegeben sei die Klasse Person mit einem Programm welches Objekte vom Typ Person anlegt:

public class Person {
   public Person vater;
   public Person mutter;

   public static void main (String[] args ) {
      Person p1 = new Person();
      Person p2 = new Person();
      p1.vater = p2;
      p2 = null;
      // Zeitpunkt 1
     execute(p1);
     // Zeitpunkt 3
   } // Ende main

   public static void execute(Person p) {
      Person[] persFeld = new Person[2];
      persFeld[1] = p;
      persFeld[0] = new Person();
      persFeld[0].vater = new Person();
      persFeld[0].mutter = new Person();
      // Zeitpunkt 2
   } // Ende aufrufen()
} // Ende Klasse Person

Zum Zeitpunkt 1 ergibt sich das folgende Modell für den Stapel (Stack) und den Objekt-Heap:

Heapdarstellung mit Javaobjekten

  • Aufgabe 1: Tragen Sie im Diagramm die zum Zeitpunkt 2 angelegten Objekte auf Heap und Stack ein. Nutzen Sie bitte den Diagrammstil wie vorgegeben.
  • Aufgabe 2: Markieren Sie das Objektmodell zum Zeitpunkt 3 im gleichen Diagramm:
    • Markieren Sie alle nicht erreichbaren Objekte mit der Bemerkung: „nicht erreichbar“.  Diese Objekte sind Kandidaten zum Löschen durch den „Garbagecollector“,

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Niveau 1
Schwierigkeitsgrad mittel
Zeit 6+6 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 1.61: Implementieren eines Konstruktors der einen anderen Konstruktor der gleichen Klasse aufruft

public class Dreieck {
   double seite1;
   double seite2;
   double seite3;
   /** Erzeugen eines Dreiecks mit drei unterschiedlichen Seiten
   */
   public Dreieck (double a, double b, double c) {
      seite1= a;
      seite2= b;
      seite3= c;
   }

   /** Erzeugen eines gleichseitigen Dreiecks */
   public Dreieck(double a) {
      this (a,a,a);
   }// Ende Konstruktor
}// Ende der Klasse


blog | by Dr. Radut