L'accès externe variable de classe de l'intérieur de la classe
Dans les classes internes, les variables de l'extérieur de la classe sont accessibles, mais les variables locales à une méthode qui ne le sont pas. J'ai compris la partie sur les variables locales à une méthode n'étant pas accessibles, mais je veux savoir pourquoi extérieur de variables de classe sont-ils accessibles?
Ma compréhension est que l'intérieur de la classe se lie avec l'extérieur de la classe, tant et aussi longtemps que le parent est disponible, l'enfant peut accéder à son parent variables. Suis-je la corriger?
Statique à l'intérieur de la classe ou de la non-statique?
les classes internes sont toujours non-statique. Regardez ici.. docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Merci, j'ai eu tort d'appeler classes imbriquées les classes internes pendant des années. Oups!
les classes internes sont toujours non-statique. Regardez ici.. docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Merci, j'ai eu tort d'appeler classes imbriquées les classes internes pendant des années. Oups!
OriginalL'auteur kiran | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
En supposant à l'extérieur de la classe est appelée
Outer
, de l'étendue de l'intérieur de la classe(non statique),Outer.this.foo
à obtenir sur le terrain.Par exemple,
où l'Extérieur est le nom de la classe et
foo
identifie le champ.Vous pouvez également saisir directement comme
foo=new Baz()
mais il va choisir le champ interne si il y a un conflit de noms en raison de l'effet d'ombrage.si c'est un statique à l'intérieur de la classe, vous avez besoin d'un explicite exemple:
ou si le champ est statique, l'accès comme d'habitude avec:
Non, pas au-delà de toute synchronisation, vous devrez le faire dans les autres cas. Intérieure et extérieure des classes ne provoquent pas de nouveaux threads d'être créé.
OriginalL'auteur Andrey Akhmetov
Réponse: Extérieur de variables de classe en java sont accessibles en raison de la portée lexicale.
Qu'est ce qu'une portée lexicale?
Le champ d'application défini dans l'ordre dans lequel le code est écrit. Disons que votre structure de classe est comme suit
Puis l'intérieur de la plupart de la classe sera en mesure d'accéder à des variables de l'intérieur ainsi la plus externe.
OriginalL'auteur Majeed Siddiqui