überladene Konstruktoren

Adoras

Mitglied
Könnt ihr mir erklären WARUM es möglich ist, zwei Varianten von einem Konstruktor gleichzeitig zu implementieren?

Vielen Dank!
 
Zuletzt bearbeitet von einem Moderator:
"zwei Varianten"
Meinst du damit 2 Verschiedene Konstruktoren mit unterschiedlichen Signaturen? Warum sollte das nicht gehn? Je nachdem welchen Konstruktor du dann aufrufst wird dein Objekt unter umständen anders zusammengebaut.
 
Vielleicht einer mit einem default wert und ein spezifische.. zb:
Code:
ArrayList() { this(10);}
erstellt eine ArrayList mit initial 10 elementen und
Code:
ArrayList(int i) { ...
erstellt eine ArrayList mit initial soviel Platz wie man will.

Oder was ist deine Frage?
 
Wie meinst du das?
Java:
public Test(int einInt){

}

public Test(int zweiInt){

}

compiliert nicht... Also was meinst du?
 
Ich nehme an, du meinst das Überladen einer Funktion?

Ein Beispiel, wo sowas Sinn machen würde:
- du schreibst deine eigene Klasse Auto, die Informationen über ein Auto abspeichert (Masse, Farbe9
- nun kannst du einen Konstruktor Auto(); schreiben, der einfach nur ein Auto ohne Eigenschaften erstellt
- vielleicht willst du aber auch einen Konstruktor schreiben, bei dem du gleichzeitig die Attribute setzen willst:
Java:
Auto(int masse, int farbe){
this.masse = masse; 
this.farbe = farbe;
}
- vielleicht willst du aber auch nur ein Attribut setzen, so schreibt du: Auto(int masse)

Das Ziel ist also, ein Objekt auf verschiedene Weisen erstellen zu können.
 
Hey danke für die Antworten. Ich frage aber nicht nachdem wieso man das braucht sondern viel mehr warum das überhaupt geht. dankeschön!
 
Das liegt doch auf der Hand. Du kannst beispielsweise eine Klasse nur mit einem bestimmten Attribut erstellen oder direkt mit vielen weiteren, die sonst vielleicht über setter setzen würdest.
Oder .. angenommen du hast eine Datumsformatierungsfunktion geschrieben. Einmal übergibst du einen String welcher erst noch geparst werden muss und das andere Mal ein Date Objekt welches sich nur noch der Formatiertierung unterziehen muss.
 

Zurück
Oben