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()  );
        
    }

}

 

posted @ 2022-04-01 14:02  冷漠的孩子  阅读(108)  评论(0)    收藏  举报