设计一个名为Triangle的类来扩展GeometricObject类。

  • Post author:
  • Post category:其他


设计一个名为Triangle的类来扩展GeometricObject类。该类包括:

  • 三个名为side1、side2和side3的double数据域表示这个三角形的三条边,他们的默认值是1.0.
  • 一个无参构造方法创建默认的三角形。
  • 一个能创建带指定side1,side2和side3的三角形构造方法。
  • 所有三个数据域的访问器方法。
  • 一个名为getArea()的方法返回这个三角形的面积。
  • 一个名为getPerimeter()的方法返回这个三角形的周长
  • 一个名为toString()的方法返回这个三角形的字符串描述。

画出Triangle类和GeometricObject类的UML图,并实现这些类。编写一个测试程序,体式用户输入三角形的三条边、颜色以及一个Boolean值表明该三角形是否填充。程序应该使用户输入创建一个具有这些边并设置color和filled属性的三角形。程序应该显示面积、边长、颜色以及表明是否填充的真或者假的值。

题目

Triangle类的UML图:
Triangle类

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 版权协议,转载请附上原文出处链接和本声明。