public class Gueltigkeitsbereiche_von_Variablen { int i = 1; // Eine Variable im Objekt vom Typ "Gueltigkeitsbereiche_von_Variablen" static int j = 2; // Eine statische Variable innerhalb der KLASSE, die ist // übrigens für alle gebildeten Objekte (new) gleich. public static void main(String[] args) { int i = 3; int j = 4; // Problem: Wir habe jetzt 2 mal die Variable i und 2 mal die Variable j System.out.println(i); // Gibt das i innerhalb main() aus System.out.println(j); // Gibt das j innerhalb main() aus // Greift auf die statische Variable j in der KLASSE zu. System.out.println(Gueltigkeitsbereiche_von_Variablen.j); Gueltigkeitsbereiche_von_Variablen o = new Gueltigkeitsbereiche_von_Variablen(); System.out.println(o.i); // i aus Objekt heraus adressiert. // Verändere das j im Objekt o: o.j = 5; // Gib da eigene j in der Klasse aus: System.out.println(Gueltigkeitsbereiche_von_Variablen.j); // Merke: static-Variablen in einer Klasse sind für alle vonihr gebildeten Objekte // gleich, und ändern sich daher auch in den anderen Objekten, wenn sie // nur in einem neu belegt werden. // Das gilt NICHT für "nicht-statische" Variablen, diese sind in jedem // Objekt individuell // double i; // Geht hier nicht mehr, da es schon einmal im gleichen Block // deklariert wurde. } }