Skip to Content

1.73 Pakete und Schutz von Variablen

Ergänzen Sie die folgenden Pakete mit den notwendigen Importkommandos:

Das Paket Paket1 ist gegeben mit der Klasse Klasse1a.

Das Paket Paket2 ist gegeben mit den Klassen Klasse2a und Klasse2b.

  • Fügen Sie in der Klasse Klasse1a genau einen expliziten Importbefehl ein, der Ihnen erlaubt alle Klassen des Paket2 zu verwenden.
  • Fügen Sie in der Klasse Klasse2a einen expliziten Importbefehle ein, der Ihnen nur die Benutzung der Klasses1a erlaubt.
  • Fügen Sie in der Klasse Klasse2b einen impliziten Import ein, der Ihnen nur erlaubt die Klasse Klasse1a im Attribut v1 zu verwenden.
  • Fügen Sie in der Klasse2a einen Modifizierer ein, der es erlaubt, das Attribut a in der Klasse Klasse1a zu verwenden. Die geschieht in der Methode test() Fügen Sie alle nötigen Befehle direkt im Quellcode ein.

Klasse1a.java:

package Paket1;


public class Klasse1a {
   Klasse1a v1;
   Klasse2a v2;
   Klasse2b v3;

   void test(Klasse2a obj) {
      obj.a = 17;
   }
}

Klasse2a.java

package Paket2;


 class Klasse2a {
   Klasse1a v1;
   Klasse2a v2;
   Klasse2b v3;
          int a;
}

Klasse2b.java

package Paket2;
public class Klasse2b {
           Klasse1a v1;
           Klasse2a v2;
           Klasse2b v3;  

}
Niveau 1
Schwierigkeitsgrad mittel
Zeit 8 Minuten

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

Antwort zu Frage 1.72: Vergleich der Syntax von Konstruktoren und normalen Methoden

  • Ein Konstruktor hat keinen Rückgabewert
  • Der Name eines Konstruktors ist immer identisch mit dem der Klasse

Comments

Lösungen

Zu Punkt 4 der Aufgabe: "Fügen Sie in der Klasse2a einen Modifizierer ein, der es erlaubt, das Attribut a in der Klasse Klasse1a zu verwenden. Die geschieht in der Methode test() Fügen Sie alle nötigen Befehle direkt im Quellcode ein."
Im Quellcode in der Aufgabe ist das Attribut bereits public oder war danach nicht gefragt? Ich erkenne hier keinen Unterschied zur Musterlösung.

Danke!

Gut beobachtet. Hier wurde versehentlich die Lösung mit in die Aufgabenstellung kopiert. Wurde behoben. Danke.

Stimmt

Oops.
Copy und paste Fehler. Wurde korrigiert. Danke!

Falls ich hier etwas nicht

Falls ich hier etwas nicht komplett missverstehe, ist die Lösung der 4. Teilaufgabe weiterhin bereits vorgegeben: "public int a;"

Außerdem: Nach dem Skript dachte ich, dass die Lösung der erste Teilaufgabe eigentlich "import Paket2.*;" sein müsste (expliziter Import aller Klasse aus Paket2).
In der Lösung heißt es aber nur "import Paket2;" ohne Stern.

Wo ist mein Denkfehler?
Danke

Antwort in Aufgabe

Die Antwort für die 4. Teilaufgabe steht schon im Quellcode der Frage.

Korrekt

Danke für den Kommentar. Der Fehler wurde korrigiert. Ich musste leider im Kommentar die korrekt genannte Lösung löschen. Die Spannung auf dieser Seite wäre sonst weg. :-)



blog | by Dr. Radut