黑马程序员技术交流社区
标题:
关于内部类的一个问题请教大家。。
[打印本页]
作者:
佳佳扣子
时间:
2015-4-16 17:11
标题:
关于内部类的一个问题请教大家。。
刚学到基础视频中的内部类,有个问题不太清楚,有懂的同学帮忙解答一下,谢谢啦~
以下代码是毕老师基础教学视频中的参考,内部类有个特点是
内部类可以直接访问外部类中的成员,通过
Outer.Inner n=new Outer().new Inner();此语句已经建立起了内部类的对象n,为什么不可以直接访问外部类中的成员函数method呢?
class Outer
{
private int x=4;
class Inner
{
void function()
{
System.out.println("Inner");
}
}
void method()
{
Inner in=new Inner();
in.function();
}
}
class InnerClassDemo1
{
public static void main(String[] args)
{
Outer.Inner n=new Outer().new Inner();
n.method();
n.function();
}
}
作者:
zhuchangbao
时间:
2015-4-16 17:23
首先这个内部类是属于成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。但是问题是,你这个是在main方法中,是不能用外部类的方法的。也就是在内部类中可以调用外部类的方法,但是你要是用对象来调用的话是不行的。不知道你懂了么?
作者:
佳佳扣子
时间:
2015-4-16 17:41
这样啊,懂了,谢谢!:loveliness:
作者:
海带
时间:
2015-4-16 17:46
内部类的实例对象是不能访问外部类的成员的,要访问外部类的成员可以不用建立内部类的实例就可以访问,即使外部类的成员被private修饰。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2