Java作业3.0
编程题
(1)设计一个名为Geometric的几何图形的抽象类,该类包括:
①两个名为color、filled属性分别表示图形颜色和是否填充。
②一个无参的构造方法。
③一个能创建指定颜色和填充值的构造方法。
④一个名为getArea()的抽象方法,返回图形的面积。
⑤一个名为getPerimeter()的抽象方法,返回图形的周长。
⑥一个名为toString()的方法,返回该几何图形的字符串描述。
(2)设计一个名为Circle的圆类来实现Geometric类,该类包括:
①一个名为radius的double类型私有属性表示半径。
②一个无参构造方法创建圆。
③一个能创建指定radius的圆的构造方法。
④radius的访问器方法。
⑤一个名为getArea()的方法,返回该圆的面积。
⑥一个名为getPerimeter()的方法,返回圆的周长。
⑦一个名为toString()的方法,返回该圆的字符串描述。
(3)设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:
①两个名为side1、side2的double类型私有属性表示矩形的两条边。
②一个无参构造方法创建矩形。
③一个能创建指定sidel和side2的矩形的构造方法。
④side1和side2的访问器方法。
⑤一个名为getArea()的方法,返回该矩形的面积。
⑥一个名为gelPerimeter()的方法,返回该矩形的周长。
⑦一个名为toString()的方法,返回该矩形的字符串描述。
(4)设计一个名为Triangle的三角形类来实现Geometric类,该类包括:
①三个名为side1,side2和side3的double类型私有属性表示三角形的三条边。
②一个无参构造方法创建三角形。
③一个能创建指定side1,side2和side3的矩形的构造方法。
④side1,side2和side3的访问器方法。
⑤一个名为getArea()的方法,返回该三角形的面积。
⑥一个名为getPerimeter()的方法,返回该三角形的周长。
⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。
⑧一个名为toString()的方法,返回三边较小的字符串描述。
(5)编写测试类,测试图形的面积和周长。








package zuoye; abstract class Geometric { private Color color ; private boolean filled; public Geometric (){ } public Geometric(Color color, boolean filled) { this.color = color; this.filled = filled; } abstract double GetAre(); abstract double getPerimeter(); @Override public String toString() { return "Geometric [Color=" + color + ", filled=" + filled + ", GetAre()=" + GetAre() + ", getPerimeter()=" + getPerimeter() + "]"; } String toString1() { return null; } }
package zuoye; public class Color { private int red; private int green; private int bule; public Color(int red, int green, int bule) { this.red = red; this.green = green; this.bule = bule; } }
package zuoye; public class Circle extends Geometric { private double radius; private static final double PI = 3.14; public Circle() { } public Circle(double radius) { this.radius = radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } @Override double GetAre() { return radius * radius * PI; } @Override double getPerimeter() { return radius * 2 * PI; } @Override public String toString() { return "Circle [radius=" + radius + ", GetAre()=" + GetAre() + ", getPerimeter()=" + getPerimeter() + "]"; } }
package zuoye; public class Rectangle extends Geometric{ private double side1; private double side2; public Rectangle() { } //创建指定sidel和side2的矩形的构造方法。 public Rectangle(double side1, double side2) { super(); this.side1 = side1; this.side2 = side2; } //sidel和sidez的访问器方法。 public double getSide1() { return side1; } public void setSide1(double side1) { this.side1 = side1; } public double getSide2() { return side2; } public void setSide2(double side2) { this.side2 = side2; } @Override //返回该矩形的面积。 double GetAre() { return side1 * side2; } @Override //返回该矩形的周长。 double getPerimeter() { return side1 * 2 + side2 * 2; } @Override //返回该矩形的字符串描述。 public String toString() { return "Rectangle [side1=" + side1 + ", side2=" + side2 + ", GetAre()=" + GetAre() + ", getPerimeter()=" + getPerimeter() + "]"; } }
package zuoye; import java.awt.TexturePaint; import javax.swing.plaf.basic.BasicInternalFrameTitlePane.IconifyAction; public class Triangle extends Geometric { //表示三角形的三条边。 private double side1; private double side2; private double side3; private boolean ture; //无参构造方法创建三角形。 public Triangle() { } //创建指定side1,side2和side3的矩形的构造方法 public Triangle(double side1, double side2, double side3) { super(); this.side1 = side1; this.side2 = side2; this.side3 = side3; } //sidel,side2和side3的访问器方法。 public double getSide1() { return side1; } public void setSide1(double side1) { this.side1 = side1; } public double getSide2() { return side2; } public void setSide2(double side2) { this.side2 = side2; } public double getSide3() { return side3; } public void setSide3(double side3) { this.side3 = side3; } @Override double GetAre() { double q =(side1 + side2+ side3)/2; return Math.sqrt( q * (q - side1 ) *(q - side2 )*(q - side3 )); } @Override double getPerimeter() { return side1 + side2 + side3; } boolean isTriangle() { if ((side1 + side2) > side3 && (side1 + side3) > side2 && (side2 + side3) > side1) { return true;// 能构成三角形 } else { return false;// 不能构成三角形 } } @Override String toString1() { // 求较小的边 // (1)利用if语句使得side1 <= side2 double temp; if (side1 >= side2) { temp = side1; side1 = side2; side2 = temp; } // (2)利用if语句使得side1 <= side3 if (side1 >= side3) { temp = side1; side1 = side3; side3 = temp; } // (3)此时side1变量里存储的数值最小,即为较小的边 return "Triangle [side1=" + side1 + "]"; } @Override public String toString() { return "Triangle [side1=" + side1 + ", side2=" + side2 + ", side3=" + side3 + ", ture=" + ture + ", GetAre()=" + GetAre() + ", getPerimeter()=" + getPerimeter() + ", isTriangle()=" + isTriangle() + ", toString1()=" + toString1() + "]"; } }
package zuoye; public class GeometricTest { public static void main(String[] args) { Circle c1 = new Circle( 7 ); System.out.println( c1.toString() ); Rectangle d1 = new Rectangle( 2,2 ); System.out.println( d1.toString() ); Triangle f1 = new Triangle(1, 2, 4); System.out.println( f1.toString() ); } }

浙公网安备 33010602011771号