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