Konnte keine relevante Erklärung online finden Ich habe Hausaufgaben zu tun, ich sollte eine Klasse namens Shapes und 2 weitere Klassen eine für Rechteck und die zweite ist für einen Kreis. Ich wollte wissen, was der beste Weg ist, Konstruktoren, Datenelemente und Methoden anzuordnen, weil zum Beispiel für ein Rechteck ich Höhe und Breite haben sollte und der Kreis einen Radius hat.Die effizienteste Art der Verwendung von Konstruktoren, Methoden, Datenelementen in anderen Klassen JAVA
public class Shapes {
//Should I use only common Data members, constructors and functions in the base class?
private int x;
private int y;
private int width;
private int height;
private String color;
private double radius;
auch wie erstelle ich die relevanten Konstruktoren mit super()? Ich glaube, ich habe alles vermischt:
//Constructors:
public Shapes() {
}
//Common constructor
public Shapes(int x, int y, String color) {
setX(x);
setY(y);
setColor(color);
}
//Circle constructor:
public Shapes(int x, int y, String color, double radius) {
this(x, y, color);
setRadius(radius);
}
//Rectangle constructor:
public Shapes(int x, int y, int width, int height, String color) {
this(x, y, color);
setWidth(width);
setHeight(height);
}
im Rechteck-Klasse sieht es wie folgt aus:
public Rectangle() {
super();
}
public Rectangle(int x, int y, int width, int height, String color) {
super(x, y, width, height, color);
}
und in der Kreisklasse Ich habe es wie folgt aus:
public Circle() {
super();
}
public Circle(int x, int y, String color, double radius) {
super(x, y, color, radius);
}
Ich brauche eine Druckmethode, um alle Informationen aus jeder Klasse, die für die Klasse relevant ist, zu drucken. Gibt es eine Möglichkeit, diese Druckmethode in der Basisklasse (Shapes) zu verwenden, um mehrere Druckmethoden zu vermeiden?
Es gibt verschiedene Parameter, die angezeigt werden sollen, aber es wurde uns gesagt, die Multiplikation des Codes zu vermeiden.
Sie müssen nicht alles in "Shapes". Die Form-spezifischen Dinge sollten in ihren jeweiligen Klassen sein, d. H. "Radius" sollte in "Kreis" existieren, nicht in "Formen" oder "Rechteck". Ihr Konstruktor/Super Verwirrung ist das Ergebnis von Ihnen Missverständnis, wie Superklassen und Unterklassen zu bauen. – Kayaman
'Shape' sollte eine abstrakte Klasse sein, die nur' x', 'y' und' color' handhabt. Die konkreten Klassen können "Breite", "Höhe" und "Radius" in den Klassen haben, zu denen sie gehören. – 4castle