Java作业(Triangle类)设计一个名为Triangle的类来继承GeometricObject类。

Java作业,编程练习题,继承与多态

该类包括:

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

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

代码:

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;
	}
}

Triangle类:

public class Triangle extends GeometricObject {
	private double side1 = 1.0;
	private double side2 = 1.0;
	private double side3 = 1.0;
	
	public Triangle() {
	}
	public Triangle(double side1, double side2, double side3) {
		this.side1 = side1;
		this.side2 = side2;
		this.side3 = side3;
	}
	public Triangle(double side1, double side2, double side3, String color, boolean filled) {
		this.side1 = side1;
		this.side2 = side2;
		this.side3 = side3;
		setColor(color);
		setFilled(filled);
	}
	public double getArea() {
		double s = (side1 + side2 + side3)/2;
		return Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
	}
	public double getPerimeter() {
		return side1+side2+side3;
	}
	public String toString() {
		return "Triangle: side1= " + side1 + " side2 = " + side2 + " side3 = " + side3;
	}
}

测试程序:
import java.util.Scanner;

public class HomeWork1{
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("please input three side && color && judgment value: ");
		double side1 = input.nextDouble();
		double side2 = input.nextDouble();
		double side3 = input.nextDouble();
		String color = new String();
		color = input.next();
		boolean filled = input.hasNext();
		Triangle T1 = new Triangle(side1, side2, side3, color, filled);
		System.out.println("此三角形的面积为:" + T1.getArea());
		System.out.println("此三角形的周长为:" + T1.getPerimeter());
		System.out.println("此三角形的颜色为:" + T1.getColor());
		System.out.println("此三角形是否填充?" + T1.isFilled());
		input.close();
	}
}

在这里搞UML图可能人会没

在这里插入图片描述
运行结果:
在这里插入图片描述

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是GeometricObject及其子Triangle和Circle的Java代码实现: ```java import java.util.Date; public abstract class GeometricObject { private String color; private boolean filled; private Date dateCreated; public GeometricObject() { this.color = "white"; this.filled = false; this.dateCreated = new Date(); } public GeometricObject(String color, boolean filled) { this.color = color; this.filled = filled; this.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 abstract double getArea(); public abstract double getPerimeter(); } public class Triangle extends GeometricObject { private double side1; private double side2; private double side3; public Triangle() { super(); this.side1 = 1.0; this.side2 = 1.0; this.side3 = 1.0; } public Triangle(double side1, double side2, double side3) { super(); this.side1 = side1; this.side2 = side2; this.side3 = side3; } public double getSide1() { return side1; } public void setSide1(double side1) { this.side1 = side1; } public double getSide2() { return side2; } public void setSide2(double side2) { this.side2 = side2; } public double getSide3() { return side3; } public void setSide3(double side3) { this.side3 = side3; } @Override public double getArea() { double p = (side1 + side2 + side3) / 2.0; return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3)); } @Override public double getPerimeter() { return side1 + side2 + side3; } } public class Circle extends GeometricObject { private double radius; public Circle() { super(); this.radius = 1.0; } public Circle(double radius) { super(); this.radius = radius; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } @Override public double getPerimeter() { return 2.0 * Math.PI * radius; } } ``` GeometricObject具有颜色、是否填充和创建日期等属性,并且定义了抽象方法getArea和getPerimeter计算面积和周长。Triangle和Circle都继承GeometricObject,并实现了抽象方法getArea和getPerimeter。Triangle还具有三边长的属性,而Circle具有半径的属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值