Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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?

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

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

  • Autor

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 :-)

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...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.