面向对象

1)设计一个名为Geometric的几何图形的抽象类,该类包括:

①两个名为color、filled属性分别表示图形颜色和是否填充。

②一个无参的构造方法。

③一个能创建指定颜色和填充值的构造方法。

④一个名为getArea()的抽象方法,返回图形的面积。

⑤一个名为getPerimeter()的抽象方法,返回图形的周长。

⑥一个名为toString()的方法,返回该几何图形的字符串描述。

package dssd;

public abstract class Geometric {
    private String color; //表示图形颜色
    private boolean  filled;//是否填充
    //一个无参的构造方法
      public Geometric() {
        
    }
//创建指定颜色和填充值的构造方法
    public Geometric(String color, boolean filled) {
        this.color = color;
        this.filled = filled;
    }
     abstract double getArea();//getArea()的抽象方法,返回图形的面积。
     abstract double getPerimeter();//getPerimeter()的抽象方法,返回图形的周长。
//toString()的方法,返回圆的字符串描述
    @Override
    public String toString() {
        return "Geometric [color=" + color + ", filled=" + filled + ", getArea()=" + getArea() + ", getPerimeter()="
                + getPerimeter() + "]";
    }
     
      
}

设计一个名为Circle的圆类来实现Geometric类,该类包括:

①一个名为radius的double类型私有属性表示半径。

②一个无参构造方法创建圆。

③一个能创建指定radius的圆的构造方法。

④radius的访问器方法。

⑤一个名为getArea()的方法,返回该圆的面积。

⑥一个名为getPerimeter()的方法,返回圆的周长。

⑦一个名为toString()的方法,返回该圆的字符串描述。

package dssd;

public class Circle extends Geometric {
    private static final double pI=3.14; 
    
    double radius;//名为radius的double属性表示半径。
    //无参构造方法。
    public Circle() {
        
    }
    
    
    //一个能创建指定radius的圆的构造方法
    public Circle(double radius) {
        this.radius = radius;
    }
    
    public void setRadius(double radius) {
        this.radius = radius;
    }
    
    //radius的访问器方法

    public double getRadius() {
        return radius;
    }
    
    @Override
    double getArea() {
        
        return pI * radius *radius;
    }

    @Override
    double getPerimeter() {
        
        return 2 * pI *radius;
    }
    @Override
    public String toString() {
        return "Circle [radius=" + radius + ", getArea()=" + getArea() + ", getPerimeter()=" + getPerimeter() + "]";
    }
    
            

}

设计一个名为Rectangle的矩形类来实现Geometric类,该类包括:

①两个名为side1、side2的double类型私有属性表示矩形的两条边。

②一个无参构造方法创建矩形。

③一个能创建指定sidel和side2的矩形的构造方法。

④side1和side2的访问器方法。

⑤一个名为getArea()的方法,返回该矩形的面积。

⑥一个名为gelPerimeter()的方法,返回该矩形的周长。

⑦一个名为toString()的方法,返回该矩形的字符串描述。

package dssd;

public class Rectangle extends Geometric {
    
    private double side1;
    private double side2;
     
    public Rectangle() {
        // TODO Auto-generated constructor stub
    }
    

    public Rectangle(double side1, double side2) {
        super();
        this.side1 = side1;
        this.side2 = side2;
    }
    


    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 getArea() {
        // TODO Auto-generated method stub
        return side1 *side2;
    }

    @Override
    double getPerimeter() {
        // TODO Auto-generated method stub
        return 2 *(side1 + side2);
    }


    @Override
    public String toString() {
        return "Rectangle [side1=" + side1 + ", side2=" + side2 + ", getArea()=" + getArea() + ", getPerimeter()="
                + getPerimeter() + "]";
    }
    

}

设计一个名为Triangle的三角形类来实现Geometric类,该类包括:

①三个名为side1,side2和side3的double类型私有属性表示三角形的三条边。

②一个无参构造方法创建三角形。

③一个能创建指定side1,side2和side3的矩形的构造方法。

④side1,side2和side3的访问器方法。

⑤一个名为getArea()的方法,返回该三角形的面积。

⑥一个名为getPerimeter()的方法,返回该三角形的周长。

⑦一个名为isTriangle()的方法,判断三边是否能构成三角形。

⑧一个名为toString()的方法,返回三边较小的字符串描述。

package dssd;

import org.apache.jasper.tagplugins.jstl.core.If;

public  class Triangle extends Geometric {
    
    int t;
    
    private double side1;
    private double side2;
    private double side3;

    public Triangle() {
        // TODO Auto-generated constructor stub
    }
    
    public Triangle(double side1, double side2, double side3) {
        super();
        this.side1 = side1;
        this.side2 = side2;
        this.side3 = side3;
    }
    
    
    
    @Override
    double getArea() {
        
        double p=((side1+side2+side3)/2);;
    
        return Math.sqrt(p*(p-side1)*(p-side2)*(p-side3)) ;
        
    }

    @Override
    double getPerimeter() {
        
        return side1+side2+side3;
    }

   //判断三边
    boolean kk(double side1, double side2, double side3) {
        if ((side1 + side2) > side3 && (side1 + side3) > side2 && (side2 + side3) > side1) {
            return true;
        } else {
            return false;
        } 
        
    }

      @Override
        public String toString() {
         //判断最小值
            double temp;
            if (side1 >= side2) {
                temp = side1;
                side1 = side2;
                side2 = temp;
            }
            
            if (side1 >= side3) {
                temp = side1;
                side1 = side3;
                side3 = temp;
            }
            
            return " kk [side1=" + side1 + "] ";

        }
    }
    

编写测试类,测试图形的面积和周长

package dssd;

import java.util.Scanner;


public class shuchu {
    private static Scanner sc;

    public static void main(String[] args) {
    sc =new Scanner(System.in);
        double radius=sc.nextDouble();
        Circle c1 =new Circle(radius);
        System.out.println("圆的面积"+c1.getArea());
        System.out.println("圆的周长" +c1.getPerimeter());
        System.out.println(c1.toString());
        
        double side1 =sc.nextDouble();
        double side2 =sc.nextDouble();
        Rectangle rectangle=new Rectangle(side1,side2);
        System.out.println("矩形的面积"+rectangle.getArea());
        System.out.println("矩形的周长" +rectangle.getPerimeter());
        System.out.println(rectangle.toString());
    
        double side3 =sc.nextDouble();
        double side4 =sc.nextDouble();
        double side5 =sc.nextDouble();
        Triangle triangle =new Triangle(side3,side4,side5);
        if (triangle.kk(side3, side4, side5)) {
        System.out.println("三角形的面积"+triangle.getArea());
        System.out.println("三角形的周长" +triangle.getPerimeter());
        System.out.println("三边最小值"+triangle.toString());
        } else {
           
            System.out.println("不能构成三角行");

    }

    }
}

 

posted @ 2022-04-01 14:18  孽风  阅读(84)  评论(0)    收藏  举报