一、子类及其对象
1、设计一个圆类,该类能够表示圆的位置和大小,能够计算圆的面积和周长,能够对圆进行平移。定义圆类的对象并进行相应的操作,输出操作后的结果。
package MY;
class Point //点类 ,父类
{
protected int x,y; // 保护,可以被子类访问
public Point(){} //构造方法
public Point(int x,int y) //构造方法
{
this.x=x;
this.y=y;
}
//下面的方法都是公有的,可以被子类继承并直接访问
public int getX() //获得 x 分量
{
return x;
}
public int getY() //获得 Y 分量
{
return y;
}
public void move (int offsetX,int offsetY) // 对点平移
{
x=x+offsetX;
y=y+offsetY;
}
}
class Circle extends Point //Circle 是子类,继承自父类 Point
{
private double radius; //圆的尺寸
public Circle(){} //构造方法
public Circle (double radius, int x,int y) //构造方法
{
this.radius=radius; //本身域初始化
this.x=x; //继承自父类的域 x 和 y 初始化
this.y=y;
}
public double area() //计算面积
{
return Math.PI*radius*radius;
}
public double perimeter() //计算周长
{
return 2*Math.PI*radius;
}
/*
* 本类中无需再定义下面方法,因为本类对象可以
* 直接使用继承自 Point 类中的相应方法
public int getX(){}
public int getY(){}
public void move (int offsetX,int offsetY){}*/
}
public class Main {
public static void main()(String args[])
{
Circle aCircle =new Circle (10,15,25); //生成派生类对象
System.out.printf("面积:%。2f,周长:%。2f\n", aCircle.area(),aCircle.perimeter());
System.out.println("移动前圆的位置:("+aCircle.getX()+","+aCircle.getY()+")");
aCircle.move(11, 22);
System.out.println("移动后圆的位置:("+aCircle.getX()+","+aCircle.getY()+")");
}
}