用java语言设计一个名为Trangle的类来扩展GeometricObject类,该类包括:
要求:
- 三个名为side1,side2,side3的double私有数据域表示三角形的三条边,它们默认值为1.0。
- 一个无参数的构造方法。
- 一个能创建带指定参数参数s1,s2,s3的构造方法。
- 一个名为getArea()返回三角形的面积。
- 一个名为getPerimeter()的方法返回三角形的周长。
- 一个名为toString()的方法返回三角形的字符串描述
编写一个测试程序,提示用户输入三角形的三条边,颜色以及一个Boolean值表明三角形是否填充。程序应该使用输入创建一个具有这些边并设置color和filled属性的三角形,程序应该显示面积,边长,颜色以及是否填充的真或者假的值。
运行效果
代码
GeometricObject:https://blog.csdn.net/u014757261/article/details/25426395
import java.util.Date;
import java.util.Scanner;
abstract class GeometricObject {
private String color = "white";
private boolean filled;
Date dateCreated;
protected GeometricObject() {
dateCreated = new Date();
}
protected GeometricObject(String color, boolean filled) {
this.color = color;
this.filled = filled;
Date dateCreated = new Date();
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public Date getDateCreated() {
return dateCreated;
}
public String toString() {
return "Created on " + dateCreated + "\ncolor " + color +
" and filled" + filled;
}
public abstract double getArea();
public abstract double getPerimeter();
}
public class Triangle extends GeometricObject{
private double side1=1.0,side2=1.0,side3=1.0;
public Triangle(){}
public Triangle(double...side){
side1=side[0];
side2=side[1];
side3=side[2];
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
@Override
public double getArea() {
double s=(side1+side2+side3)/2;
return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
}
@Override
public double getPerimeter() {
return side1+side2+side3;
}
@Override
public String toString() {
return "Triangle:side1 = "+side1+" side2 = "+side2+" side3 ="+side3;
}
public static void main(String[] args){
System.out.print("请输入三角形的三条边:");
Scanner input=new Scanner(System.in);
Triangle my=new Triangle(input.nextDouble(),input.nextDouble(),input.nextDouble());
System.out.print("请输入三角形的颜色:");
my.setColor(input.next());
System.out.print("请输入三角形的是否填充:");
my.setFilled(input.nextBoolean());
System.out.printf("三角形属性如下:\n面积:%.2f\n边长:%s\n颜色:%s\n是否填充:%s",my.getArea(),my.toString(),my.getColor(),my.isFilled());
}
}