描述
【描述】
几何对象有许多共同的属性和行为。它们可以是用某种颜色画出来的、填充的或者不填充的。可以定义一个GeometricObject类,用来建模所有的几何对象。Circle类、Rectangle类、Triangle类等都是GeometricObject类的子类。Circle类、Rectangle类、Triangle类分别包含计算圆、矩形和三角形的面积和周长的getArea和getPerimeter方法。因为可以计算所有几何对象的面积和周长,最好在GeometricObject类中定义getArea和getPerimeter方法,但是这些方法在GeometricObject类中的实现取决于几何对象的具体类型,这样的方法是抽象方法。GeometricObject类包含getArea和getPerimeter抽象方法,就成为抽象类。
GeometricObject类包括:
String类型的私有数据域color,用于保存几何对象的颜色,默认值为white。
boolean类型的私有数据域filled,用于表明几何对象是否填充颜色,默认值为false。
有参构造方法,将颜色、是否填充颜色设置为给定的参数。
访问器方法getColor、isFilled,分别用于访问颜色、是否填充颜色。
更改器方法setColor、setFilled,分别用于更改颜色、是否填充颜色。
重写成员方法toString,返回几何对象的字符串描述。
抽象方法getArea,返回几何对象的面积。
抽象方法getPerimeter,返回几何对象的周长
定义一个名为Circle的类来扩展GeometricObject类。该类包括:
名为radius的double类型私有数据域,表示圆的半径,默认值为1.0。
无参构造方法,将圆的半径设置为默认值
有参构造方法,将圆的半径设置为给定的参数。
实现抽象方法getArea,返回圆的面积。
实现抽象方法getPerimeter,返回圆的周长。
重写toString方法,返回圆的字符串描述。
定义一个名为Triangle的类来扩展GeometricObject类。该类包括:
三个名为side1、side2、side3的double类型私有数据域,表示三角形的三条边,它们的默认值均为1.0。
无参构造方法,将三角形三条边设置为默认值
有参构造方法,将三角形三条边设置为给定的参数。
实现抽象方法getArea,返回三角形的面积。
实现抽象方法getPerimeter,返回三角形的周长。
重写toString方法,返回三角形的字符串描述。
GeometricObject类的定义应该这样开始:
abstract class GeometricObject {
也就是说,GeometricObject类的class前面不要有public。
Circle类的定义应该这样开始:
class Circle extends GeometricObject {
也就是说,Circle类的class前面不要有public。
Triangle类的定义应该这样开始:
class Triangle extends GeometricObject {
也就是说,Triangle类的class前面不要有public。
【输入】
第一行,输入圆的半径、颜色以及一个Boolean值表明该圆是否填充。
第二行,输入三角形的三条边、颜色以及一个Boolean值表明该三角形是否填充。
【输出】
圆的半径、、颜色、表明是否填充的真或假的值,以及面积、周长(保留两位小数)。
三角形的三条边、颜色、表明是否填充的真或假的值,以及面积、周长(保留两位小数)。
【输入示例】
5.5 green true
3 4 5 red false
【输出示例】
Circle:
radius = 5.5
Color: green and filled: true
The area is 95.03
The perimeter is 34.56
Triangle:
side1 = 3.0 side2 = 4.0 side3 = 5.0
Color: red and filled: false
The area is 6.00
The perimeter is 12.00
import java.util.Scanner;
abstract class GeometricObject {
private String col="white";
private boolean fil=false;
private double s;
private double c;
public GeometricObject(String col, boolean fil) {
this.col = col;
this.fil = fil;
}
public String getCol() {
return col;
}
public void setCol(String col) {