Klassen und Objekte mit UML

public class Loewe {

    public String name;
    public double gewicht;
    public String futterzeit;
    public String maehnenShampooMarke;
    public int anzahlBeine;

    public void laufe() {}

    public void bruelle(int dezibel) {}

}
Java
public class Zoohandlung {

    public static void main(String[] s) {
        Loewe leo = new Loewe(); (1)
        leo.name = "Leo, der Chef"; (2)
        leo.futterzeit = "12:00";
        leo.gewicht = 123.41;
        leo.maehnenShampooMarke = "Leoglanz Power 2";

        Loewe leonie = new Loewe(); (3)
        leonie.name = "Leonie, die Bissige"; (4)
        leonie.futterzeit = "13:00";
        leonie.gewicht = 110.12;
        leonie.maehnenShampooMarke = "Leoglanz Power 2 for girls";
    }
}
Loewe loewe = new Loewe();
Loewe loewe2 = loewe; (1)
System.out.println(loewe2.anzahlBeine);
loewe.anzahlBeine = 4; (2)
System.out.println(loewe2.anzahlBeine); (3)
loewe2.anzahlBeine = 6; (4)
System.out.println(loewe.anzahlBeine); (5)
loewe = null; (6)
System.out.println(loewe2.anzahlBeine); (7)
0
4
6
6

Konstruktoren

Loewe leo = new Loewe("Leo","13:00",123.21,4,"Leo Extra");
Java
Loewe(String name,String futterzeit,double gewicht,int anzahlBeine,String maehnenShampooMarke)
Java

Überladen von Konstruktoren

Loewe(String name, double gewicht)
Java
Loewe(String name,String futterzeit,double gewicht,int anzahlBeine,String maehnenShampooMarke)
Java

Loewe(String futterzeit, double gewicht)

Loewe(String name, double gewicht)

Loewe leo = new Loewe("Leo",123.2);

public Loewe(String name, String futterzeit, double gewicht, int anzahlBeine, String msm) {
    this.anzahlBeine = anzahlBeine;
    this.futterzeit = futterzeit;
    this.gewicht = gewicht;
    maehnenShampooMarke = msm;
    this.name = name;
}

public Loewe(String name, double gewicht) {
    this.gewicht = gewicht;
    this.name = name;
}
Java
public String name;
public double gewicht;
public String futterzeit = "13:00";
public String maehnenShampooMarke = "LeoGlanz Power 2";
public int anzahlBeine = 4;
Java

Kapselung

public class Loewe {

    public String name;
    public double gewicht;
    public String futterzeit = "13:00";
    public String maehnenShampooMarke = "LeoGlanz Power 2";
    public int anzahlBeine = 4;
....
}
Java
public class Loewe {

    private String name;
    private double gewicht;
    private String futterzeit = "13:00";
    private String maehnenShampooMarke = "LeoGlanz Power 2";
    private int anzahlBeine = 4;
....
}
Java

Getter und Setter

private int anzahlBeine = 4;

public void setAnzahlBeine(int anzahl) {
    if (anzahl >= 0) {
        anzahlBeine = anzahl;
    }
}

public int getAnzahlBeine() {
    return anzahlBeine;
}
Java

Grundansatz zur Kapselung:

Alle Felder einer Klasse sollten, sofern nicht gute Gründe dagegen sprechen, von ihrer Sichtbarkeit her auf private gesetzt werden und nur über öffentliche Methoden (z. B. Getter und / oder Setter) verändert oder ausgelesen werden.

Kommentieren von Methoden

/**
 * Lässt den Löwen brüllen, wobei die Lautstärke über dezibel gesteuert werden kann.
 * @param dezibel Lautstärke in Dezibel
 */
public void bruelle(int dezibel) {
    ...
}
Java