K
KrebsBua123
Gast
Moin Leute, ich hätte mal eine Frage, und zwar komme ich bei folgender Aufgabenstellung nicht weiter:
"Definieren Sie geeignete Konstruktoren. Wenn für ein Rechteck (rectangle) die Ausdehnung nur für eine der beiden Richtungen angegeben wird, soll ein entsprechendes Quadrat erstellt werden."
Also hier erstmal meine Klassen (Thema Vererbung):
Abstrakte Klasse
Klasse für Kreis:
Main-Klasse zum Ausführen
und hier meine RECHTECK-Klasse, um die es mir geht:
Mein erster Gedanke war eine If-Anweisungen in den Konstruktor zu implementieren...
isSquare = ( x == y);
if (isSquare)
System.out.println("Diese Figur ist sogar ein Quadrat.");
aber irgendwie nimmt der das nicht richtig an, wenn ich das in den Konstruktor reinschreibe..
Dankbar für jede Antwort, die mir weiterhilft ! mfg
"Definieren Sie geeignete Konstruktoren. Wenn für ein Rechteck (rectangle) die Ausdehnung nur für eine der beiden Richtungen angegeben wird, soll ein entsprechendes Quadrat erstellt werden."
Also hier erstmal meine Klassen (Thema Vererbung):
Abstrakte Klasse
Java:
public abstract class GeometricFigure {
public int xOffset;
public String infoText;
public GeometricFigure(int xOffset, String infoText)
{
this.xOffset = xOffset;
this.infoText = infoText;
}
public abstract double berechneFläche();
public abstract double berechneUmfang();
public void printFigureInformation()
{
System.out.println("Die nächste Figur ist ein " + infoText);
System.out.println("-------------------------------------------------------");
System.out.println("Fläche: " + berechneFläche());
System.out.println("Umfang: " + berechneUmfang());
System.out.println();
}
public void setxOffset (int xOffset)
{
this.xOffset = xOffset;
}
public int getxOffset ()
{
return xOffset;
}
public void setinfoText(String infoText)
{
this.infoText = infoText;
}
public String getinfoText()
{
return infoText;
}
}
Klasse für Kreis:
Java:
public class Circle extends GeometricFigure {
private int radius;
public Circle(int xOffset, int radius)
{
super(xOffset,"Kreis");
this.radius = radius;
}
public double berechneUmfang()
{
return 2 * Math.PI * radius;
}
public double berechneFläche()
{
return Math.PI * radius * radius;
}
public void printFigureInformation()
{
super.printFigureInformation();
System.out.println("Der Mittelpunkt des Kreises liegt " + xOffset + " Längeneinheiten");
System.out.println("vom linken Rand entfernt");
}
public int getRadius()
{
return radius;
}
public void setRadius (int radius)
{
this.radius = radius;
}
}
Main-Klasse zum Ausführen
Java:
public class Main {
public static void main (String [] args){
Circle circle1 = new Circle(6,2);
Circle circle2 = new Circle(4,4);
circle1.printFigureInformation();
System.out.println();
circle2.printFigureInformation();
Rectangle rectangle1 = new Rectangle(3,4,5);
System.out.println();
rectangle1.printFigureInformation();
}
}
und hier meine RECHTECK-Klasse, um die es mir geht:
Java:
public class Rectangle extends GeometricFigure {
private int x,y;
private boolean isSquare;
public Rectangle(int xOffset, int x, int y)
{
super(xOffset,"Rechteck");
this.x = x;
this.y = y;
}
public Rectangle(int xOffset, int x, int y, boolean isSquare)
{
super(xOffset, "Quadrat");
this.x = x;
this.y = y;
}
public double berechneUmfang()
{
return 2 * (x+y);
}
public double berechneFläche()
{
return x * y;
}
public void printFigureInformation()
{
super.printFigureInformation();
}
public int getX()
{
return x;
}
public void setX (int x)
{
this.x = x;
}
public int getY()
{
return y;
}
public void setY(int y)
{
this.y = y;
}
public boolean getIsSquare()
{
return isSquare;
}
public void setIsSquare (boolean isSquare)
{
this.isSquare = isSquare;
}
}
Mein erster Gedanke war eine If-Anweisungen in den Konstruktor zu implementieren...
isSquare = ( x == y);
if (isSquare)
System.out.println("Diese Figur ist sogar ein Quadrat.");
aber irgendwie nimmt der das nicht richtig an, wenn ich das in den Konstruktor reinschreibe..
Dankbar für jede Antwort, die mir weiterhilft ! mfg