撰寫一個完整的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());
}
}
測驗結果如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281610.html
標籤:java
