Ich habe tatsächlich versucht, die einschließende Instanz zu üben
Ist es vorerst so? Ich habe darüber nachgedacht.
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{
}
}
Der /// Teil war ein Fehler. Es wurde gesagt, dass nicht statische äußere Klassenfelder nicht von der statischen Hauptmethode aufgerufen werden können, daher wurde sie verbessert.
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);
}
}
}
Rufen Sie Outer.name auf, ein Mitglied der inneren Klasse, die eine nicht statische innere Klasse ist, und eine äußere Klasse (Outer), die nicht statisch ist. Durch Erstellen einer Instanz der Inner-Klasse, die in der Instanz der Outer-Klasse enthalten ist, mit der Hauptmethode und Aufrufen der OuterAccess-Methode der Inner-Klasse ist der Fehler verschwunden (ist dies die OuterAccess-Methode der Inner-Instanz?).
Sie können es in erster Linie mit Outer.outerName aufrufen, oder? Ich dachte und versuchte es
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);
}
}
}
Ich konnte anrufen. Ich habe gelernt, dass es verschiedene Möglichkeiten gibt, anzurufen
Recommended Posts