生活随笔
收集整理的這篇文章主要介紹了
计算各种图形的周长(接口与多态)_JAVA
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Description
定義接口Shape,定義求周長(zhǎng)的方法length()。
定義如下類實(shí)現(xiàn)接口Shape的抽象方法:
(1)三角形類Triangle (2)長(zhǎng)方形類Rectangle (3)圓形類Circle等。
定義測(cè)試類ShapeTest,用Shape接口定義變量shape,用其指向不同類形的對(duì)象,輸出各種圖形的周長(zhǎng)。并為其他的Shape接口實(shí)現(xiàn)類提供良好的擴(kuò)展性。
Input
輸入多組數(shù)值型數(shù)據(jù)(double);
一行中若有1個(gè)數(shù),表示圓的半徑;
一行中若有2個(gè)數(shù)(中間用空格間隔),表示長(zhǎng)方形的長(zhǎng)度、寬度。
一行中若有3個(gè)數(shù)(中間用空格間隔),表示三角形的三邊的長(zhǎng)度。
若輸入數(shù)據(jù)中有負(fù)數(shù),則不表示任何圖形,周長(zhǎng)為0。
Output
行數(shù)與輸入相對(duì)應(yīng),數(shù)值為根據(jù)每行輸入數(shù)據(jù)求得的圖形的周長(zhǎng)(保留2位小數(shù))。
Sample
Input
1
2 3
4 5 6
2
-2
-2 -3
Output
6.28
10.00
15.00
12.56
0.00
0.00
Hint
構(gòu)造三角形時(shí)要判斷給定的三邊的長(zhǎng)度是否能組成一個(gè)三角形,即符合兩邊之和大于第三邊的規(guī)則;
計(jì)算圓周長(zhǎng)時(shí)PI取3.14。
import java
.util
.*
;
interface Shape{public void length();
}
class Triangle implements Shape{double a
, b
, c
;public Triangle(double a
, double b
, double c
) {this.a
= a
;this.b
= b
;this.c
= c
;} public void length(){if(a
<= 0 || b
<= 0 || c
<= 0){System
.out
.print("0.00\n");}else if(a
+b
<=c
||a
+c
<=b
||c
+b
<=a
){System
.out
.print("0.00\n");}else{System
.out
.printf("%.2f\n", a
+b
+c
);}}
}
class Rectangle implements Shape{double a
, b
;public Rectangle(double a
, double b
) {this.a
= a
;this.b
= b
;}public void length(){if(a
<= 0 || b
<= 0){System
.out
.print("0.00\n");}else{System
.out
.printf("%.2f\n", 2*(a
+b
));}}
}
class Circle implements Shape{double a
;public Circle(double a
) {this.a
= a
;}public void length(){if(a
<= 0){System
.out
.print("0.00\n");}else{System
.out
.printf("%.2f\n", 2*3.14*a
);}}
}
public class Main {public static void main(String args
[]){Scanner reader
= new Scanner(System
.in
);while(reader
.hasNext()){String ch
= reader
.nextLine();String a
[] = ch
.split(" ");int c
[] = new int[5];int i
;for(i
= 0; i
< a
.length
; i
++) {c
[i
] = Integer
.parseInt(a
[i
]);}if(i
== 1) {Circle x
= new Circle(c
[0]);x
.length();}else if(i
== 2) {Rectangle x
= new Rectangle(c
[0], c
[1]);x
.length();}else {Triangle x
= new Triangle(c
[0], c
[1], c
[2]);x
.length();}}reader
.close();}}
總結(jié)
以上是生活随笔為你收集整理的计算各种图形的周长(接口与多态)_JAVA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。