Zum Inhalt springen

Kontruktoren überladen (Quick Question)


Empfohlene Beiträge

Geschrieben

Hallo,

ich hab ein Verständnisproblem in folgender Sache:

Zitat aus einem JavaTutorial

Der default-Konstruktor wird auch dann verwendet, wenn ein Objekt mit einem parameterlosen new-Aufruf erzeugt wird, in der Klasse aber neben parametrisierten Konstruktoren kein parameterloser Konstruktor definiert wurde.

Das schien mir fraglich und ich probierte das aus:


public class ClassA 

{

	public int var1;

	public int var2;


	public ClassA (int arg1, int arg2)

	{

		var1 = arg1;

		var2 = arg2;

	}

}

//-----------------

public class ClassB 

{

	public static void main(String[] args)

	{

		ClassA obj = new ClassA();

	}

}

Und wie ich mir dachte, meckert der Compiler bei der Objektinstanziierung, was wiederum heißen würde, die Aussage im Tutorial stimmt nicht (und der Default Konstruktor wird eben nicht aufgerufen, wenn ein parametrisierter Konstruktor definiert wurde).

Eure Meinungen?

Geschrieben

Und wie ich mir dachte, meckert der Compiler bei der Objektinstanziierung, was wiederum heißen würde, die Aussage im Tutorial stimmt nicht (und der Default Konstruktor wird eben nicht aufgerufen, wenn ein parametrisierter Konstruktor definiert wurde).

Du solltest Deine Quellen angeben, denn solche Aussagen sind so nicht haltbar.

Quelle: Markt+Technik, Java 5, Seite 240

Dass bei der Definition eines eigenen Konstruktors kein Ersatzkonstruktor generiert wird, ist an sich kein Verlust. Wenn der von Ihnen definierte Konstruktor jedoch Parameter definiert, besitzt Ihre Klasse danach keinen Defaultkonstruktor

Phil

Geschrieben

Ist vielleicht nicht ganz das Aktuellste, fällt mir grad auf, aber das sollte kein Grund sein.

Ich habe jetzt kein zehn Jahre altes Java hier und weiß nicht, ob Guido Krüger früher recht hatte. In der aktuellen Ausgabe des Javabuchs ist die gleiche Stelle allerdings korrekt. Es macht also schon einen Unterschied, eine hoffnungslos veraltete Version eines Buchs zu lesen. :)

Mein Tipp: lade Dir die aktuelle Version runter und arbeite mit der.

Peter

Geschrieben

Danke, mittlerweile hab ichs schon gelesen. Ich hab auch gar nicht darauf geachtet, von wann dieses Tutorial ist, weil ich das besagte Problem nur schnell nachgegoogled hab.

Ursache hierfür war übrigens (jetzt werd ich mir hier Feinde machen), dass ich mich mit C# einarbeite(n muss, Berufsschule ist Schuld) und mich in diesem Zuge erneut mit den Grundkonzepten der Objektorientierung befasse. Und da die Ähnlichkeit dieser beiden Sprachen nicht ernsthaft zu leugnen ist - und ich wiederum in der C# Literatur auf dies Thema stieß - musste ich es gleich mal hier prüfen.

Das nur am Rande :-)

Geschrieben

Nö, Feinde machst Du Dir hier nicht, denke ich. Programmiersprachen sind keine Religion, sondern ein Werkzeug. In einem Gummihammerforum wird wahrscheinlich auch keiner Dich nicht mehr mögen, wenn Du mit einer Zimmermannshammerfrage kommst, weil die beiden ein ähnliches Bedienungsmuster haben. :)

Peter

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...