Konstruktoren werden analog zu Methoden überladen. Im folgenden Beispiel können entweder die Eingabewerte fehlen, oder es wird fallweise ein Quadrat oder ein Rechteck berechnet:
class rechteck {
double a;
double b;
rechteck () {
System.out.println("Keine Eingabewerte :-(");
}
rechteck (double seite) {
a = seite;
b = seite;
System.out.println("Quadrat...");
}
rechteck (double laenge, double breite) {
a = laenge;
b = breite;
}
double cut2 (double zahl) {
return (int) (zahl * 100) / 100;
}
double umfang() {
return cut2(2*(a+b));
}
}
public class class2 {
public static void main (String [] args) {
rechteck r = new rechteck();
rechteck r1 = new rechteck(3.2);
System.out.println("Länge: " + r1.a);
System.out.println("Breite: " + r1.b);
System.out.println("Umfang: " + r1.umfang());
rechteck r2 = new rechteck(4.5, 5.5);
System.out.println("Länge: " + r2.a);
System.out.println("Breite: " + r2.b);
System.out.println("Umfang: " + r2.umfang());
}
}
In der Reihenfolge der Objekte und Methodenaufrufe erhalten wir:
Keine Eingabewerte :-( Quadrat... Länge: 3.2 Breite: 3.2 Umfang: 12.0 Länge: 4.5 Breite: 5.5 Umfang: 20.0