Rechteck/Quadrat

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

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
 
K

KrebsBua123

Gast
Sorry, die if-Anweisung hab ich natürlich korrekt implementiert (ging aber wie bereits gesagt trotzdem nich )

if (isSquare)
{
System.out.println("Diese Figur ist sogar ein Quadrat.");
}
 

Marco13

Top Contributor
Die Aufgabenstellung klingt komisch ???:L Wenn man einen Konstruktor hat wie
public Rectangle(int xOffset, int x, int y)
dann werden da IMMER beide Ausdehnungen angegeben. Es geht gar nicht anders. Man könnte überlegen, einen speziellen Konstruktor für Quadrate zu erstellen
Code:
public Rectangle(int xOffset, int x)
{
    ... // Nur x angegeben, das ist also ein Quadrat...
}

Steht irgendwo explizit, dass man einen Konstruktor erstellen soll, der zusätztlich das "isSquare"-Flag hat?

aber irgendwie nimmt der das nicht richtig an, wenn ich das in den Konstruktor reinschreibe..

Genauer...?
 
K

KrebsBua123

Gast
Ja es ist auch noch angegeben, dass eine boolesche Variable benutzt werden soll, die anzeigt, ob das Rechteck insbesondere auch ein Quadrat ist.

Java:
	public Rectangle(int xOffset, int x, int y, boolean isSquare)
	{
		super(xOffset, "Quadrat");
		this.x = x;
		this.y = y;
		isSquare = (x == y);
		if (isSquare)
		{
			System.out.println("Das hier ist auch ein Quadrat.");
		}
	}

wenn ich den Konstruktor so verändere und die Main anpasse

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(4,5,5,true);
		
		System.out.println();
		rectangle1.printFigureInformation();
	}

}

dann läuft das Programm zwar, aber mein Text "Das hier ist auch ein Quadrat." wird nich ausgegeben :(
 

Marco13

Top Contributor
Code:
public class RectangleMain {

    public static void main (String [] args){

        Rectangle rectangle1 = new Rectangle(4,5,5,true);
    }

}


class Rectangle
{
    public Rectangle(int xOffset, int x, int y, boolean isSquare)
    {
        //super(xOffset, "Quadrat");
        //this.x = x;
        //this.y = y;
        isSquare = (x == y);
        if (isSquare)
        {
            System.out.println("Das hier ist auch ein Quadrat.");
        }
    }
}
Gibt den Text aus. Da stimmt irgendwas anderes nicht.
 
G

GrebsBua123

Gast
Jo danke, ich hab den Fehler entdeckt.....der Text wurde die ganze Zeit ausgegeben, allerdings nicht am Schluss, sondern am Anfang meiner Ausgabe :D

mfg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Rechteck/Quadrat getroffen? Java Basics - Anfänger-Themen 2
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
L Wie vergrößere ich ein Rechteck in alle Richtungen um eins und bekomme dessen Rand? Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
S Erste Schritte Ein Rechteck aus Sternchen mit Wiederholungsanweisung erstellen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
T Rechteck Programmieren Java Basics - Anfänger-Themen 4
F Klasse Rechteck definieren Java Basics - Anfänger-Themen 21
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
M Erste Schritte Gefülltes Rechteck programmieren Java Basics - Anfänger-Themen 1
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
S Ein Rechteck soll an einer Seite gespiegelt werden. Java Basics - Anfänger-Themen 5
G Methoden Nicht überlappte teile eines Rechteck's Java Basics - Anfänger-Themen 9
T Rechteck Koolision Java Basics - Anfänger-Themen 4
O Rechteck Java Basics - Anfänger-Themen 10
X Rechteck Java Basics - Anfänger-Themen 2
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
M Farbiges Rechteck zeichnen Java Basics - Anfänger-Themen 2
P Rechteck Zufallsverschiebung mit Abprallen Java Basics - Anfänger-Themen 12
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
J Rechteck Java Basics - Anfänger-Themen 8
G Rechteck zeichen Java Basics - Anfänger-Themen 4
B Rechteck aus Sternen Zeichnen Java Basics - Anfänger-Themen 8
J itext - Rechteck in PdfCell Java Basics - Anfänger-Themen 2
E klasse für ein Rechteck schreiben Java Basics - Anfänger-Themen 25
K Rechteck mit einem Loch in dem Mitte Java Basics - Anfänger-Themen 11
B Swing Rechteck zeichnen Java Basics - Anfänger-Themen 14
H Rechteck ziehen bei einer Application Java Basics - Anfänger-Themen 2
Dilandau rechteck des applet inhalts als gif-datei speichern? Java Basics - Anfänger-Themen 2
R mit MouseDragged Rechteck verschieben. Java Basics - Anfänger-Themen 2
G Linie innerhalb Rechteck Java Basics - Anfänger-Themen 2
G dicke linie zeichnen bzw schräges rechteck füllen Java Basics - Anfänger-Themen 2
W Problem mit einem Programm Rechteck Fläche, Umfang Java Basics - Anfänger-Themen 6
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
xXDasFischXx quadrat Java Basics - Anfänger-Themen 1
F Quadrat Mit Muster Java Basics - Anfänger-Themen 15
J Quadrat mit Diagonalen Java Basics - Anfänger-Themen 3
J Einfaches Quadrat auf der Console ausgeben lassen Java Basics - Anfänger-Themen 7
K Erste Schritte Nenner zum Quadrat Java Basics - Anfänger-Themen 10
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
C Input/Output Magisches Quadrat Rechts Formatieren Java Basics - Anfänger-Themen 4
S math Methoden in Java (quadrat) Java Basics - Anfänger-Themen 7
F Das magische Quadrat Java Basics - Anfänger-Themen 8
J Negatives Quadrat bei hohen Basen Java Basics - Anfänger-Themen 11
L Magisches Quadrat und Backtracking Java Basics - Anfänger-Themen 19
S Magisches Quadrat Java Basics - Anfänger-Themen 9
P Quadrat und Wurzel HILFE!!!!! Java Basics - Anfänger-Themen 13
T Quadrat mit Array?? Java Basics - Anfänger-Themen 9
G Quadrat in Java Java Basics - Anfänger-Themen 9
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
G Quadrat mit Diagonalen ausgeben Java Basics - Anfänger-Themen 4
K Farbenspiel : Quadrat verschwindet,wenn Fenster inaktiv ist Java Basics - Anfänger-Themen 13
E Magisches Quadrat - wie bring ich des fertig? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben