Fragen zu Paketen

Fragen zu Paketen in anderen Kategorien:

1. Pakete und Sichtbarkeit von Klassen und Methoden

Die unten aufgeführten Klassen befinden sich in unterschiedlichen Paketen.

  • Fügen Sie in die Klassen des Pakets Paket1 die minimal benötigten Modifizierer ein, die für das Paket Paket2 und das Paket Paket3 benötigt werden
  • Fügen Sie im Quellcode der Klassen KlasseAC und KlasseABD alle benötigten Befehle zur Benutzung der Klassen im Paket Paket1 ein.

Der Befehl String s = aa.print(); in der Klasse KlasseABD ist auch trotz korrekter Import-kommandos nicht übersetzbar. Änderen Sie einen der gegebenen Methoden-modifizierer so, dass das Kommando übersetzbar wird. Ändern Sie keine Modfizierer von Klassen oder Paketzugehörigkeiten! 

Fügen Sie alle Änderungen direkt im Quellcode ein.

Datei: KlasseA.java:
package Paket1;
class KlasseA {
protected String print()
{return "KlasseA";} }

Datei KlasseAA.java:

package Paket1;
class KlasseAA extends KlasseA{  }

Datei KlasseAB.java:

package Paket1;
class KlasseAB extends KlasseA{  }
Lage der Klassen in den Paketen
Datei KlasseAC.java:
package Paket2;
class KlasseAC extends KlasseA { }
Datei Klasse KlasseABD.java:
package Paket3;
  
class KlasseABD extends KlasseAB{
KlasseA myRef;
public void test() {
KlasseAB aa = new KlasseAB();
String s = aa.print(); } }

 

 

Niveau 1
Schwierigkeitsgrad mittel
Zeit 7 Minuten

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

2. 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 : Pakete und Sichtbarkeit von Klassen und Methoden

Die notwendigen Änderungen sind fett gedruckt. Bzw. mit horizontaler Linie durchgestrichen.

Datei: KlasseA.java:
package Paket1;
public class KlasseA {
public protected String print()
{return "KlasseA";} }

Datei KlasseAA.java:

package Paket1;
class KlasseAA extends KlasseA{  }

Datei KlasseAB.java:

package Paket1;
public class KlasseAB extends KlasseA{  }
Lage der Klassen in den Paketen
Datei KlasseAC.java:
package Paket2;
import Paket1.KlasseA; class KlasseAC extends KlasseA { }
Datei Klasse KlasseABD.java:
package Paket3;
import Paket1.KlasseAB;
import Paket1.KlasseA;
  
class KlasseABD extends KlasseAB{
KlasseA myRef;
public void test() {
KlasseAB aa = new KlasseAB();
String s = aa.print(); } }

3. Verschiedene Arten der Importdeklaration

Java verfügt über zwei Arten Klassen anderer Pakete zu importieren. Nennen Sie die beiden Importverfahren und geben Sie eine Begründung wann der Entwickler welches Verfahren anwenden sollte.

Niveau 1
Schwierigkeitsgrad mittel
Zeit 3 Minuten

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

Antwort zu Frage 2.: Pakete und Schutz von Variablen

Klasse1a.java:

package Paket1;

import Paket2.*; 
public class Klasse1a {
   Klasse1a v1;
   Klasse2a v2;
   Klasse2b v3;

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

Klasse2a.java

package Paket2;

import Paket1.Klasse1a;

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

Klasse2b.java

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

}

 

4. Klassen importieren ohne Schlüsselwort

Bei welchem der beiden Importverfahren benötigt man kein Schlüsselwort und warum?

Niveau 1
Schwierigkeitsgrad mittel
Zeit 2 Minuten

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

Antwort zu Frage 3: Verschiedene Arten der Importdeklaration

  1. Expliziter Import: Zu importierende Klassen werden am Anfang einer Klasse importiert. Die importierten Klassennamen können dann ohne das vorangestellte Paket benutzt werden. Dies ist nützlich wenn man die Klassen an mehreren Stellen verwendet. Es ist weniger Schreibarbeit nötig.
  2. Impliziter Import: Die Klasse wird mit ihrem Paket vollständig bei der Benutzung genannt. Dies ist weniger Schreibarbeit wenn man die zu importierende Klasse nur einmal benutzen muss. Ein impliziter Import kann auch nötig sein falls zwei Klassen mit dem gleichen Namen aus verschiedenen Paketen benutzt werden müssen. Man kann so beschreiben welche der beiden Klassen benutzt werden soll.

5. Pakete, Importdeklarationen

Die Klasse Strecke aus dem Paket Nahe (Datei 3) soll die beiden Referenzvariablen anfang und ende vom Typ Punkt verwenden. Die beiden Referenzvariablen anfang und ende sollen aber die Implementierung eines Punktes aus dem Paket Entfernt (Datei 1) verwenden und nicht die Implementierung aus dem gleichen Paket (Datei 2).

Die genaue Typdeklaration der beiden Variablen anfang und ende fehlt in Datei 3. Fügen Sie die korrekte Typbezeichnung ein.

Es gibt zwei unterschiedliche Möglichkeiten den Import der Klasse Entfernt.Punkt in der Klasse Nahe.Strecke (Datei 3) zu deklarieren.
Fügen Sie in den unten aufgeführten Quellcode die beiden Möglichkeiten des Imports in Datei 3 ein:

Importmöglichkeit 1 Importmöglichkeit 2
Datei 1:
package Entfernt;
public class Punkt {
...
}

Datei 2:

package Nahe;
public class Punkt {
...}

Datei 3:

package Nahe;

            

public class Strecke {
Punkt anfang;
Punkt ende;
}

Datei 1:
package Entfernt;
public class Punkt {
...
}

Datei 2:

package Nahe;
public class Punkt {
...}

Datei 3:

package Nahe;

            

public class Strecke {
Punkt anfang;
Punkt ende;
}

Die Antwort finden Sie auf der nächsten Seite (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Antwort zu Frage 4: Klassen importieren ohne Schlüsselwort

Beim impliziten Import. Man gibt bei der Benennung des Typs alle Pakete mit an. Bespiel:

 

Paket1.Person = new Paket1.Person();

Antwort zu Frage 5.

Erstmal nur eine Antwort

Frage 5: Pakete und Importdeklarationen

Importmöglichkeit 1 Importmöglichkeit 2
Datei 1:
package Entfernt;
public class Punkt {
...
}

Datei 2:

package Nahe;
public class Punkt {
...}

Datei 3:

package Nahe;
import Entfernt;
            

public class Strecke {
Punkt anfang;
Punkt ende;
}

Datei 1:
package Entfernt;
public class Punkt {
...
}

Datei 2:

package Nahe;
public class Punkt {
...}

Datei 3:

package Nahe;

            

public class Strecke {
Entfernt.Punkt anfang;
Entfernt.Punkt ende;
}