作业2
(1)设计一个名为Geometric的几何图形的抽象类,该类包括:
①两个名为color、filled属性分别表示图形颜色和是否填充。
②一个无参的构造方法。
③一个能创建指定颜色和填充值的构造方法。
④一个名为getArea()的抽象方法,返回图形的面积。
⑤一个名为getPerimeter()的抽象方法,返回图形的周长。
⑥一个名为toString()的方法,返回该几何图形的字符串描述。
package com.sdbi.kong; public abstract class Geometric { private String color;//图形颜色 private boolean filled;//是否填充 public Geometric (){//无参的构造方法 } public Geometric(String color,boolean filled) { this.color=color; this.filled=filled; } public String getColor() { return color; } public boolean getFilled() { return filled; } abstract double getArea();//一个名为getArea()的抽象方法,返回图形的面积 abstract double getPermeter();//一个名为getPerimeter()的抽象方法,返回图形的周长 @Override public String toString() {//一个名为toString()的方法,返回该几何图形的字符串描述 return "Geometric [color=" + color + ", filled=" + filled + ", getArea()=" + getArea() + ", getPermeter()=" + getPermeter() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() + "]"; } }
(2)设计一个名为Circle的圆类来实现Geometric类,该类包括:
①一个名为radius的double类型私有属性表示半径。
②一个无参构造方法创建圆。
③一个能创建指定radius的圆的构造方法。
④radius的访问器方法。
⑤一个名为getArea()的方法,返回该圆的面积。
⑥一个名为getPerimeter()的方法,返回圆的周长。
⑦一个名为toString()的方法,返回该圆的字符串描述。
package com.sdbi.kong; public class Circle extends Geometric { public double radius;//一个名为radius的double类型私有属性表示半径 public Circle() {//一个无参构造方法创建圆。 System.out.println("圆"); } public Circle(String color, boolean filled,double radius) {//一个能创建指定radius的圆的构造方法。 super(color,filled); this.radius=radius; } public double getRadius() {//radius的访问器方法 return radius; } public void setRadius(double redius ) { this.radius=redius; } public double getArea() {//一个名为getArea()的方法,返回该圆的面积。 return 3.14*radius*radius; } public double getPerimenter() {//一个名为getPerimeter()的方法,返回圆的周长 return 2*3.14*radius; } @Override public String toString() {//一个名为toString()的方法,返回该圆的字符串描述 return "圆的颜色"+getColor()+"圆的面积"+getArea()+"圆的周长"+getPerimenter(); } @Override double getPermeter() { // TODO Auto-generated method stub return 0; } }
(3)设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:
①两个名为side1、side2的double类型私有属性表示矩形的两条边。
②一个无参构造方法创建矩形。
③一个能创建指定sidel和side2的矩形的构造方法。
④side1和side2的访问器方法。
⑤一个名为getArea()的方法,返回该矩形的面积。
⑥一个名为gelPerimeter()的方法,返回该矩形的周长。
⑦一个名为toString()的方法,返回该矩形的字符串描述。
package com.sdbi.kong; public class Rectangle extends Geometric{ private double side1; private double side2; public Rectangle(){ } public Rectangle(String color, boolean filled,double side1,double side2) { super(color, filled); this.side1=side1; this.side2=side2; } public double gteSide1() { return side1; } public double gteSdie1() { return side2; } public double getArea() { return side1*side2; } public double getPerimeter() { return side1*2+side2*2; } public String toString() { return "矩形的颜色:" + getColor() + "矩形的填充:" + getFilled() + "矩形的面积:" + getArea() + "矩形的周长:" + getPerimeter(); } @Override double getPermeter() { // TODO Auto-generated method stub return 0; } }
(4)设计一个名为Triangle的三角形类来实现Geometric类,该类包括:
①三个名为side1,side2和side3的double类型私有属性表示三角形的三条边。
②一个无参构造方法创建三角形。
③一个能创建指定side1,side2和side3的矩形的构造方法。
④side1,side2和side3的访问器方法。
⑤一个名为getArea()的方法,返回该三角形的面积。
⑥一个名为getPerimeter()的方法,返回该三角形的周长。
⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。
⑧一个名为toString()的方法,返回三边较小的字符串描述。
package com.sdbi.kong; public class Triangle extends Geometric{ private double side1,side2,side3; public double s; public Triangle() { } public Triangle(String color, boolean filled,double side1,double side2,double side3) { super(color, filled); this.side1=side1; this.side2=side2; this.side3=side3; s=side1+side2+side3; } public double getSide1() { return side1; } public double getSide2() { return side2; } public double getSide3() { return side3; } public double getArea() { return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3)); } public double getPerimeter() { return s; } public boolean isTriangle() { if (side1+side2>side3&side1+side3>side2&side2+side3>side1) { return true; }else { return false; } } public String toString() { return "三角形颜色:" + getColor() + "三角形填充:" + getFilled() + "三角形面积:" + getArea() + "三角形周长:" + getPerimeter(); } @Override double getPermeter() { // TODO Auto-generated method stub return 0; } }
(5)编写测试类,测试图形的面积和周长。
package com.sdbi.kong; public class Test { public static void main(String[] args) { Circle aa = new Circle("蓝色", true, 1); System.out.println(aa.toString()); Rectangle dd = new Rectangle("黑色", false, 6, 7); System.out.println(dd.toString()); Triangle bb = new Triangle("蓝色", true, 3, 4, 5); System.out.println(bb.toString()); Triangle cc = new Triangle("蓝色", true, 3, 4, 5);//同一个构造方法,不同的tostring System.out.println(cc.toString());//第二个toString方法 } }


浙公网安备 33010602011771号