Fragen zu Paketen
Fragen zu PaketenFragen zu Paketen in anderen Kategorien:
- Implementieren einer Klasse (Pakete, Konstruktoren, Datenkapselung, Methoden) (enthält auch Teilfragen anderer Bereiche)
- 1247 views
1. Pakete und Sichtbarkeit von Klassen und Methoden
1. Pakete und Sichtbarkeit von Klassen und MethodenDie 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; Datei KlasseAA.java: package Paket1; Datei KlasseAB.java: package Paket1; |
|
Datei KlasseAC.java:
package Paket2; |
Datei Klasse KlasseABD.java:
package Paket3; class KlasseABD extends KlasseAB{ |
Niveau | 1 |
Schwierigkeitsgrad | mittel |
Zeit | 7 Minuten |
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
- 5400 views
Überschreiben
Laut der Oracle Java Documentation überschreibt eine Methode einer Unterklasse die Methode einer Oberklasse, wenn
a) sie die gleiche Signatur (Name und Parameterliste) hat,
b) sie den gleichen Rückgabetyp hat,
c) die überschriebene Methode nicht statisch ist ("hiding"),
d) die Zugriffsmodifikatoren der Methode der Unterklasse nicht beschränkender als die der Oberklasse sind.
Quelle: "Overriding and Hiding Methods", Oracle Java Documentation
- Log in to post comments
2. Pakete und Schutz von Variablen
2. Pakete und Schutz von VariablenErgä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; Datei KlasseAA.java: package Paket1; Datei KlasseAB.java: package Paket1; |
|
Datei KlasseAC.java:
package Paket2; |
Datei Klasse KlasseABD.java:
package Paket3; import Paket1.KlasseAB; import Paket1.KlasseA; class KlasseABD extends KlasseAB{ |
- 4559 views
Antwort in Aufgabe
Die Antwort für die 4. Teilaufgabe steht schon im Quellcode der Frage.
- Log in to post 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.
- Log in to post comments
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
- Log in to post comments
3. Verschiedene Arten der Importdeklaration
3. Verschiedene Arten der ImportdeklarationJava 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; }
- 3617 views
man kommt zwar auch anders
man kommt zwar auch anders zur Antwort, aber hier fehlt der Direktlink unten rechts
- Log in to post comments
4. Klassen importieren ohne Schlüsselwort
4. Klassen importieren ohne SchlüsselwortBei 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
- 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.
- 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.
- 3560 views
5. Pakete, Importdeklarationen
5. Pakete, ImportdeklarationenDie 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 { |
Datei 1:
package Entfernt; public class Punkt { ... } Datei 2: package Nahe; public class Punkt { ...} Datei 3: package Nahe; public class Strecke { |
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 p = new Paket1.Person();
- 4831 views
Fehlender Objektname?
Fehlt hier in der letzten Zeile nicht ein Name für das neue Objekt? Wie referenzieren wir sonst unser Paket1.Person Objekt?
- Log in to post comments
Antwort zu Frage 5.
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; |
Datei 1:
package Entfernt; public class Punkt { ... } Datei 2: package Nahe; public class Punkt { ...} Datei 3: package Nahe; |
- 2767 views