请网友看看下面的程序,错在什么地方?
class A{
private String x;
private String y="A.y";
class B{
private String x;
private String y="b.y";
class C{
private String x;
private String y="c.y";
}
}
void test(){
A m=new A();
m.x="A.x";
System.out.println("m.x="+m.x+" m.y="+m.y);
B n=new B();
n.x="B.x";
System.out.println("n.x="+n.x+" n.y="+n.y);
C k=new C();
k.x="C.x";
System.out.println("k.x="+k.x+" k.y="+k.y);
}
public static void main(String[] args){
A l=new A();
l.test();
}
}
错误提示如下:
书上的程序如下:
我都几乎是按着书上写的做的,为什么还说出错呢?
class A{
private String x;
private String y="A.y";
class B{
private String x;
private String y="b.y";
class C{
private String x;
private String y="c.y";
}
}
void test(){
A m=new A();
m.x="A.x";
System.out.println("m.x="+m.x+" m.y="+m.y);
B n=new B();
n.x="B.x";
System.out.println("n.x="+n.x+" n.y="+n.y);
C k=new C();
k.x="C.x";
System.out.println("k.x="+k.x+" k.y="+k.y);
}
public static void main(String[] args){
A l=new A();
l.test();
}
}
错误提示如下:
书上的程序如下:
我都几乎是按着书上写的做的,为什么还说出错呢?
改成
B.C k=new B().new C(); C是B的内部类
"new C()"不能这样写
C是B的内部类
在A中是不能直接访问C的
只能通过B来间接访问
C的引用应该用B.C而不是C
C的实例化应该是new B().new C()而不是new C()