黑马程序员技术交流社区
标题:
在定义内部类时,我若把内部类private了,那又怎么去访问内部类了?求解答。
[打印本页]
作者:
彭柏良
时间:
2014-12-5 10:41
标题:
在定义内部类时,我若把内部类private了,那又怎么去访问内部类了?求解答。
class Outer
{
private int x = 3;
private class Inner //若我加私有的话,怎么访问了?
{
int x = 4;
void function()
{
int x = 6;
System.out.println("Inner Function Variable:"+x);//打印结果为:x=6
System.out.println("Inner Variable:"+this.x);//内部类成员变量 x = 4
System.out.println("Outer Variable:"+Outer.this.x);//外部类成员变量 x = 4
}
}
void method()
{
//外部类访问内部方式一:
Inner in = new Inner();
in.function();
}
}
class InnerClassDemo
{
public static void main(String[] args)
{
Outer out = new Outer();
out.method();
//在主函数中直接访问内部类中的成员
Outer.Inner oi = new Outer().new Inner();
oi.function();
}
}
复制代码
作者:
caobin
时间:
2014-12-5 10:51
楼主你可以在Outer类中定义一个获取该类的方法
public Inner inner()
{
return new Inner();
}
复制代码
作者:
彭柏良
时间:
2014-12-5 10:55
我知道啦。若直接在主函数内去访问private的内部类,编译会失败。若是在外部类里面建立一内部类的对象,是可以直接访问的。也就是代码中的访问方式一。
作者:
kane
时间:
2014-12-5 10:56
或者你也可以试试单例设计模式
作者:
提米特
时间:
2014-12-6 20:28
可以创建一个Inner的对象,通过对象访问。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2