注册 登录
编程论坛 J2EE论坛

[求助]java内部类问题

zengyu222 发布于 2006-12-09 21:13, 541 次点击

public class A{
private int a1;
public int a2;
static int a3;
public A(int a1,int a2){this.a1=a1;this.a2=a2;}
protected int methodA(){return a1*a2;}
class B{
int b1=a1;
int b2=a2;
int b3=a3;
int b4=new A(3,4).a1;
int b5=methodA();
}
public static void main(String args[]){
A.B b=new A(1,2).new B();
System.out.println("b.b1="+b.b1);
System.out.println("b.b2="+b.b2);
System.out.println("b.b3="+b.b3);
System.out.println("b.b4="+b.b4);
System.out.println("b.b5="+b.b5);
}
}

为什么b4输出的结果是3,而不是1呢?

让人不解,大家帮帮忙,先谢谢了!

2 回复
#2
rainic2006-12-09 21:52
int b4=new A(3,4).a1;

不是赋值成3了吗?

b4的值是new A(3,4)这个对象的a1,不是new A(1,2)这个对象的a1
#3
zengyu2222006-12-12 18:16

为什么不是A.B b=new A(1,2).new B()这个值,而是int b4=new A(3,4).a1这个值呢?

[此贴子已经被作者于2006-12-12 18:17:33编辑过]

1