Konstruktoraufruf

Status
Nicht offen für weitere Antworten.

Povlsen84

Mitglied
Hallo,

macht der folgende Aufruf Sinn? Möchte halt die Anweisungen des default Konstruktors nicht nocheinmal hinschreiben nur weil weitere Anweisungen ggf. dazukommen.

Schlechter Stil? Inhaltlich totaler Blödsinn? Bitte um Aufklärung :p

best regards,
Stephan

Code:
public class Klasse1{
   public Klasse1(){
     // Anweisungen
   }

   public Klasse1(boolean bool){
      this();
      // weitere Anweisungen
   }
}
 

Der Müde Joe

Top Contributor
>macht der folgende Aufruf Sinn?

Eher nein. Wenn schon this(true) im 1. Konstruktor und die Anweisungen in der 2ten.

EDIT:
So allgemein übrigens schwer zu sagen. ;-)
 

sliwalker

Top Contributor
Hi,

würde Dir da eher empfehlen eine zB init() Methode zu schreiben, die alles initialisiert.
Die kannst Du dann aus den Konstruktoren aufrufen.

So hast Du eine besser Steuerung.
Hab ehrlich gesagt noch nie gesehen, dass man seinen eigenen unparametrisierten Konstruktor aufruft.
Aber das heißt auch nix :) ....

greetz
SLi
 

Povlsen84

Mitglied
Hallo, danke für die schnelle Antwort :)

Im besagten Fall geht es mir darum Klasse1 normal instanzieren zu können aber je nach Anwendung die Möglichkeit zu haben den default Konstruktor um weitere Sachen zu erweitern.

Klasse1 foo = new Klasse1();
Klasse1 bar = new Klasse1(true);

Bin in der ganzen Klassenthematik noch nicht allzu fit und will halt schlicht wissen ob man innerhalb einer Klasse einen Konstruktor der zu eben dieser Klasse gehört nocheinmal aufrufen kann.

best regards,
Stephan
 

andre111

Bekanntes Mitglied
Also ich würde das so implementieren:
Java:
public class Test {
    public Test() {
        this(0);
    }

    public Test(int a) {
        this(0, 1);
    }

    public Test(int a, int b) {
        // irgendwas mit a und b machen
        init();
    }

    private void init() { ... } // Standard-Initialisierungen.
}
 

Der Müde Joe

Top Contributor
Ich denke mir das meist eher so
Java:
public class SomeClass {

	private boolean isTrue;

	private String helloWorld;

	/**
	 * Konstruktor mit default values
	 */
	public SomeClass() {
		this(true);
	}

	public SomeClass(boolean isTrue) {
		this(isTrue, "hello world");
	}

	public SomeClass(boolean isTrue, String str) {
		this.isTrue = isTrue;
		this.helloWorld = str;
	}

}

Ein Konstruktor der alles macht und die anderen initialisieren alle mit deafaul values.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben