编写一个完整的Java Application 程序。包含类Shape、类Oval、类ShapeTest,具体要求如下: (1)编写一个抽象类Shape表示形状对象,包含以下成员 ①属性: PI:double型常数,值为3.1415926; ②方法: double area(), 抽象方法; double perimeter(),抽象方法; (2)编写一个Shape类的子类Oval,表示椭圆对象,包含以下成员 ①属性: a:私有,double型,长轴半径; b:私有,double型,短轴半径; ②方法: Oval(double a,double b), 构造方法,用参数设置椭圆的长轴半径和短轴半径 Oval(),构造方法,将椭圆的长轴半径和短轴半径都初始化为0。 double area(),重写Shape类中的area方法,返回椭圆的面积( ) double perimeter(),重写Shape类中的perimeter方法,返回椭圆的周长( ) public String toString( ),将把当前椭圆对象的转换成字符串形式,例如长轴半径为10.0,短轴半径为5,返回字符串"Oval(a:10.0,b:5.0)"。 (3)编写公共类Main,实现如下功能 输入长轴半径和短轴半径,并创建一个椭圆对象; 分别用area和perimeter方法,求出以上椭圆的面积和宽度并输出,输出过程中要求使用到toString方法,输出格式如下: 输入格式: 输入长轴半径和短轴半径 输出格式: 输出椭圆的面积和周长。
时间: 2023-06-06 15:07:14 浏览: 216
好的,收到您的要求。以下是Java应用程序的代码:
Shape.java:
public abstract class Shape {
protected final double PI = 3.1415926;
public abstract double area();
public abstract double perimeter();
}
Oval.java:
public class Oval extends Shape {
private double a;
private double b;
public Oval(double a, double b) {
this.a = a;
this.b = b;
}
public Oval() {
this.a = 0;
this.b = 0;
}
@Override
public double area() {
return PI * a * b;
}
@Override
public double perimeter() {
return PI * (a + b);
}
public String toString() {
return "Oval(a:" + a + ",b:" + b + ")";
}
}
ShapeTest.java:
public class ShapeTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入长轴半径和短轴半径:");
double a = input.nextDouble();
double b = input.nextDouble();
Oval oval = new Oval(a, b);
System.out.println(oval.toString());
System.out.println("椭圆的面积为:" + oval.area());
System.out.println("椭圆的周长为:" + oval.perimeter());
}
}
请注意,以上代码是基于您的要求编写的。如果您有其他需求或者修改,可以让我知道,我会尽力满足您的需求。
阅读全文