Nov 21

This post is also available in: Englisch

Ich hatte ja schon erläutert, das eine innere Klasse auf alle Variablen/Objekte der äußeren Klasse zugreifen kann. Ist aber eine Klasse innerhalb einer Methode der Oberklasse definiert, verhält sich dies für die Variablen/ Objekte der Methode nicht so:

public class Abteilung {

String name =”Finance”;

void doSomething(){

String name1 =”Test1″;
final String name2 =”Test2″;
class newClass{

void getName() {

System.out.println(name1); //CompilerFehler, da nicht final
System.out.println(name2); // Ausgabe: Test2

System.out.println(name); // Auf die Variablen der Klasse kann wie gewohnt zugegriffen werden; Ausgabe ist: “Finance”

}

}
newClass a = new newClass();
// Erzeugen einer Instanz von newClass
a.getName(); // Aufruf der Methode getName von newClass

}
public static void main(String args [ ]){

Abteilung a = new Abteilung();
a.doSomething();

}

}

Klassen innerhalb von Methoden (auch lokale Klassen genannt) können auf deren Variablen/Objekte nur zugreifen, wenn diese als final und damit als unveränderlich deklariert sind.

  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • RSS
  • Blogosphere
  • email
  • PDF
  • Wikio
  • Technorati
  • Digg
  • DZone

Leave a Reply

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs