insXicht
Lt. Commander
- Registriert
- Mai 2011
- Beiträge
- 1.095
Hallo cb-Community
Ich habe folgende Aufgabe zu lösen:
Ich habe die Aufgabe nicht 1:1 umgesetzt und beispielsweise die Farben nicht als String angegeben sondern als RGB-Werte, da dass meiner Meinung nach mehr Sinn macht.
Allerdings scheine ich noch irgendwas ziemlich falsch zu machen.
Mein Quellcode sieht bisher folgendermaßen aus:
Ich erwarte keine fertige Lösung, ich hoffe einfach nur auf etwas Hilfe damit ich weiterkomme.
Danke im Vorraus.
lg insXicht
Ich habe folgende Aufgabe zu lösen:
Erstellen Sie eine Klasse Quadrat im Paket geo des Projektes ErsteSchritte. Jedes
Quadrat hat eine X/Y-Startkoordinate, eine Seitenlänge in cm, eine Liniendicke in mm, eine
Linienfarbe und eine Füllfarbe. Erstellen Sie 4 sinnvolle Konstruktoren unter Vermeidung von
redundantem Quellcode sowie die notwendigen getter und setter. Überschreiben Sie die Methoden
toString und equals von Object unter Angabe der Annotation @Override. Die Linienfarbe und
Füllfarbe werden als String gespeichert, wobei nur „grün“, „blau“, „schwarz“ und „gelb“ zugelassen
sind. Prüfen Sie die Gültigkeit der Farben in einer einzigen Bedingung und werfen Sie im Fehlerfall
eine RuntimeException mit passender Fehlermeldung. Ein Quadrat-Objekt muss zu jedem
Zeitpunkt in einem gültigen Zustand sein, ansonsten ist eine RuntimeException mit passender
Fehlermeldung zu werfen!
Ich habe die Aufgabe nicht 1:1 umgesetzt und beispielsweise die Farben nicht als String angegeben sondern als RGB-Werte, da dass meiner Meinung nach mehr Sinn macht.
Allerdings scheine ich noch irgendwas ziemlich falsch zu machen.
Mein Quellcode sieht bisher folgendermaßen aus:
Code:
package geo;
public class Quadrat {
// Eigenschaften jedes Quadrates
private int x; // x-Koordinate
private int y; // y-Koordinate
private int seitenlaenge; // Seitenlaenge
private int liniendicke; // Liniendicke
private int linienfarbe; // Linienfarbe(RGB-Wert)
private int fuellfarbe; // Fuellfarbe(RGB-Wert)
//Standartwerte für die Quadratvariablen
public Quadrat() {
this.x = 0;
this.y = 0;
this.seitenlaenge = 1;
this.liniendicke = 1;
this.linienfarbe = 0;
this.fuellfarbe = 0;
}
//Konstruktor für ein Quadrat mit Angabe von Koordinaten
public Quadrat(int xK, int yK) {
this();
this.setKoord(xK, yK);
}
//Konstruktor für ein Quadrat mit Angabe von Seitenlänge und Liniendicke
public Quadrat(int dicke, int laenge) {
this();
this.setDicke(dicke);
this.setLaenge(laenge);
}
//Konstruktor für ein Quadrat mit Angabe von Linien- und Füllfarbe
public Quadrat(int lfarbe, int ffarbe) {
this();
this.setLfarbe(lfarbe);
this.setFfarbe(ffarbe);
}
//Konstruktor für ein Quadrat mit allen Angaben
public Quadrat(int xK, int yK, int dicke, int laenge, int lfarbe, int ffarbe) {
this();
this.setKoord(xK, yK);
this.setDicke(dicke);
this.setLaenge(laenge);
this.setLfarbe(lfarbe);
this.setFfarbe(ffarbe);
}
//Setter
//Die gewünschten Koordinaten werden an die Variable weitergeleitet
public void setKoord(int xK, int yK) {
this.x = xK;
this.y = yK;
}
//Die gewünschte Liniendicke wird an die Variable weitergeleitet
public void setDicke(int dicke) {
if (dicke <= 0) {
throw new RuntimeException("Liniendicke ungültig !");
}
this.liniendicke = dicke;
}
//Die gewünschte Seitenlaenge wird an die Variable weitergeleitet
public void setLaenge(int laenge) {
if (laenge <= 0) {
throw new RuntimeException("Linienlaenge ungültig !");
}
this.seitenlaenge = laenge;
}
//Die gewünschte Linienfarbe(RGB-Wert) wird an die Variable weitergeleitet
public void setLfarbe(int lfarbe) {
if (lfarbe == 000255000) {
this.linienfarbe = lfarbe;
}
else if (lfarbe == 000000255) {
this.linienfarbe = lfarbe;
}
else if (lfarbe == 000000000) {
this.linienfarbe = lfarbe;
}
else if (lfarbe == 25525500) {
this.linienfarbe = lfarbe;
}
else
throw new RuntimeException("Linienfarbe ungültig");
}
//Die gewünschte Fuellfarbe(RGB-Wert) wird an die Variable weitergeleitet
public void setFfarbe(int ffarbe) {
if (ffarbe == 000255000) {
this.fuellfarbe = ffarbe;
}
else if (ffarbe == 000000255) {
this.fuellfarbe = ffarbe;
}
else if (ffarbe == 000000000) {
this.fuellfarbe = ffarbe;
}
else if (ffarbe == 25525500) {
this.fuellfarbe = ffarbe;
}
else
throw new RuntimeException("Fuellfarbe ungültig");
}
//end Setter
//Getter
public int getX() { return this.x; }
public int getY() { return this.y; }
public int getDicke() { return this.liniendicke; }
public int getLaenge() { return this.seitenlaenge; }
public int getLfarbe() { return this.linienfarbe; }
public int getFfarbe() { return this.fuellfarbe; }
//end Getter
}
Ich erwarte keine fertige Lösung, ich hoffe einfach nur auf etwas Hilfe damit ich weiterkomme.
Danke im Vorraus.
lg insXicht