生活随笔
收集整理的这篇文章主要介绍了
计算各种图形的周长(接口与多态)_JAVA
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Description
定义接口Shape,定义求周长的方法length()。
定义如下类实现接口Shape的抽象方法:
(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。
定义测试类ShapeTest,用Shape接口定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。
Input
输入多组数值型数据(double);
一行中若有1个数,表示圆的半径;
一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。
一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。
若输入数据中有负数,则不表示任何图形,周长为0。
Output
行数与输入相对应,数值为根据每行输入数据求得的图形的周长(保留2位小数)。
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
构造三角形时要判断给定的三边的长度是否能组成一个三角形,即符合两边之和大于第三边的规则;
计算圆周长时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();}}
总结
以上是生活随笔为你收集整理的计算各种图形的周长(接口与多态)_JAVA的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。