设计一个名为Triangle的类来扩展GeometricObject类。该类包括:
- 三个名为side1、side2和side3的double数据域表示这个三角形的三条边,他们的默认值是1.0.
- 一个无参构造方法创建默认的三角形。
- 一个能创建带指定side1,side2和side3的三角形构造方法。
- 所有三个数据域的访问器方法。
- 一个名为getArea()的方法返回这个三角形的面积。
- 一个名为getPerimeter()的方法返回这个三角形的周长
- 一个名为toString()的方法返回这个三角形的字符串描述。
画出Triangle类和GeometricObject类的UML图,并实现这些类。编写一个测试程序,体式用户输入三角形的三条边、颜色以及一个Boolean值表明该三角形是否填充。程序应该使用户输入创建一个具有这些边并设置color和filled属性的三角形。程序应该显示面积、边长、颜色以及表明是否填充的真或者假的值。
Triangle类的UML图:
GeometricObject类的UML图:
测试程序代码:
package abc;
import java.util.Scanner;
//Triangle类
public class Triangle extends GeometricObject{
private double side1;
private double side2;
private double side3;
public Triangle(){
this.side1=1;
this.side2=1;
this.side3=1;
}
public Triangle(double newSide1,double newSide2,double newSide3) {
this.side1=newSide1;
this.side2=newSide2;
this.side3=newSide3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public double getArea() {
double P=(this.side1+this.side2+this.side3)/2;
double S=Math.sqrt(P*(P-this.side1)*(P-this.side2)*(P-this.side3));
return S;
}
public double getPerimeter() {
return this.side1+this.side2+this.side3;
}
public String toString() {
return "Triangle:side1 = "+this.side1+" side2 = "+this.side2+" side3 = "+this.side3;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
double side1,side2,side3;
String color;
boolean filled;
Scanner input = new Scanner(System.in);
System.out.println("请输入三角形的三条边:");
side1=input.nextDouble();
side2=input.nextDouble();
side3=input.nextDouble();
System.out.println("请输入三角形的颜色:");
color=input.next();
System.out.println("请输入一个bool值表面该三角形是否填充:");
filled=input.hasNext();
Triangle a = new Triangle(side1,side2,side3);
a.setColor(color);
a.setFilled(filled);
System.out.println("面积为:"+a.getArea()+"边长为:"+a.getPerimeter()+"颜色为:"+a.getColor()+"是否填充:"+a.isFilled());
}
}
package abc;
//GeometricObject类
public class GeometricObject {
private String color="white";
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 boolean isFilled(){
return filled;
}
public void setFilled(boolean filled){
this.filled=filled;
}
public java.util.Date getDateCreated(){
return dateCreated;
}
public String toString(){
return "created on"+dateCreated+"\ncolor:"+color+"and filled:"+filled;
}
}
测试程序结果:
版权声明:本文为qq_21274765原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。