关于Java内部类的一个基础题。Java
关于Java内部类的一个基础题。Java高手请进!
疑问:为何Inner类中show()函数中的num从何而来?
public class Outer {
int num = 1;
class Inner {
public void show() {
System.out.println(num);//此处的num从何而来?
}
}
public void show() {
Inner in = new Inner();
in.show();
}
public static void main(String[] args) {
Outer out = new Outer();
out.show();
}
}
------解决思路----------------------
当生成一个内部类对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其外围类的所有元素的访问权。——《Think in java》10.2
无它,Java语言的特性。
------解决思路----------------------
内部类可以访问外部类,反之不行,这是Java的规范
疑问:为何Inner类中show()函数中的num从何而来?
public class Outer {
int num = 1;
class Inner {
public void show() {
System.out.println(num);//此处的num从何而来?
}
}
public void show() {
Inner in = new Inner();
in.show();
}
public static void main(String[] args) {
Outer out = new Outer();
out.show();
}
}
------解决思路----------------------
当生成一个内部类对象时,此对象与制造它的外围对象之间就有了一种联系,所以它能访问其外围对象的所有成员,而不需要任何特殊条件。此外,内部类还拥有其外围类的所有元素的访问权。——《Think in java》10.2
无它,Java语言的特性。
------解决思路----------------------
内部类可以访问外部类,反之不行,这是Java的规范