Java实验——设计一个抽象类图形类

目录

一、题目要求

二、解题思路

三、具体代码

四、运行截图


一、题目要求

   设计一个抽象类图形类,在该类中包含有至少三个抽象方法,分别用于求周长、求面积,以及对图形进行描述(如,“这是**形状,周长是**,面积是**”),分别定义圆形类、长方形类、等边三角形类来继承图形类,实现上述三个方法,并创建实例验证。

二、解题思路

        首先定义一个抽象类Shape,然后定义三个抽象方法,接下来分别定义Circle类,Rectangle类和E_triangle类,这三个类去继承Shape类,并分别根据自身要求重写Shape类中的抽象方法。

三、具体代码

import static java.lang.Math.PI;
import static java.lang.Math.sqrt;

abstract class Shape {//形状类
    abstract double perimeter();//周长
    abstract double area();//面积
    abstract void show();//输出显示
}

class Circle extends Shape{//圆类
    private final double r;//半径

    public Circle(double r) {//构造函数
        this.r = r;
    }

    @Override
    double perimeter(){
        return 2*PI*r;
    }

    @Override
    double area(){
        return PI*r*r;
    }

    @Override
    void show(){
        System.out.println("这是圆形,周长是"+perimeter()+",面积是"+area());
    }

}

class Rectangle extends Shape{//长方形类
    private final double l;//长
    private final double w;//宽

    public Rectangle(double l,double w) {//构造函数
        this.l=l;
        this.w=w;
    }

    @Override
    double perimeter() {
        return 2*(l+w);
    }

    @Override
    double area() {
        return l*w;
    }

    @Override
    void show() {
        System.out.println("这是长方形,周长是"+perimeter()+",面积是"+area());
    }
}

class E_triangle extends Shape{//等边三角形类
    private final double side;//边长

    public E_triangle(double side) {//构造函数
        this.side = side;
    }

    @Override
    double perimeter() {
        return 3*side;
    }

    @Override
    double area() {
        return 0.25*sqrt(3)*side*side;
    }

    @Override
    void show() {
        System.out.println("这是等边三角形,周长是"+perimeter()+",面积是"+area());
    }
}
public class T1{
        public static void main(String[] args){
                Circle c=new Circle(5);
                c.show();
                Rectangle r=new Rectangle(3,4);
                r.show();
                E_triangle e=new E_triangle(3);
                e.show();
        }
}

四、运行截图

Java实验——设计一个抽象类图形类_第1张图片

 

你可能感兴趣的:(Java实验,java,servlet,开发语言,学习,经验分享)