2018年12月12日

课后作业2

3、设计四个类,分别如下:
3.1 设计Shape表示图形类,有面积属性area、周长属性per,颜色属性color,有两个构造方法(一个是默认的、一个是为颜色赋值的),还有3个抽象方法,分别是:getArea计算面积、getPer计算周长、showAll输出所有信息,还有一个求颜色的方法getColor。
3.2 设计 2个子类:
3.2.1 Rectangle表示矩形类,增加两个属性,Width表示长度、height表示宽度,重写getPer、getArea和showAll三个方法,另外又增加一个构造方法(一个是默认的、一个是为高度、宽度、颜色赋值的)。
3.2.2 Circle表示圆类,增加1个属性,radius表示半径,重写getPer、getArea和showAll三个方法,另外又增加两个构造方法(为半径、颜色赋值的)。
3.3 测试类中,在main方法中,声明创建每个子类的对象,并调用2个子类的showAll方法。

Shape 类代码:

public abstract class Shape {

     double area;
     double per;
     String color;



     public Shape(){

     }

     public Shape(String color){
         this.color = color;
     }

     public abstract double getArea();
     public abstract double getPer();
     public abstract void showAll();

     public String getColor(){
         return this.color;
     }


}

Rectangle 子类代码:

public class Rectangle extends Shape {

    int weidth;
    int height;

    public Rectangle() {

    }

    public Rectangle(int weidth,int height,String color){
        super(color);
        this.weidth = weidth;
        this.height = height;
    }


    public double getArea() {

        this.area = weidth * height; 
        return this.area;
    }

    public double getPer() {
        this.per = 2 * (weidth + height);
        return this.per;
    }

    public void showAll() {
        System.out.println("该矩形长为"+this.weidth+",宽为"+this.height+",周长为"+this.getPer()+",面积为"+this.getArea()+",颜色为"+this.getColor());

    }

}

Circle 子类代码:

public class Circle extends Shape {
    double radius;
    double pi = Math.PI;

    public Circle(){

    }
    public Circle(double radius,String color){
            super(color);
            this.radius = radius;
        }

    public double getArea() {
          double area =pi * radius *radius;
        return area;
    }

    public double getPer() {
        double per = 2 * pi * radius;
        return per;
    }

    public void showAll() {
        System.out.println("半径为"+this.radius+"的圆,周长为"+this.getPer()+",面积为"+this.getArea()+",颜色为"+this.getColor());

    }
}

测试类Test 代码:

public class Test {
    public static void main(String[] args) {
        Rectangle rect=new Rectangle(2,4,"red");
        rect.showAll();

        Circle cir=new Circle(2,"green");
        cir.showAll();
    }
}

执行结果:
在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值