Java Application 程序

编写一个完整的Java Application 程序

题目要求
包含类Shape、类Oval、类Main,具体要求如下:
(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方法。

下面我们分步写代码:
编写一个抽象类Shape表示形状对象,包含以下成员
①属性:
PI:double型常数,值为3.1415926;
②方法:

double area(), 抽象方法;
double perimeter(),抽象方法;

//抽象类Shape
public abstract class Shape {
     //abstract是抽象类的关键词
double PI=3.1415926;
    abstract double area();
    abstract 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)"。

//类Shape的子类Oval
class Oval extends Shape {
     
    private double a;
    private double b;
    Oval(double a,double b) {
     //有参构造
        this.a = a;
        this.b = b;
    }
    Oval(){
     //无参构造
        a=0;
        b=0;
    }
    double area(){
     
        return PI*a*b;
    }
    double perimeter(){
     
        return 2*PI*Math.sqrt((a*b+b*b)/2);
    }
    @Override
    public String toString() {
     
        return "Oval(a:" + a + ", b:" + b + ")";
    }
}

(3)编写公共类Main,实现如下功能
输入长轴半径和短轴半径,并创建一个椭圆对象;
分别用area和perimeter方法,求出以上椭圆的面积和宽度并输出,输出过程中要求使用到toString方法。

//类Main
import java.util.Scanner;

public class Main {
     
    public static void main(String[] args) {
     
        Scanner s=new Scanner(System.in);
        double a=s.nextDouble();//定义长轴半径
        double b=s.nextDouble();//定义短轴半径
        Oval o=new Oval(a,b);//创建椭圆对象
        System.out.println("the area of"+o.toString()+" is "+o.area());
        System.out.println("the perimeter of"+o.toString()+" is "+o.perimeter());
    }

}

测试结果如下:
Java Application 程序_第1张图片

你可能感兴趣的:(抽象类)