Ich habe 2 Klassen von Formen ist ein Rechteck und der zweite ist Kreis, beide erweitern "Form" -Klasse.Am effizientesten toString() verwenden JAVA
Ich sollte die relevanten Informationen aus jeder Klasse zum Beispiel x, y einen Punkt, der für alle Formen und die Farbe sowie relevant ist. Rechteck Klasse hat seine Breite und Höhe und Kreis hat einen Radius.
Ich versuche, toString-Methode in jeder Klasse zu verwenden, indem Sie überschreiben, super verwenden und weitere Informationen hinzufügen, aber eine Sache sieht seltsam aus. Soll ich für jede Methode ein neues String-Builder-Objekt erstellen? sieht ziemlich falsch aus, obwohl es funktioniert. Ich habe versucht, es online zu suchen, aber bisher ist es entweder dies oder mit einer Reihe von String. Fehle ich etwas?
hier ist das, was ich in Form Klasse tat
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();
}
Rechteck Klasse:
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();
}
Kreisklasse:
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();
}
ich sie aus dem Haupt mit Objektnamen aufrufen .toString();
Sorry, was mit falsch ist, was Sie tun? –
Verwenden Sie '@ Override'. Was genau ist falsch? – Li357
Das Erstellen eines neuen Objekts für jede Methode scheint falsch zu sein –