谢谢 懂了作者: 谢铭 时间: 2013-8-8 22:18
外部类访问内部类,需要创建内部类对象才能访问,你可以试下作者: 肥猫 时间: 2013-8-8 23:21
三种内部类,这不算匿名内部类,你把两种成员内部类当成成员来看,你私有他不是私有他的构造方法,为什么不能NEW?作者: 付龙 时间: 2013-8-9 11:06
外部类不能直接访问内部类的属性,只能通过new调用内部构造器来创建实例。唯一的区别就是,不要在外部类的静态成员 (例如main方法中)访问非静态内部类的成员。
就是不管里内部类的属性私有还是共有还是大家拥有,只要内部类是静态类 外部类就能通过new创建实例来访问
public class A
{
class B
{
private int x = 1;
}
public int getB()
{
return new B().age;
}
public static void main(String[] args)
{
System.out.println(new A().getB());
}
} 作者: 布易般 时间: 2013-8-9 12:03
问题:如果内部类被私有了,外部类可以new内部类对像并调用内部类方法吗?
答: 在同一个外部类是可以的。
class Out
{
int x=3; private class Inner
{
void show()
{
System.out.println("我在内部类哦");
}
}
void showInner()
{
//注意啦:在这里可以创建私有内部类对象哦,因为此时内部类就像是一个私有变量。 Inner in = new Inner();
System.out.println("亲,我在外部类要调用私有内部类的方法了!"); in.show();
}
}
class InnerClassTest
{
public static void main(String[] args)
{
//创建外部类
Out out = new Out();
out.showInner();
}
}