Java接口

设有图形,矩形,立方体,圆,圆柱根据自己的理解给出他们之间的关系

1.每种图形都有计算面积,周长,显示信息,获取图形名称的方法

2.设计一个主方法,其功能是求n个图形的面积之和

  1 package classwork7;
  2 
  3 public interface Js {
  4       public double S();//面积
  5       public double C();//周长
  6       public String output();//信息输出
  7 }
  8 package classwork7;
  9 
 10 public interface Js2 {
 11     public double V();//体积
 12     public double BS();//表面积
 13     public String output();//信息输出
 14 }
 15 package classwork7;
 16 
 17 public class Shape {
 18        private String name;
 19 
 20     public Shape() {
 21         
 22     }
 23 
 24     public Shape(String name) {
 25         this.name = name;
 26     }
 27 
 28     public String getName() {
 29         return name;
 30     }
 31        
 32 }
 33 package classwork7;
 34 
 35 public class Rectangle extends Shape implements Js {
 36      private double a,b;   
 37      public Rectangle(double a, double b) {
 38      super("矩形");
 39         this.a = a;
 40         this.b = b;
 41     }
 42     
 43 
 44     public Rectangle() {
 45          super("矩形");
 46     }
 47     
 48 
 49     public double getA() {
 50         return a;
 51     }
 52 
 53 
 54     public double getB() {
 55         return b;
 56     }
 57 
 58 
 59     @Override
 60     public double S() {
 61        double c=a*b;
 62         return c;
 63     }
 64 
 65     @Override
 66     public double C() {
 67         return (a+b)*2;
 68     }
 69     
 70 
 71     @Override
 72     public String output() {
 73           String s="";
 74           s=getName()+"信息:长="+a+"宽="+b+"面积="+S()+"周长="+C();
 75         return s;
 76     }
 77 
 78 }
 79 package classwork7;
 80 
 81 public class Cube extends Shape implements Js2 {
 82     private double h;
 83     private double a,b;
 84     Rectangle c=new Rectangle(a,b);
 85     public Cube(double a, double b,double h) {
 86         super("立方体");
 87         this.a=a;
 88         this.b=b;
 89         this.h=h;
 90         
 91     }
 92     
 93     public Cube() {
 94         super("立方体");
 95     }
 96     @Override
 97     public double BS() {
 98         return (c.S()+a*h+b*h)*2;
 99     }
100     @Override
101     public double V() {
102         return c.S()*h;
103     }
104     @Override
105     public String output() {
106           String s="";
107           s=getName()+"信息:长="+a+"宽="+b+"表面积="+BS()+"体积="+V();
108         return s;
109     }
110 }
111 package classwork7;
112 
113 public class Circle extends Shape implements Js {
114     private double r;     
115     public Circle() {
116     super("圆");    
117     }
118     
119     public Circle(double r) {
120         super("圆");    
121         this.r = r;
122     }
123 
124     public double getR() {
125         return r;
126     }
127 
128     @Override
129     public double S() {
130         
131         return Math.PI*r*r;
132     }
133 
134     @Override
135     public double C() {
136     
137         return 2*r*Math.PI;
138     }
139     
140     @Override
141     public String output() {
142         String s="";
143         s=getName()+"信息:半径="+r+"面积="+S()+"周长="+C();
144         return s;
145     }
146      
147 }
148 package classwork7;
149 
150 public class Clinder extends Shape implements Js2 {
151      private double h;
152      private double r;
153      Circle a=new Circle(r);
154         public  Clinder() {
155             super("圆柱");
156         }
157         public  Clinder( double r,double h) {
158             super("圆柱");
159             this.r = r;
160             this.h = h;
161         }
162         @Override
163         public double BS() {
164             return a.S()*2+a.C()*h;
165         }
166         @Override
167         public double V() {
168             return a.S()*h;
169         }
170 
171     @Override
172     public String output() {
173         String s="";
174         s=getName()+"信息:半径为:"+r+"圆柱的高为:"+h+"表面积="+BS()+"体积="+V();
175         return s; 
176     }
177     
178 
179 }
180 package classwork7;
181 
182 import java.util.Scanner;
183 
184 public class Manger_rccc {
185 
186     public void menu() {
187         int i = 0;
188         while (i != 7) {
189             System.out.println("***图形类对象的管理***");
190             System.out.println("----------------");
191             System.out.println("1.创建一个圆");
192             System.out.println("2.创建一个矩形");
193             System.out.println("3.创建一个立方体");
194             System.out.println("4.创建一个圆柱体");
195             System.out.println("5.显示已创建的图形");
196             System.out.println("6.求各图形的面积之和");
197             System.out.println("7.退出系统");
198             Scanner in = new Scanner(System.in);
199             i = in.nextInt();
200             switch (i) {
201             case 1:
202                 CreateCircle();
203                 break;
204             case 2:
205                 CreateRectangle();
206                 break;
207             case 3:
208                 CreateCube();
209                 break;
210             case 4:
211                 CreateClinder();
212                 break;
213             case 5:
214                 show();
215                 break;
216             case 6:
217                 sum();
218                 break;
219             case 7:
220                 break;
221             default:
222                 System.out.println("请输入正确指令");
223                 break;
224             }
225         }
226     }
227 
228     Circle a = new Circle();
229     Rectangle b = new Rectangle();
230     Cube c = new Cube();
231     Clinder d = new Clinder();
232 
233     public void CreateCircle() {
234         Circle e = new Circle(2);
235         System.out.println("已创建一个半径为2的圆形");
236         a=e;
237     }
238 
239     public void CreateRectangle() {
240         Rectangle e = new Rectangle(1, 2);
241         System.out.println("已创建一个长为1宽为2矩形");
242         b=e;
243     }
244 
245     public void CreateCube() {
246         Cube e = new Cube(1, 2, 3);
247         System.out.println("已创建一个长为1宽为2高为3的立方体");
248         c = e;
249     }
250 
251     public void CreateClinder() {
252         Clinder e = new Clinder(2, 2);
253         System.out.println("已创建一个半径为2高为2的圆柱体");
254         d = e;
255     }
256 
257     public void show() {
258         System.out.println(a.output());
259         System.out.println(b.output());
260         System.out.println(c.output());
261         System.out.println(d.output());
262     }
263 
264     public void sum() {
265         System.out.println("面积之和为:" + (a.S() + b.S() + c.BS() + d.BS()));
266     }
267 }
268 package classwork7;
269 
270 public class Testmanger {
271 
272     public static void main(String[] args) {
273         Manger_rccc a=new Manger_rccc();
274         a.menu();
275     }
276 
277 }

 

posted @ 2020-11-29 15:08  丁帅帅dss  阅读(118)  评论(0)    收藏  举报