Java_抽象类练习题

设有图形,矩形,立方体,圆,圆柱,根据自己的理解,给出它们之间的关系。
要求:
1、每种图形都有计算面积、周长、显示信息、获取图形名称的方法。
2、设计一个主方法,其功能是求n个图形(是表中图形个数的任意组合)的面积之和,运行界面如图
3、设计程序时,可以设计接口,抽象类,子类,等有关的内容,并要体现使用抽象类或者接口有什么优点?
ChangFangTi:
package ch11_02;public class ChangFangTi extends TuXing {private double c;//长private double k;//宽private double g;//高public ChangFangTi(double c, double k, double g) {super("长方体");this.c = c;this.k = k;this.g = g;}public double getC() {return c;}public void setC(double c) {this.c = c;}public double getK() {return k;}public void setK(double k) {this.k = k;}public double getG() {return g;}public void setG(double g) {this.g = g;}@Overridepublic double mj() {return (c*k+k*g+g*c)*2;}public void show() {System.out.println("长方体信息:长="+c+" 宽="+k+" 高="+g+" 面积="+mj());}}
JvXing:
package ch11_02;public class JvXing extends TuXing {private double cd;//长度private double kd;//宽度public JvXing(double cd,double kd) {super("矩形");this.cd = cd;this.kd = kd;}public double getCd() {return cd;}public void setCd(double cd) {this.cd = cd;}public double getKd() {return kd;}public void setKd(double kd) {this.kd = kd;}@Overridepublic double mj() {return cd*kd;}public void show() {System.out.println("矩形信息:长="+cd+" 宽="+kd+" 面积="+mj());}}
Test:
package ch11_02;import java.util.Scanner;public class Test {public static void show() {System.out.println("1.创建一个圆");System.out.println("2.创建一个矩形");System.out.println("3.创建一个长方体");System.out.println("4.创建一个圆柱体");System.out.println("5.显示已经创建的图形");System.out.println("6.求各图形的面积之和");System.out.println("7.退出系统");}public static void main(String[] args) {System.out.println("***图形类对象的管理***");System.out.println("-----------------");System.out.println("1.创建一个圆");System.out.println("2.创建一个矩形");System.out.println("3.创建一个长方体");System.out.println("4.创建一个圆柱体");System.out.println("5.显示已经创建的图形");System.out.println("6.求各图形的面积之和");System.out.println("7.退出系统");Scanner cin = new Scanner(System.in);double sum = 0;int m1=0;int a = 0;int b = 0;int d = 0;int p = 0;while(m1!=7) {m1 = cin.nextInt();switch(m1) {case 1:double r; System.out.println("请输入半径:");r=cin.nextDouble();Yuan y = new Yuan(r);sum += y.mj();y.show();a += 1;show();break;case 2:double c,k;System.out.println("请分别输入长和宽:");c = cin.nextDouble();k = cin.nextDouble();JvXing jx = new JvXing(c, k);sum += jx.mj();jx.show();b += 1;show();break;case 3: double c1,k1,g1;System.out.println("请分别输入长宽高:");c1 = cin.nextDouble();k1 = cin.nextDouble();g1 = cin.nextDouble();ChangFangTi cft = new ChangFangTi(c1, k1, g1);sum += cft.mj();cft.show();d += 1;show();break;case 4: double r1,h1; System.out.println("请分别输入半径和高:");r1 = cin.nextDouble();h1 = cin.nextDouble();YuanZhuTi yzt = new YuanZhuTi(r1, h1);sum += yzt.mj();yzt.show();p += 1;show();break;case 5: System.out.println("创建了"+a+"个圆形");System.out.println("创建了"+b+"个矩形");System.out.println("创建了"+d+"个长方体");System.out.println("创建了"+p+"个圆柱体");show();break;case 6:System.out.println("各图形面积之和="+sum);show();break;case 7:break;}}cin.close();}
}
TuXing:
package ch11_02;public abstract class TuXing {private String mc;//名称public abstract double mj();//面积public TuXing(String mc) {this.mc = mc;}public String getmc() {return mc;}public void setmc(String x) {mc = x;}}
Yuan:
package ch11_02;public class Yuan extends TuXing {private double r;public Yuan( double r) {super("圆");this.r = r;}public double getR() {return r;}public void setR(double r) {this.r = r;}@Overridepublic double mj() {return Math.PI*r*r;}public void show() {System.out.println("圆信息:半径="+r+" 面积="+mj());}}
YuanZhuTi:
package ch11_02;public class YuanZhuTi extends TuXing {private double r;private double h;public YuanZhuTi( double r, double h) {super("圆柱体");this.r = r;this.h = h;}public double getR() {return r;}public void setR(double r) {this.r = r;}public double getH() {return h;}public void setH(double h) {this.h = h;}@Overridepublic double mj() {return Math.PI*r*r*2+2*Math.PI*r*h;}public void show() {System.out.println("圆柱体信息:半径="+r+" 高="+h+" 面积="+mj());}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
