Description
设计一个圆类,圆类中设置必要的数据成员,使之能够表示圆的大小和位置;类中设置必要的成员函数,能够求圆的面积和周长;设计一个成员函数,能够将圆从一个位置移动到另一个位置。
Input
多组数据。每组数据包括圆的半径和圆心坐标,以及移动的增量。半径是浮点数,圆心坐标和移动增量都是整型数。
Output
圆的面积和周长(精确到小数点后两位),及移动后的圆的位置(整型)。
Sample Input
10 10 10 15 15
20 20 30 16 16
Sample Output
area:314.16 perimeter:62.83 after moved:25 25
area:1256.64 perimeter:125.66 after moved:36 46
package check;
import java.util.Scanner;
class Circle
{ // 定义父类 -- 园类
private double radius; // 成员变量 -- 园半径
private int x1;
private int y1;
private int x2;
private int y2;
Circle(double r,int a,int b,int c,int d)
{ // 构造方法
radius=r;
x1=a;
y1=b;
x2=c;
y2=d;
}
double getPerimeter()
{ // 成员方法 -- 求园周长
return 2*Math.PI*radius;
}
double getArea()
{ // 成员方法 -- 求园面积
return Math.PI*radius*radius;
}
int movex()
{
x1=x1+x2;
return x1;
}
int movey()
{
y1=y1+y2;
return y1;
}
void disp()
{ // 成员方法 -- 显示园周长、面积
System.out.println("area:"+(String.format("%.2f",getArea())+" perimeter:"+String.format("%.2f",getPerimeter()))+" after moved:"+movex()+" "+movey());
}
}
public class Main
{ // 定义主类
public static void main(String[] args)
{ // 主程入口
Scanner in=new Scanner(System.in);
while(in.hasNextInt())
{
int r=in.nextInt();
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
int d=in.nextInt();
Circle Ci=new Circle(r, a, b, c, d); // 生成园类实例
Ci.disp(); // 调用园类的方法
}
}
}