我有兩類形狀,一個是矩形,另一個是圓形,都擴展了「形狀」類。使用toString()的最有效方法JAVA
我應該打印來自每個類的相關信息,例如x,y代表與所有形狀和顏色相關的點。 矩形類有其寬度和高度,圓有半徑。
我想通過重寫,使用超級和添加更多的信息,但有一件事看起來很奇怪,在每個類中使用toString方法。我應該爲每個方法創建一個新的字符串生成器對象嗎?即使它有效,看起來也不太合適。嘗試在網上查找它,但到目前爲止它或者使用一串字符串。我錯過了什麼嗎?
這裏是我在形狀階級都:
public String toString() {
StringBuilder shapeBuilder = new StringBuilder();
System.out.println(shapeBuilder.append("The x axis is: ").append(x).append(" and the y axis is: ").append(y).append(" The color of ")
.append(this.getClass().getSimpleName()).append(" is ").append(color));
return shapeBuilder.toString();
}
矩形類:
public String toString() {
super.toString();
StringBuilder rectangleBuilder = new StringBuilder();
System.out.println(rectangleBuilder.append("The height of the rectangle is: ").append(height)
.append(" And the width is: ").append(width));
return rectangleBuilder.toString();
}
圈類:
public String toString() {
super.toString();
StringBuilder circleBuilder = new StringBuilder();
System.out.println(circleBuilder.append("the radius of the circle is: ").append(getRadius()));
return circleBuilder.toString();
}
我是從主要使用對象名稱美其名曰的ToString();
對不起,什麼是錯的,你在做什麼? –
確保使用'@ Override'。究竟是什麼錯誤? – Li357
爲每種方法創建一個新的對象似乎是錯誤的 –