在一个类(Rectangle)中使用另一个类名(Point)定义成员变量,可以调用另一个类中的方法
//*定义一个Point类*
//*定义一个Point类*
class Point{
public int x;//定义成员变量
public int y;//定义成员变量
public Point(){ //Point构造方法1,不带参数
this.x=0; //引用当前x
this.y=0; //引用当前y
}
public Point(int x,int y){ //Point构造方法2,带两个参数
this.x=x;//引用当前x
this.y=y;//引用当前y
}
}
//*定义一个类Rectangle*
class Rectangle{
public int width=0;//定义成员变量
public int height=0;//定义成员变量
public Point origin;//定义成员变量
public Rectangle(){ //Rectangle构造方法1,不带参数
origin=new Point(0,0);
}
public Rectangle(Point p){ //Rectangle构造方法2,带一个参数
origin=p;
}
public Rectangle(Point p,int w,int h){ //构造方法3,带三个参数
origin=p;
width=w;
height=h;
}
public void move1(int x,int y){ //成员方法move1
origin.x=x;
origin.y=y;
}
public void move2(int a,int b){ //成员方法move2
origin.x+=a;
origin.y+=b;
}
public int area(){ //成员方法area
return width*height;
}
}
//*定义主程序类*
public class Li5_03{
public static void main(String args[]){
int x=3,y=4;
int w=4,h=5;
Point p1=new Point(x,y);//调用Point构造方法2将原点p1定在3,4
Point p2=new Point(8,2);//调用Point构造方法2将原点p2定在8,2
Rectangle r1=new Rectangle(p1,w,h);
//*调用Rectangle构造方法3以点p1为原点,长为w,高为h画矩形r1*
Rectangle r2=new Rectangle(p2,8,10);
//*调用Rectangle构造方法3以点p2为原点,长为8,高为10画矩形r2*
r1.move1(2,3);//调用成员方法把矩形r1的原点移到(2,3)
r2.move2(-2,4);//调用成员方法把矩形r2的原点x坐标减2,y坐标加4
System.out.println("两个矩形面积差="+(r2.area()-r1.area()));
//*调用成员方法计算矩形r2与r1面积差*
System.out.print("r1的原点为("+r1.origin.x+",");
System.out.println(r1.origin.y+")");
System.out.print("r2的原点为("+r2.origin.x+",");
System.out.println(r2.origin.y+")");
}
}