BlueJ 2 Konstruktoren?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Normalerweise macht man das, indem man den einen Konstruktor vom anderen Konstruktor aus aufruft.

public class Punkt {
	double x;
	double y;
	
	public Punkt() {
		this(0, 0);
	}
	
	public Punkt(double x, double y) {
		this.x = x;
		this.y = y;
	}
}

Deine Lösung ist fast richtig. Deine Zuweisungen in Konstruktor 2 sind nur noch falsch. Da du ja den Wert der Parameter an die Felder geben möchtest, müssen die Parameter rechts vom Zuweisungsoperator stehen und die Feldnamen links.

x = xs;
y = ys;

Es ist im Übrigen üblich, Klassennamen nicht komplett in Großbuchstaben zu schreiben (d.h. der Name Punkt würde eher nach üblicher Konvention verwendet werden, als PUNKT).

Welchen Konstruktor du später nutzt, entscheidet sich bei Instanzierung des Objekts und der Argumentenliste.

Punkt punkt1 = new Punkt(); // use first constructor
Punkt punkt2 = new Punkt(2, 3); // use second constructor