Konstruktoren


Der Standard-Konstruktor heisst genauso wie die Klasse:

public Kreis() {}

Der Standard-Konstruktorwird in main() benutzt zur Erzeugung von Objekten:

Kreis kreis1 = new Kreis();
siehe Kreis.java und Kreistest.java

Übung:

Man erzeuge Kreis- und Viereck-Objekte und prüfe, welche Werte die Eigenschaften der Objekte direkt nach der Instanziierung besitzen. (Man verwende dazu die passenden get-Methoden)

Überladene Konstruktoren haben Parameter

Neben dem Standard-Konstruktor kann man überladene Konstruktoren definieren, die bei der Erzeugung eines Objekts Eigenschaften mit Werten initialisieren (Man beachte, dass radius der Name einer bereits vorhandenen Eigenschaft der Klasse Kreis ist):

public Kreis( double r )
{
    radius = r;
}
Der Konstruktor-Aufruf in main() zur Erzeugung eines Objekts erfolgt dann mit einem Parameter, der die betreffende Eigenschaft beim frisch erzeugten Objekt sofort auf den Wert des Parameters setzt:
Kreis kreis123 = new Kreis( 20 );

Achtung: Wenn man überladene Konstruktoren definiert, verschwindet dadurch der Standard-Konstruktor. Wenn dieser trotzdem gebraucht wird, muss man seine Definition ausdrücklich hinschreiben, siehe Beispiel Kreis.java 2te Version mit überladenem Konstruktor

Übung:

Man ergänze die Klasse Viereck um einige Konstruktoren, und man teste die Konstruktoren. Es kommen folgende Gesichtspunkte in Betracht:

Das Erfinden einer neuen Klasse

Programme sind meistens Modelle irgendwelcher echten Vorgänge. Z.B. wird eine Banksoftware mit Konten zu tun haben, eine Personal-Verwaltungssoftware mit Mitarbeitern etc. Allgemein ist es ein Vorteil der OOP, dass die Programme mit denselben Grundbegriffen arbeiten wie in dem zu modellierenden Fachbereich üblich: Der Fachmann kann dem Programmierer in Begriffen seines Fachbereichs erklären, was das Programm tun soll.

Dogma der OOP: Alles besteht aus Dingen, den Objekten, die bestimmte Tätigkeiten durchführen können, nämlich Methoden.

Übung:

Man schreibe eine Klasse Mitarbeiter, die ungefähr folgendes leisten muss:
public class Mitarbeiter {

    private String nachname;
    private double gehalt;

    public Mitarbeiter(){}
    public Mitarbeiter( String n)
    {
        nachname = n;
    }
    public Mitarbeiter( String n, double g)
    {
        nachname = n;
        gehalt = g;
    }
}
Ausserdem bekommt die Klasse noch set- und get-Methoden wie immer, und weitere nützliche Methoden nach Bedarf.

Übung:

Man schreibe eine Klasse Konto; ein Konto muss einen Inhaber haben und einen Betrag als Guthaben.

Übung:

Man schreibe eine Klasse Datum. So geht es los:
public class Datum{

   private int tag;
   private int monat;
   private int jahr;
}


www.AndreasGoedel.de