gpt4 book ai didi

java - (Triangle 类)设计一个名为 Triangle 的类,它扩展了 GeometricObject

转载 作者:行者123 更新时间:2023-12-01 13:55:56 27 4
gpt4 key购买 nike

该类包含:

  • 三个 double 数据字段,分别命名为 side1side2side3,具有默认值1.0 表示三角形的三边

  • 无参数构造函数,用于创建具有指定 side1side2side3 的三角形。

  • 所有三个数据字段的访问器方法。

  • 名为 getArea() 的方法,返回此三角形的面积。

  • 名为 getPerimeter() 的方法,返回该三角形的周长。

*名为 toString() 的方法,返回三角形的字符串描述。

有关计算三角形面积的公式,请参阅ProgrammingExercise 2.15(《Java 编程简介第 9 版》中)toString()方法的实现如下:

return "三角形: side1 = "+ side1 + "side2 = "+ side2 + "side3 "+ side3;

绘制类TriangleGeometricObject的UML图并实现这些类。编写一个测试程序,提示用户输入三角形的三条边、颜色和 boolean 值以指示三角形是否被填充。程序应创建一个具有这些边的三角形对象,并使用输入设置颜色填充属性。程序应显示面积、周长、颜色以及真或假以指示是否被填充。

<小时/>

练习中我遇到问题的部分是测试程序。

如果您能指导我如何根据输入制作三角形来帮助我,我将非常感激。

我现在的代码是这样的:

几何对象

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?);

}
}

最佳答案

您需要像这样创建一个新的Triangle对象,以便您有一个引用

Trangle triangle = new Triangle(side1, side2, side3);

// ^^^^^^ This is the most important thing you're missing. You need a reference
// point for your object. That's the only way you can access it's
// properties.

您还需要设置其filledcolor属性

triangle.setFilled(filled);
triangle.setColor(color);

然后,您可以像这样调用它的方法:

System.out.println("The Triangle Sides are \n side 1: " 
+ triangle.getSide1() + "\n Side 2: " + triangle.getSide2()
+ "\n Side 3: " + triangle.getSide3());

System.out.println("The Triangle's Area is " + triangle.getArea());

System.out.println("The Triangle's Perimeter is " + triangle.getPerimeter();

System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());

您可以访问GeometricObjectisFilled()setFilled()getColor() code> 和 setColor() 因为 Triangle 是一个 GeometricObject(extends),所以它继承了它的所有方法。

顺便说一句,这不是计算三角形面积的方法:

public double getArea() {
return (side1 + side2 + side3) / 2; // This is so wrong
}

看看这个 link正确的公式

编辑:代码存在另一个问题

public double setSide1() {
return side1;
}

public double setSide2() {
return side2;
}

public double setSide3() {
return side3;
}

/**** Should Be ******/

public double getSide1() {
return side1;
}

public double getSide2() {
return side2;
}

public double getSide3() {
return side3;
}

编辑:三角形公式

public double getArea() {
int p = getPerimeter() / 2
return Math.sqrt(p * ((p - side1) * (p - side2) * (p - side3));
}

关于java - (Triangle 类)设计一个名为 Triangle 的类,它扩展了 GeometricObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com