public class OO1 { public int i; // public static int i; // Test! public void hello() { System.out.println("Hello"); } public static void main(String[] args) { // hello(); // Geht NICHT, da hello() nicht static // Hier wird ein OBJEKT (Instanz) der Klasse OO1 // definiert. OO1 o; // ... und hier wird ein Objekt ERZEUGT und // an die Variable zugewiesen. o = new OO1(); // o enthält nun die Adresse eines Objekts vom Typ // OO1! // Aus diesem Objekt darf nun auf KLassenvariablen, // Funktionen etc. zugegriffen werden. o.hello(); // Alternativ: Objekt erzeugen, hello() // aufrufen, und wieder vergessen. new OO1().hello(); // i = 1; // Geht nicht, da nicht static! o.i = 1; // Geht! // Man kann weitere Objekte bilden... OO1 o2 = new OO1(); // ... und die darin enthaltenen Variablen // anders belegen. o2.i = 2; // Vergl. mit "static" bei der Deklaration von i ganz oben! System.out.println("o.i == o2.i? " + (o.i == o2.i)); } }