项目截图:
实现代码:
1 package exercise2;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6
7 interface CircleShape {
8 double PI = 3.14159;
9
10 double area(double radius);
11 }
12
13 class Circle implements CircleShape {
14 int radius;
15
16 public Circle(int r) {
17 radius = r;
18 }
19
20 public double perimeter() {
21 return (2 * PI * radius);
22 }
23
24 @Override
25 public double area(double radius) {
26 return (PI * radius * radius);
27 }
28 }
29
30 class Cylinder extends Circle implements CircleShape {// 子类会继承父类对于接口的实现
31 int heigh;
32 int radius;
33
34 public Cylinder(int r, int h) {
35 super(r);
36 heigh = h;
37 }
38
39 public double baseAera(double radius) {
40 return area(radius);
41 }
42
43 public double area1(double radius) {
44 return (heigh * super.perimeter() + 2 * area(radius));
45 }
46
47 public double volume(double radius) {
48 return (heigh * area(radius));
49 }
50 }
51
52 public class Ex13_2 {
53 public static void main(String[] args) throws IOException {
54 int r1, r2;
55 String t;
56 System.out.println("请输入圆cir1和cir2的半径r1,r2");
57 BufferedReader scan = new BufferedReader(new InputStreamReader(
58 System.in));
59 t = scan.readLine();
60 r1 = Integer.parseInt(t);
61 t = scan.readLine();
62 r2 = Integer.parseInt(t);
63 Circle cir1 = new Circle(r1);
64 Circle cir2 = new Circle(r2);
65 System.out.println("圆cir1的面积是" + cir1.area(r1) + "\t周长是:"
66 + cir1.perimeter());
67 System.out.println("圆cir2的面积是" + cir1.area(r2) + "\t周长是:"
68 + cir2.perimeter());
69 int h1, h2;
70 System.out.println("请输入圆柱cy1的半径和高:");
71 t = scan.readLine();
72 r1 = Integer.parseInt(t);
73 t = scan.readLine();
74 h1 = Integer.parseInt(t);
75 Cylinder cy1 = new Cylinder(r1, h1);
76 System.out.println("cy1的底圆面积是:" + cy1.baseAera(r1));
77 System.out.println("cy1的体积是:" + cy1.volume(r1) + "\t表面积是:"
78 + cy1.area1(r1));
79
80 System.out.println("请输入圆柱cy2的半径和高:");
81 t = scan.readLine();
82 r2 = Integer.parseInt(t);
83 t = scan.readLine();
84 h2 = Integer.parseInt(t);
85 Cylinder cy2 = new Cylinder(r2, h2);
86 System.out.println("cy2的底圆面积是:" + cy2.baseAera(r1));
87 System.out.println("cy2的体积是:" + cy2.volume(r1) + "\t表面积是:"
88 + cy2.area1(r2));
89 }
90
91 }