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 }
道阻且长,行则将至

浙公网安备 33010602011771号