继承

题目:编写一个应用程序,创建一个矩形类,类中具有长、宽两个成员变量和求周长的方法。再创建一个矩形类的子类——正方形类,类中定义求面积方法、重写求周长的方法。在主类中,输入一个正方形边长,创建正方形对象,求正方形的面积和周长。(注意:所有类均在一个包中)

package Test;

public class test7 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //建立矩形类的对象兵初始化
        Rect rect = new Rect(3,4);
        //建立正方形的对象并初始化
        Square squ = new Square(7);
        double area;
        double peri;
        //如果边长不符合要求,则会发生异常
        if(rect.getLength()<=0||rect.getWidth()<=0||squ.getLenside()<=0) {
                throw new MyExcep("矩形的边长不能少于0");
        }
        else {
            area = squ.getArea();
            peri = squ.getPeri();
            System.out.println("正方形的面积是:"+area+"正方形的周长是:"+peri);
        }
    }
}
class Rect {
    //定义长和宽
    private double length;
    private double width;
    //空参数构造方法
    Rect(){}
    //对矩形进行初始化
    Rect(double length,double width){
        this.length = length;
        this.width = width;
    }
    //设置一系列的访问器修改器
    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double width) {
        this.width = width;
    }
    //返回周长
    public double getPeri() {
        return (width+length)*2;
    }
}
class Square extends Rect{
    
    //定义边长,总感觉借用父类中的长和宽不太规范,就多写了一个边长
    private double lenside;
    //对正方形进行初始化
    Square(double lenside){
        this.lenside = lenside;
    }
    //访问器和修改器
    public double getLenside() {
        return lenside;
    }
    public void setLenside(double lenside) {
        this.lenside = lenside;
    }
    //返回周长
    public double getPeri() {
        return lenside*4;
    }
    //返回面积
    public double getArea() {
        return lenside*lenside;
    }
}
//定义不规范发生的异常
class MyExcep extends RuntimeException{
    MyExcep(String msg){
        super(msg);
    }
}

posted @ 2019-09-24 20:18  James_Harden  阅读(236)  评论(0编辑  收藏  举报