先说Point这个类,有两个构造方法,Point(){
x=10;y=20;pCount++;
}
Point(int x,int y){
this.x=x;
this.y=y; pCount++;
}
第一个构造方法是无参数的,采用这个构造方法生成类对象时,把类变量X赋值10,y赋值为20,pCount加1,;第二个构造方法是接受两个参数,分别赋值给x和y,并把pcount加1;同时pCount为static类型的,所以只初始化一次,就当第一次调用pCount++时返回1,第二次调用pCount++后返回2;
然后看Example3_2这个类,先声明了p1,p2,p3三个Point类型的对象,分别用不同的构造方法初始化,p1=new Point()初始化后,x=10,y=20,pcount=1;p2=new Point(40,50),初始化后,x=40,y=50,pCount=2;所以 p3=new Point(p1.getX()+p2.getX(),p1.getY()+p2.getY()),就等价于p3=new (10+40,20+50),既p3的 x=50,y=70,pCount=3;p1,p2,p3,是三个类对象,初始化后存储在不同区域,x,y是对象的属性,所以每个对象的属性值都不同;p4对象是在声明的同时采用Point类的第二个构造方法初始化,p4的x和y属性值分别为10和50,;因为共有四个对象初始化所以共有四个point对象。分析完毕。 |