设计父类子类对圆和矩形的几何图形建模,JavaSE

一.介绍

Circle类继承了GeometricObject类所有可以访问的数据域和方法。除此之外,它还有一个新的数据域radius,以及与radius相关的get和set方法。它还包括getArea()、getPerimeter()和getDiameter()方法以返回圆的面积、周长和直径。
Rectangle类从GeometricObject类继承所有可访问的数据域和方法。此外,它还有width和height数据域,以及和它们相关的get和set方法。它还包括getArea()和getPerimeter()方法返回矩形的面积和周长。

二.代码

父类GeometricObject

package com.zhuo.base;

import java.util.Date;

public class GeometricObject {
    
    
    private String color = "while";
    private boolean filled;
    private java.util.Date datecreated;
    public GeometricObject() {
    
    
        datecreated = new java.util.Date();
    }
    public GeometricObject(String color, boolean filled) {
    
    
        datecreated = new java.util.Date();
        this.color = color;
        this.filled = filled;
    }

    public String getColor() {
    
    
        return color;
    }

    public void setColor(String color) {
    
    
        this.color = color;
    }

    public void setFilled(boolean filled) {
    
    
        this.filled = filled;
    }
    public boolean isfilled() {
    
    
        return filled;
    }

    public Date getDatecreated() {
    
    
        return datecreated;
    }

    @Override
    public String toString() {
    
    
        return "created on " + datecreated + "\ncolor: " + color + " and filled " + filled;
    }
}

子类Circle

package com.zhuo.base;

public class Circle extends GeometricObject{
    
    
    private int radius;
    public Circle() {
    
    

    }
    public Circle(int radius) {
    
    
        this.radius = radius;
    }
    public Circle(int radius, String color, boolean filled) {
    
    
        this.radius = radius;
        setColor(color);
        setFilled(filled);
    }

    public int getRadius() {
    
    
        return radius;
    }

    public void setRadius(int radius) {
    
    
        this.radius = radius;
    }
    public double getArea() {
    
    
        return radius * radius * Math.PI;
    }
    public double getDiameter() {
    
    
        return 2 * radius;
    }
    public double getPerimeter() {
    
    
        return 2 * radius * Math.PI;
    }
    public void printCircle() {
    
    
        System.out.println("The circle is created " + getDatecreated() + " and the radius is " + radius);
    }
}

子类Rectangle

package com.zhuo.base;

public class Rectangle extends GeometricObject {
    
    
    private int widht;
    private int height;
    public Rectangle() {
    
    

    }
    public Rectangle(int widht, int height) {
    
    
        this.widht = widht;
        this.height = height;
    }
    public Rectangle(int widht, int height, String color, Boolean filled) {
    
    
        this.widht = widht;
        this.height = height;
        setColor(color);
        setFilled(filled);
    }

    public int getWidht() {
    
    
        return widht;
    }

    public void setWidht(int widht) {
    
    
        this.widht = widht;
    }

    public int getHeight() {
    
    
        return height;
    }

    public void setHeight(int height) {
    
    
        this.height = height;
    }
    public double getArea() {
    
    
        return  widht * height;
    }
    public double getPerimeter() {
    
    
        return 2 * (widht + height);
    }
}

测试类TestCircleRectangle

package com.zhuo.base;

public class TestCircleGeometric {
    
    
    public static void main(String[] args) {
    
    
        Circle circle = new Circle(1);
        System.out.println("A circle " + circle.toString());
        System.out.println("The color is " + circle.getColor());
        System.out.println("The radius is " + circle.getRadius());
        System.out.println("The area is " + circle.getArea());
        System.out.println("The perimeter is " + circle.getPerimeter());
        Rectangle rectangle = new Rectangle(2, 4);
        System.out.println("B rectangle " +rectangle.toString());
        System.out.println("The color is " + rectangle.getColor());
        System.out.println("The area is " + rectangle.getArea());
        System.out.println("The perimeteris " + rectangle.getPerimeter() );
    }
}

三.运行结果

A circle created on Thu Feb 11 22:12:27 CST 2021
color: while and filled false
The color is while
The radius is 1
The area is 3.141592653589793
The perimeter is 6.283185307179586
B rectangle created on Thu Feb 11 22:12:27 CST 2021
color: while and filled false
The color is while
The area is 8.0
The perimeteris 12.0

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/weixin_42768634/article/details/113792198