class A { protected char a = 'a'; } class B { protected char b = 'b'; } public class C extends A { private char c = 'c'; // Paikalliselle luokalle näkyvät kentät. public static char d = 'd'; public void createLocalObject(final char e) { final char f = 'f'; int i = 0; // i ei ole final-tyyppinen. Siihen ei voi class Local extends B // viitata paikallisissa luokissa. { char g = 'g'; public void printVars() { // Tässä luokassa voi viitata kaikkiin allaoleviin kenttiin. System.out.println(g); // (this.g) g on tämän luokan kenttä. System.out.println(f); // f on final-tyyppinen paikallinen muuttuja. System.out.println(e); // e on final-tyyppinen paikallinen argum. System.out.println(d); // (C.this.d) d — Omistajaluokan kenttä. System.out.println(c); // (C.this.c) c — Omistajaluokan kenttä. System.out.println(b); // Tämä luokka perii b-kentän. System.out.println(a); // Omistajaluokka perii a-kentän. } } Local l = this.new Local(); // Luodaan paikallisen luokan tyyppinen olio l.printVars(); // ja kutsutaan sen printVars()-metodia. } public static void main(String[] args) { // Luodaan omistajaluokan tyyppinen olio ja kutsutaan metodia, jossa // määritellään ja luodaan paikallisen luokan tyyppinen olio. C c = new C(); c.createLocalObject('e'); // Annetaan final-tyyppisen argumentin } // arvoksi 'e'. }