黑马程序员技术交流社区
标题:
内部类访问疑问
[打印本页]
作者:
丿若恋灬如初
时间:
2016-3-20 17:00
标题:
内部类访问疑问
代码如下:
class Outer
{
int x=3;
class Inner//内部类
{
void function()
{
System.out.println("inner:"+x);
}
}
void method()
{
Inner in=new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
//Outer out=new Outer();
//out.method();
//直接访问内部类成员
Outer.Inner in=new Outer().new Inner();
//上面为什么不可以直接写成:
Outer.Inner in=new Outer.Inner();
in.function();
}
}
作者:
yanzhendong
时间:
2016-3-20 21:07
非静态内部类是依赖于外部类的,因为非静态内部类可以访问外部类的非静态成员变量,当外部类实例对象不存在时,这个访问就会出错,所以创建非静态内部类必须在外部类实例对象存在的情况下,如果是静态内部类的话,就可以 Outer.Inner in=new Outer.Inner();这样创建
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2