java程序问题,望高人指点,说明一下执行的过程,为何构造函数没有执行?
class A
{
int x=1,y=1;
A()
{x=0;y=0;}
A(int x,int y)
{x=x;y=y;}
void setx(int i)
{x=i;}
void sety(int i)
{y=0;};
void out()
{System.out.println( "X= "+x+ "\tY= "+y);}
}
class B extends A
{
int x=2;
float z;
B()
{super();}
B(int x,int y)
{this.x=x;this.y=y;}
void sety()
{this.y=-1;}
void out()
{System.out.println( "X= "+x+ "\tY= "+y+ "\tZ= "+z);}
}
public class InitialDemo3
{
public static void main(String[] args)
{
A a1 = new A(3,4);
a1.out();
a1.setx(6);
a1.out();
B b1 = new B(1,2);
b1.setx(0);
b1.sety();
b1.out();
A b2 = new B(5,6);
b2.setx(12);
//b2.sety();
b2.out();
}
}
------解决方案--------------------A(int x,int y)
{x=x;y=y;}
改为
A(int x,int y)
{this.x=x;this.y=y;}
------解决方案--------------------A(int x,int y){x=x;y=y;}
你这样赋值没有意义呀 ,你这是局部变量赋值给局部变量。
没有改变全局的x,y变量值。
alex_lu() ( ) 信誉:100 Blog 2007-03-08 08:24:39 得分: 0
A(int x,int y)
{x=x;y=y;}
改为
A(int x,int y)
{this.x=x;this.y=y;}
说的是正确的^-^