S
SanLuca1988
Gast
Hallo Java Gemeinde,
wir haben in der Schule nun mit der Java Programmierung begonnen und sind nun dabei einige Vokabeln zu lernen.
In der letzten Stunde hat unser Lehrer uns ein Beispiel gezeigt, das mit einem Standardkonstruktor arbeitet. Also, wenn ein Objekt erzeugt wird und man hat keinen Konstruktor selbst geschrieben in der Klasse, so wird ein Standardkonstruktor von Java selbst gesetzt. So hab ich das verstanden.
Jetzt ist in der Hausaufgabe eine Frage:
Warum kann man in der Klasse „Test" im selben Paket
ein Objekt von der Klasse „Kunde“ erzeugen, obwohl die Klasse
„Test“ keinen Konstruktor hat. Welches Risiko entsteht dadurch?
Ich habe geantwortet:
Die Klasse "Test" hat zwar keinen sichtbaren Konstruktor, wohl aber einen default-Konstruktor der nicht extra codiert werden muss, er wird automatisch ausgeführt. Der default-Konstruktor hat immer die gleiche Sichtbarkeit wie die Klasse. Ist also die Klasse z.B. public, wird auch der automatisch eingeführte Konstruktor public sein. Ist die Klasse in einem Paket sichtbar, so ist es auch der default-Konstruktor in dem Paket sichtbar. Eine Gefahr besteht darin, dass man zwar die Klasse z.B. in einem Paket durchaus sichtbar halten möchte, aber nicht den Konstruktor. Hier muss man dann einen Konstruktor selbst anlegen.
Hab ich das Theman und damit die Frage so richtig beantwortet. Kann mir jemand helfen?
Vielen lieben Dank,
Lukas
wir haben in der Schule nun mit der Java Programmierung begonnen und sind nun dabei einige Vokabeln zu lernen.
In der letzten Stunde hat unser Lehrer uns ein Beispiel gezeigt, das mit einem Standardkonstruktor arbeitet. Also, wenn ein Objekt erzeugt wird und man hat keinen Konstruktor selbst geschrieben in der Klasse, so wird ein Standardkonstruktor von Java selbst gesetzt. So hab ich das verstanden.
Jetzt ist in der Hausaufgabe eine Frage:
Warum kann man in der Klasse „Test" im selben Paket
ein Objekt von der Klasse „Kunde“ erzeugen, obwohl die Klasse
„Test“ keinen Konstruktor hat. Welches Risiko entsteht dadurch?
Ich habe geantwortet:
Die Klasse "Test" hat zwar keinen sichtbaren Konstruktor, wohl aber einen default-Konstruktor der nicht extra codiert werden muss, er wird automatisch ausgeführt. Der default-Konstruktor hat immer die gleiche Sichtbarkeit wie die Klasse. Ist also die Klasse z.B. public, wird auch der automatisch eingeführte Konstruktor public sein. Ist die Klasse in einem Paket sichtbar, so ist es auch der default-Konstruktor in dem Paket sichtbar. Eine Gefahr besteht darin, dass man zwar die Klasse z.B. in einem Paket durchaus sichtbar halten möchte, aber nicht den Konstruktor. Hier muss man dann einen Konstruktor selbst anlegen.
Hab ich das Theman und damit die Frage so richtig beantwortet. Kann mir jemand helfen?
Vielen lieben Dank,
Lukas