1. 程式人生 > 其它 >中臺架構

中臺架構

(1)設計一個名為Geometric的幾何圖形的抽象類,該類包括:

①兩個名為color、filled屬性分別表示圖形顏色和是否填充。

②一個無參的構造方法。

③一個能建立指定顏色和填充值的構造方法。

④一個名為getArea()的抽象方法,返回圖形的面積。

⑤一個名為getPerimeter()的抽象方法,返回圖形的周長。

⑥一個名為toString()的方法,返回圓的字串描述。

 1 package javawork;
 2 
 3 public abstract class Geometric {
 4     public String color;
 5     public boolean
filled; 6 public abstract void Geometric() ; 7 public abstract void Geometric( boolean filled,String color) ; 8 public abstract double getArea(); 9 public abstract double getPerimeter(); 10 @Override 11 public String toString() { 12 return super.toString(); 13 }
14 }

2)設計一個名為Circle的圓類來實現Geometric類,該類包括:

①一個名為radius的double屬性表示半徑。

②一個無參構造方法建立圓。

③一個能建立指定radius的圓的構造方法。

④radius的訪問器方法。

⑤一個名為getArea()的方法,返回該圓的面積。

⑥一個名為getPerimeter()的方法,返回圓的周長。

⑦一個名為toString()的方法,返回該圓的字串描述。

 

 1 package javawork;
 2 
 3 public class Circle extends Geometric{
 4     double radius;
5 static final double PI=3.14; 6 @Override 7 public void Geometric(boolean filled,String color) { 8 this.filled=filled; 9 this.color=color; 10 } 11 public Circle() { 12 } 13 public void Circle(double radisu) { 14 this.radius=radisu; 15 } 16 @Override 17 public double getArea() { 18 return radius*radius*PI; 19 } 20 @Override 21 public double getPerimeter() { 22 return radius*2*PI; 23 } 24 @Override 25 public void Geometric() { 26 if (filled) { 27 System.out.println("填充顏色為:"+color); 28 } 29 else{ 30 System.out.println("無填充"); 31 } 32 } 33 @Override 34 public String toString() { 35 return "Circle [ radius="+radius+",color="+color+",filled="+filled+ 36 ",getArea"+getArea()+",getPerimeter()="+getPerimeter()+",toString()=" 37 +super.toString()+",PI="+PI+",hasCode()"+hashCode(); 38 } 39 }

(3)設計一個名為Rectangle的矩形類來實現Geometric類,該類包括:

①兩個名為side1、side2的double屬性表示矩形的兩條邊。

②一個無參構造方法建立矩形。

③一個能建立指定sidel和side2的矩形的構造方法。

④sidel和sidez的訪問器方法。

⑤一個名為getArea()的方法,返回該矩形的面積。

⑥一個名為gelPerimeter()的方法,返回該矩形的周長。

⑦一個名為toString()的方法,返回該矩形的字串描述。

 1 package javawork;
 2 
 3 public class Rectangle extends Geometric {
 4     double side1,side2;
 5     
 6     public Rectangle() {
 7         
 8     }
 9     @Override
10     public void Geometric(boolean filled,String color) {
11         this.filled=filled;
12         this.color=color;
13     }
14     public void Rectangle(double side1,double side2) {
15         this.side1=side1;
16         this.side2=side2;
17     }
18     @Override
19     public double getArea() {
20         return side1*2+side2*2;
21     }
22     @Override
23     public double getPerimeter() {
24         return side1*side2;
25     }
26     @Override
27     public void Geometric() {
28         if (filled) {
29             System.out.println("填充顏色為:"+color);
30         }
31         else{
32             System.out.println("無填充");
33         }
34     }
35     @Override
36     public String toString() {
37         return "Rectanle [ side1="+side1+"side2"+side2+",color="+color+",filled="+filled+
38         ",getArea"+getArea()+",getPerimeter()="+getPerimeter()+"toString()="
39         +super.toString()+",hasCode()"+hashCode();
40     }
41     
42     
43 }

(4)設計一個名為Triangle的三角形類來實現Geometric類,該類包括:

①三個名為side1,side2和side3的double屬性表示三角形的三條邊。

②一個無參構造方法建立三角形。

③一個能建立指定side1,side2和side3的矩形的構造方法。

④sidel,side2和side3的訪問器方法。

⑤一個名為getArea()的方法,返回該三角形的面積。

⑥一個名為getPerimeter()的方法,返回該三角形的周長。

⑦一個名為isTriangle()的方法,判斷三邊是否能構成三角形。

⑧一個名為toString()的方法,返回三邊較小的字串描述。

 1 package javawork;
 2 import java.math.*;
 3 public class Triangle extends Geometric {
 4     double side1,side2,side3,s;
 5     public Triangle() {
 6     }
 7     public void Trianle(double side1,double side2,double side3) {
 8             this.side1=side1;
 9             this.side2=side2;
10             this.side3=side3;
11             s=side1+side2+side3;
12     }
13     @Override
14     public void Geometric(boolean filled,String color) {
15         this.filled=filled;
16         this.color=color;
17     }
18     @Override
19     public double getArea() {
20         return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
21     }
22     @Override
23     public double getPerimeter() {
24         return side1+side2+side3;
25     }
26     public boolean isTriangle() {
27         if (side1+side2>side3&&side2+side3>side2&&side2+side3>side1) {
28             return true;
29         }
30         else {
31             return false;
32         }
33     }
34     @Override
35     public void Geometric() {
36         if (filled) {
37             System.out.println("填充顏色為:"+color);
38         }
39         else{
40             System.out.println("無填充");
41         }
42     }
43     @Override
44     public String toString() {
45         if (side1<=side2&&side1<=side3) {
46             return "Rectangle [side1="+side1+"]";
47         }
48         else if (side2<=side1&&side2<=side3) {
49             return "Rectangle [side2"+side2+"]";
50         }
51         return "Rectangle [side3="+side3+"]";
52     }
53 }

 

(5)編寫測試類,測試圖形的面積和周長。

 

 1 package javawork;
 2 import java.util.Scanner;
 3 public class Text {
 4     public static void main(String[] args) {
 5         String figure;
 6         Scanner sc=new Scanner(System.in);
 7         Circle c1=new Circle();
 8         Rectangle r1 =new Rectangle();
 9         Triangle t1=new Triangle();
10         System.out.println("-圓形-");
11         System.out.println("-矩形-");
12         System.out.println("-三角形-");
13 
14                 System.out.println("請輸入圓的半徑:");
15                 c1.Circle(sc.nextDouble());
16                 c1.Geometric(false,"null");
17                 System.out.println("周長:"+c1.getPerimeter()+"面積:"+c1.getArea());
18                 c1.Geometric();
19                 System.out.println(c1.toString());
20 
21                 System.out.println("請輸入矩形的寬和高:");
22                 r1.Rectangle(sc.nextDouble(), sc.nextDouble());
23                 r1.Geometric(true,"白色");
24                 System.out.println("周長:"+r1.getPerimeter()+"面積:"+r1.getArea());
25                 r1.Geometric();
26                 System.out.println(r1.toString());
27                 
28                 System.out.println("請輸入三角形的三條邊:");
29                 t1.Trianle(sc.nextDouble(), sc.nextDouble(), sc.nextDouble());
30                 if (t1.isTriangle()) {
31                     t1.Geometric(true,"綠色");
32                     System.out.println("周長:"+r1.getPerimeter()+"面積:"+r1.getArea());
33                     t1.Geometric();
34                     System.out.println(t1.toString());
35                 }
36                 else {
37                     System.out.println("這三條邊不能構成三角形");
38                 }
39         }
40 
41 }