[JAVA] À propos de la clôture de l'instance 2

J'ai en fait essayé de pratiquer l'instance englobante

Est-ce que c'est comme ça pour le moment? J'y ai pensé.


public class Outer {
	String outerName = "outer";
	
	public static void main(String[]args) {
		Outer outer = new Outer();
		Inner inner = outer.new Inner();
		System.out.println(Outer.outerName);////
	}
	public class Inner{
		
	}
}

La partie /// était une erreur. Il a été dit que les champs de classe externe non statiques ne peuvent pas être appelés à partir de la méthode principale statique, il a donc été amélioré.


public class Outer {
	String outerName = "outer";

	public static void main(String[]args) {
		Outer outer = new Outer();
		Inner inner = outer.new Inner();
		inner.outerAccess();
	}
	public class Inner{
		void outerAccess() {
			System.out.println(outerName);
		}
	}
}

Appelez external.name, qui est membre de la classe interne, qui est une classe interne non statique, et une classe externe (Outer), qui n'est pas statique. Ensuite, en créant une instance de la classe Inner incluse dans l'instance de la classe Outer avec la méthode main et en appelant la méthode externalAccess de la classe Inner, l'erreur a disparu (est-ce la méthode externalAccess de l'instance Inner?).

Vous pouvez l'appeler par external.outerName en premier lieu, non? J'ai pensé et essayé

public class Outer {
	String outerName = "outer";

	public static void main(String[]args) {
		Outer outer = new Outer();
		Inner inner = outer.new Inner();
		inner.outerAccess();
		System.out.println(outer.outerName);
	}
	public class Inner{
		void outerAccess() {
			System.out.println(outerName);
		}
	}
}

J'ai pu appeler. J'ai appris qu'il y a plusieurs façons d'appeler

Recommended Posts

À propos de la clôture de l'instance 2
À propos des méthodes d'instance Ruby
À propos de l'appel des méthodes d'instance
J'ai enquêté sur l'instance englobante.
À propos des instances Java
À propos =
À propos des variables d'instance et attr_ *
À propos de method.invoke
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos de l'héritage
À propos de Docker
À propos des rails 6
À propos du printemps ③
À propos d'énumération
À propos du polymorphisme
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de statique
À propos des exceptions
À propos de la portée
[Maven] À propos de Maven
Aucune instance englobante de type Hoge n'est accessible.