interface A
{
void show();
}
interface B
{
void add(int a,int b);
}
class C implements A,B
{
private int a ;
private int b ;
public void show()
{
System.out.println("a+b="+(a+b));
}
public void add(int a,int b)
{
this.a = a;
this.b = b;
}
}
class D
{
public static void main(String[] args)
{
C c=new C();
c.add(4,2);
c.show();
}
}
这个跟函数的执行循序没关系吗?应该先执行show()的吧!但是show()里面的a+b没有具体的值,不应该是编译失败的吗?
作者: 史超 时间: 2013-12-6 13:53
你应该先从Main函数开始看。当Main函数执行到c.add(4,2)时,main函数会跳到 class C中add方法,将参数中a的值赋给class C中 private int a ; (b同理)。add方法结束后跳回至main函数,继续执行Main函数show的方法,show方法里面需要打印a+b的值,之前已经this.a = a 中 a已经有值了,所以在加的时候应该不会有错。