Wann sollte man eine Klasse statisch deklarieren und was ist dieses Static eigentlich?
Behandeln wird einmal den zweiten Punkt und nehmen die Klasse Console.
Die Klasse Console besitzt die statische Methode Write().

 

Diese können wir also im Code aufrufen, ohne explizit eine Instanz der Klasse zu erstellen:

 Console.Write("Hello World");

Diese Deklaration nennt man static, da wir hier nicht explizit auf die Daten einer bestimmten Objektinstanz zugreifen, sondern die Daten immer gleich zurück gegeben werden. Unabhängig vom Zustand des Objektes, also von den Werten, welche einer Variable in dem Objekt gegeben werden.

 Console.Write("Hello World");

wird also immer „Hello World“ zurück geben!

Um eine Ausgabe in der Konsole zu tätigen, brauchen wir kein spezielles Console-Objekt, also nicht sowas:

 
Console c = new Console(); 
c.Write("Hello World"); // FALSCH

Wann benötige ich dann „normale“ Methoden und Variablen?

Das kommt in einem anderen Post 😉