我对Triangle类有两个问题。当我测试程序时,我能够显示所有的结果,但我仍然可以获得颜色和填充true/false。我将输出放在末尾,这样您就可以看到发生了什么。
我试着解决这个问题,添加了即时变量b o lean填充;然后在构造函数中尝试添加边、字符串颜色和b o lean填充,然后尝试在主系统中添加print ln (三角形get find ()),但我仍然无法找到答案。我也尝试了重写get Color和Get find,但我仍然可以找到正确的解决方案。
编写一个测试程序,创建一个三角形对象,并显示(1)面积,(2)周长,(3)颜色和(5)是否填充。
// Coding:
public class Exercise11_01 {
public static void main(String[] args) {
Triangle triangle = new Triangle(1, 1.5, 1);
triangle.setColor("yellow"); // No display in the output
triangle.setFilled(true); // No Display in the output
System.out.println(triangle);
System.out.println("The area is " + triangle.getArea());
System.out.println("The perimeter is " + triangle.getPerimeter());
System.out.println(triangle);
}
}
// superclass: GeometricObject
package geometricobject;
import java.util.Date;
public class GeometricObject {
String color = "white";
boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
public GeometricObject(){
dateCreated = new java.util.Date();
}
/** Construct a geometric object with the specific color and filled value */
public GeometricObject(String color, boolean filled){
dateCreated= new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor(){
return color;
}
/** Set a new color */
public void setColor(String color){
this.color = color;
}
/** Return filled. Since filled is boolean
its getter method is named isFilled */
public boolean isFilled(){
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled){
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated(){
return dateCreated;
}
/** Return a string representation of this object */
public String toString(){
return "created on " + dateCreated + "\ncolor: " + color + " and filled: " + filled;
}
}
//subclass-extends: Triangle
package geometricobject;
/**
*
* @author
*/
public class Triangle extends GeometricObject {
// Instant Variables
private double side1;
private double side2;
private double side3;
//boolean filled;
public Triangle() {
//super();
this.side1 = 1.0;
this.side2 = 1.0;
this.side3 = 1.0;
}
public Triangle(double side1, double side2, double side3) { // , String color, boolean filled)
//super(color, filled);
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
setColor(color);
setFilled(filled);
}
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;
}
public double getArea(){
double s = (side1 + side2 + side3) / 2.0;
return Math.pow(s * (s - side1) * (s - side2) * (s - side3), 0.5);
}
public double getPerimeter(){
return side1 + side2 + side3;
}
@Override
public String toString(){
return "\nTriangle: side1 = " + side1 + " , side2 = " + side2 +
" , side3 = " + side3;
}
}//我的输出:三角形: side1 = 1.0,side2 = 1.5,side3 = 1.0面积为0.49607837082461076周长为3.5
三角形: side1 = 1.0,side2 = 1.5,side3 = 1.0构建成功(总时间:0秒)
发布于 2021-02-21 14:07:04
根据我的评论,您可以使用从GeometricObject类继承的任何方法。要获得填充和颜色,您可以简单地使用:
System.out.println("The triangle is filled: " + triangle.isFilled());
System.out.println("The color is " + triangle.getColor());如下所示:
Triangle triangle = new Triangle(1, 1.5, 1);
triangle.setColor("yellow");
triangle.setFilled(true);
System.out.println(triangle);
System.out.println("The area is " + triangle.getArea());
System.out.println("The perimeter is " + triangle.getPerimeter());
System.out.println("The triangle is filled: " + triangle.isFilled());
System.out.println("The color is " + triangle.getColor());输出显示了有关填充和颜色的额外信息:
Triangle: side1 = 1.0 , side2 = 1.5 , side3 = 1.0
The area is 0.49607837082461076
The perimeter is 3.5
The triangle is filled: true
The color is yellow发布于 2021-02-22 02:28:22
在我的三角形程序中解决问题。在我的源包中,我有几个与GeometricObject相关的程序和几个测试程序,当我试图运行它时,它们会禁用一些三角形程序的功能。在我清理/删除这些测试程序后,再次运行您的答案。这个程序显示了我需要的所有信息。我刚刚了解到,我需要创建一个新的源包,以避免错误,这些错误会花费我大量的时间来找出问题。下面的三角形程序有其他额外的实现,并删除了一些在这种情况下不必要的方法。
package geometricobject;
import java.util.Date;
public class GeometricObject {
String color = "white";
boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
public GeometricObject(){
dateCreated = new java.util.Date();
}
/** Construct a geometric object with the specific color and filled value */
public GeometricObject(String color, boolean filled){
dateCreated= new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor(){
return color;
}
/** Set a new color */
public void setColor(String color){
this.color = color;
}
/** Return filled. Since filled is boolean
its getter method is named isFilled */
public boolean isFilled(){
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled){
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated(){
return dateCreated;
}
/** Return a string representation of this object */
public String toString(){
return "created on " + dateCreated + "\ncolor: " + color + " and filled: " +
filled;
}
}
package geometricobject;
// Create a Triangle class.
public class Triangle extends GeometricObject {
// Instant Variables
// data fields: Three double sides 1, 2, and 3.
private double side1;
private double side2;
private double side3;
// Construct a default Triangle object - No arg.
public Triangle() {
this.side1 = 1.0;
this.side2 = 1.0;
this.side3 = 1.0;
}
// Construct a Triangle Object with the specified side1, side2, and side3.
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
setColor(color);
setFilled(filled);
}
// Define Accessors
// Return side1
public double getSide1() {
return side1;
}
// Return side2
public double getSide2() {
return side2;
}
// Return side3
public double getSide3() {
return side3;
}
// Calculate the triangle's area.
// Return area.
public double getArea(){
double s = (side1 + side2 + side3) / 2.0;
return Math.pow(s * (s - side1) * (s - side2) * (s - side3), 0.5);
}
// Return the Triangle's perimeter.
public double getPerimeter(){
return side1 + side2 + side3;
}
// Return the string (toString Method) representing the triangle's sides.
@Override
public String toString(){
return "\nTriangle: side1 = " + side1 + " , side2 = " + side2 +
" , side3 = " + side3;
}
}
package geometricobject;
public class Exercise11_01 {
public static void main(String[] args) {
Triangle triangle = new Triangle(1, 1.5, 1);
triangle.setColor("yellow");
triangle.setFilled(true);
System.out.println(triangle);
System.out.println("The area is " + triangle.getArea());
System.out.println("The perimeter is " + triangle.getPerimeter());
System.out.println("The triangle is filled: " + triangle.isFilled());
System.out.println("The color is " + triangle.getColor());
}
}输出:
Triangle: side1 = 1.0 , side2 = 1.5 , side3 = 1.0
The area is 0.49607837082461076
The perimeter is 3.5
The triangle is filled: true
The color is yellow
BUILD SUCCESSFUL (total time: 0 seconds)https://stackoverflow.com/questions/66298962
复制相似问题