Servus mitnander.
Ich studiere Informatik und habe ein Problem bei einer Aufgabe. Ich habe die Klasse Quadrat, in der
ich 4 Konstruktoren schreibe, getter & setter .. das Übliche eben.
Bei den Settern setLinienfarbe() und setFüllfarbe() dürfen allerdings nur die Farben schwarz, blau, grün und gelb zur Übergabe erlaubt.
Mein Problem ist nur (zumindest vermute ich, dass da das Problem liegt), dass wenn ich eine Klasse TestQuadrat erstelle und ein Objekt anlege(egal ob ohne Parameterangaben oder mit) trotzdem alles erlaubt ist was ich eingebe, obwohl ich es eigentlich in den settern überprüfe.
Hier mal meine QuadratKlasse
Ich bedanke mich im vorraus für jede Hilfe die ich bekommen kann.
Ich studiere Informatik und habe ein Problem bei einer Aufgabe. Ich habe die Klasse Quadrat, in der
ich 4 Konstruktoren schreibe, getter & setter .. das Übliche eben.
Bei den Settern setLinienfarbe() und setFüllfarbe() dürfen allerdings nur die Farben schwarz, blau, grün und gelb zur Übergabe erlaubt.
Mein Problem ist nur (zumindest vermute ich, dass da das Problem liegt), dass wenn ich eine Klasse TestQuadrat erstelle und ein Objekt anlege(egal ob ohne Parameterangaben oder mit) trotzdem alles erlaubt ist was ich eingebe, obwohl ich es eigentlich in den settern überprüfe.
Hier mal meine QuadratKlasse
Ich bedanke mich im vorraus für jede Hilfe die ich bekommen kann.
Java:
package geo;
public class Quadrat {
private double x, y, seitenlänge, liniendicke;
private String linienfarbe, füllfarbe;
private String grün = "grün";
private String blau = "blau";
private String schwarz = "schwarz";
private String gelb = "gelb";
public Quadrat() {
this.setX(1);
this.setY(1);
this.setSeitenlänge(1);
this.setFüllfarbe("Keine Füllfarbe");
this.setLinienfarbe("Keine Linienfarbe");
}
public Quadrat(double x) {
this();
this.setX(x);
}
public Quadrat(double y, double seitenlänge, double x) {
this(x);
this.setSeitenlänge(seitenlänge);
this.setY(y);
}
public Quadrat(double x, double y, double seitenlänge, double liniendicke,
String linienfarbe, String füllfarbe) {
this(y,seitenlänge,x);
this.setLiniendicke(liniendicke);
this.setFüllfarbe(füllfarbe);
this.setLinienfarbe(linienfarbe);
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public double getSeitenlänge() {
return seitenlänge;
}
public void setSeitenlänge(double seitenlänge) {
if (seitenlänge <= 0) {
throw new RuntimeException(
"Seitenlänge muss größer oder gleich 0 sein");
}
this.seitenlänge = seitenlänge;
}
public double getLiniendicke() {
return liniendicke;
}
public void setLiniendicke(double liniendicke) {
if (liniendicke < 0) {
throw new RuntimeException(
"Seitendicke muss größer oder gleich 0 sein");
}
this.liniendicke = liniendicke;
}
public String getLinienfarbe() {
return linienfarbe;
}
public void setLinienfarbe(String linienfarbe) {
if (!(linienfarbe.equals(grün)) && (linienfarbe.equals(gelb))
&& (linienfarbe.equals(schwarz))
&& (linienfarbe.equals(blau))) {
throw new RuntimeException(
"Keine gültige Farbe! Für die Linienfarbe sind nur die Farben "
+ "grün, blau, schwarz und gelb gültig");
}
this.linienfarbe = linienfarbe;
}
public String getFüllfarbe() {
return füllfarbe;
}
public void setFüllfarbe(String füllfarbe) {
if (!(füllfarbe.equals(grün)) && (füllfarbe.equals(gelb))
&& (füllfarbe.equals(schwarz)) && (füllfarbe.equals(blau))) {
throw new RuntimeException(
"Keine gültige Farbe! Für die Füllfarbe sind nur die Farben "
+ "grün, blau, schwarz und gelb gültig");
}
this.füllfarbe = füllfarbe;
}
@Override
public String toString() {
return "x-Wert: " + getX() + "\ny-Wert: " + getY() + "\nSeitenlänge: "
+ getSeitenlänge() + "\nLiniendicke: " + getLiniendicke()
+ "\nLinienfarbe: " + getLinienfarbe() + "\nFüllfarbe: "
+ getFüllfarbe();
}
public boolean equals(Object o){
if(o instanceof Quadrat){
Quadrat q=(Quadrat)o;
return (q.getFüllfarbe().equals(this.getFüllfarbe()) &
q.getX() == this.getX() &
q.getY() == this.getY() &
q.getLiniendicke() == this.getLiniendicke() &
q.getSeitenlänge() == this.getSeitenlänge() &
q.getLinienfarbe().equals(this.getLinienfarbe())); }
return false;
}
}