【发布时间】:2013-11-06 15:16:25
【问题描述】:
该类包含:
三个 double 数据字段分别命名为 side1、side2 和 side3,具有默认值 1.0 表示三角形的三个边
-
一个无参数构造函数,用于创建具有指定 side1、side2 和 side3 的三角形。
所有三个数据字段的访问器方法。
一个名为 getArea() 的方法,它返回这个三角形的面积。
名为 getPerimeter() 的方法返回此三角形的周长。
*一个名为 toString() 的方法,它返回三角形的字符串描述。
关于计算三角形面积的公式,请参见 ProgrammingExercise 2.15(在 An Introduction to java Programming 9th edition 中) toString() 方法实现如下:
返回"三角形:side1 = " + side1 + " side2 = " + side2 + " side3 " + side3;
为 Triangle 和 GeometricObject 类绘制 UML 图并实现这些类。编写一个测试程序,提示用户输入三角形的三个边、一种颜色和一个布尔值,以指示三角形是否被填充。程序应该创建一个具有这些边的 triangle 对象,并使用输入设置 color 和 filled 属性。程序应显示面积、周长、颜色和真假以指示是否填充。
我遇到问题的部分是测试程序。
如果你能帮助我,指点我如何从输入中制作三角形,我将不胜感激。
我现在的代码是这样的:
几何对象
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 + "\n color: " + color + " and filled ";
}
}
三角计划
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 double setSide1() {
return side1;
}
public double setSide2() {
return side2;
}
public double setSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side2;
}
public double getArea() {
return (side1 + side2 + side3) / 2;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
}
测试程序。
import java.util.Scanner;
public class TestTriangle {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
new Triangle(side1, side2, side3);
//How do i get the information into theTriangle?
System.out.println("The Triangle Sides are \n side 1: " + side1 + "\n Side 2: " + side2 + "\n Side 3: " + side3);
System.out.println("The Triangle's Area is " + (side1 + side2 + side3) / 2);
System.out.println("The Triangle's Perimeter is "
+ (side1 + side2 + side3));
System.out.println("The Triangle's Color is " + //what goes here?);
System.out.println("Is the Triangle filled? " + //what goes here?);
}
}
【问题讨论】:
-
new Triangle(side1, side2, side3)? -
好的,非常感谢您的快速回复。我添加了你建议的代码,现在我离我的目标更近了!
标签: java inheritance