一.介绍
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