12_static

Code-Dateien

DateinameAktion
CODECode_Fahrzeug.zipDownload
CODECode_Mitarbeiter.zipDownload

PDF-Dokumente

DateinameAktion
PDFFolie_Mitarbeiter.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_Fahrzeug_DAbspielen
VIDEOVideo_Mitarbeiter_DAbspielen

Lernmaterialien

static

Definition

static Eigenschaft

  • Es gibt genau eine Kopie für die ganze Klasse.

  • Alle Objekte teilen sich denselben Wert.

class Counter {
    private static int count = 0;

    public Counter() {
        count++;
    }
}

Counter.count ist für alle Counter-Objekte gemeinsam.

static Methode (Klassenmethode)

  • Kann man ohne Objekt aufrufen.

  • Darf nicht direkt auf Instanzvariablen/-methoden zugreifen (weil kein this existiert).

class MathUtil {
    static int add(int a, int b) {
        return a + b;
    }
}

int x = MathUtil.add(2, 3);

Implementierung

001.png
public abstract class Student implements Serializable {
    private   int     studentID;
    private   static  int lastID = 1000;
    private   String  name;
    ...

Für die neue Eigenschaft studentID werden get und set Methoden benötigt!

    public int getStudentID() {
        return studentID;
    }

    public void setStudentID() {
        lastID++;
        this.studentID = lastID;
    }

Hinzufügen der studentID in der toString Methode.

    @Override
    public String toString() {
        return studentID + ": " + name + "   " + alter + " Jahre " + klasse;
    }

Im Konstruktor gehört die setStudentID Methode aufgerufen.

    public Student(String name, int alter, String klasse) throws StudentException {
        setStudentID();
        setName(name);
        ...
    }

    //A;Thomas;25;3ACIF;Y
    public Student(String zeile) throws StudentException {
        ...
        setStudentID();
        setName(daten[1]);

Ausgabe beim Test.

1001: Thomas   25 Jahre 3ACIF hat Matura
1002: Alex   25 Jahre 3ABIF hat KEINE Matura
1003: Susi   19 Jahre 3AHIF 2 Anzahl der Ferialpraktika
1004: Karl   21 Jahre 3ACIF hat Matura
1005: Max   15 Jahre 2CHIF 1 Anzahl der Ferialpraktika

JavaDoc

002.png

Die Methode wird aufgerufen:

Math.abs(-25.0);
=> 25.0