Static Java Methode

Wir haben gelernt; wir brauchen ein Java Objekt damit wir mit OOP in Java arbeiten können.

Nun mit eine statische Methode ist es möglich eine Java Methode zu benutzen ohne ein Java Objekt zu initialisieren.

Bsp

public class Auto {
    // Eine normale Methode (nicht static)
    public void fahren() {
        System.out.println("Das Auto fährt.");
    }

    // Eine statische Methode
    public static void hupen() {
        System.out.println("Das Auto hupt.");
    }
}

Auto meinAuto = new Auto(); // Wir erstellen ein Auto
meinAuto.fahren();          // Das Auto fährt

// Ohne Objekt
Auto.hupen(); // Das Auto hupt

Auch innerhalb der deklarierten Klasse können die Methoden nur miteinander kommunizieren, wenn sie static sind.

Andernfalls können sie nur über ein Objekt kommunizieren.

Das heißt, die Java Methode public static void hupen() hier kann die andere Java Methode public void fahren() nicht einfach rufen.
Nur wenn man ein Objekt hat

Failure

	public void fahren() {
		System.out.println("Das Auto fährt.");
	}

   public static void hupen() {
		System.out.println("Das Auto hupt.");
		fahren();  ❌
   }

Success

public class Auto{
	public static void fahren() {
		System.out.println("Das Auto fährt.");
	}

	public static void hupen() {
	 	System.out.println("Das Auto hupt.");
		fahren(); ✅
	}
} 	   

ODER

Success

public class Auto{
	public void fahren() { // <-- NOTE: no static
		System.out.println("Das Auto fährt.");
	}

	public static void hupen() {
	 	System.out.println("Das Auto hupt.");
	 	Auto myCar = new Auto();
		myCar.fahren(); ✅
	}
}