Hallo liebe Community,
ich bin neu in der Welt von Java, ich bin gerade dabei ein Program zu schreiben das Punkte ( Koordinaten ) weitergibt um Dreiecke, Quadrate, Polygon usw erstellt.
Nun ist mein Problem das ich in der Übungsaufgabe nicht genau weiss was von mir verlangt wird und ich auch nach einer Woche suchen keine hilfreichen Informationen gefunden habe und hoffe das ich diese bei euch finde.
Folgendes, ich hab die Klasse Punkte (1 von 5 Klassen):
public class Punkt {
private final static int maxpos = 1023;
private int xpos;
private int ypos;
public Punkt(int xpos, int ypos) {
this.xpos = xpos;
this.ypos = ypos;
if(xpos<0) {
this.xpos = 0;
} else if(xpos>maxpos) {
this.xpos=maxpos;
} else {
this.xpos=xpos;
}
if(ypos<0) {
this.ypos = 0;
} else if(xpos>maxpos) {
this.ypos=maxpos;
} else {
this.ypos=xpos;
}
}
public Punkt() {
this.xpos = 511;
this.ypos = 511;
}
public int getXpos() {
return this.xpos;
}
public void setXYpos(int xpos, int ypos) {
this.xpos = xpos;
this.ypos = ypos;
}
public int getYpos() {
return this.ypos;
}
public Punkt verschiebeUm(int deltax, int deltay) {
return new Punkt(xpos + deltax, ypos + deltay);
}
public Punkt verschiebeUm(Punkt deltaxy) {
return new Punkt(xpos + deltaxy.xpos, ypos + deltaxy.ypos);
}
public String toString() {
return "(" + xpos + "," + ypos + ")";
}
}```
und die Klasse main:
public class Hauptprogramm {
public static void main(String[] args) {
System.out.println("Aufgabe 2a:");
Punkt A = new Punkt();
Punkt B = new Punkt(123456, 654321);
Punkt C = new Punkt(123,-456);
Punkt D = new Punkt(654,321);
System.out.println("A=" + A);
System.out.println("B=" + B);
System.out.println("C=" + C);
System.out.println("D=" + D);
System.out.println("----------");
}
}
Die ausgabe **so** ist:
Aufgabe 2a:
A=(0,0)
B=(1023,1023)
C=(123,0)
D=(654,654)
wobei die Ausgabe eigentlich, **diese** sein müsste:
A=(511,511)
B=(1023,1023)
C=(123,0)
D=(654,321)
Nun hab ich die Aufgabenstellung immer und immer wieder wiederholt und gelesen und denke das es an den Punkt hier liegen muss:
**Der Standardkonstruktor soll die Koordinaten mit dem Wert 511 initialisieren.**
Wobei ich mir das aber nicht denken kann, da ich ja bereits einen Konstruktor (siehe unten):
``` public Punkt() {
this.xpos = 0;
this.ypos = 0;```
Müsste ich ja den eigentlich nur in 511 statt 0 umschreiben oder mit (siehe unten) aufrufen:
```new Punkt(511, 511);```
Aber das hilft alles nicht bei meinem Problem ausser das ich bei Punkt A=511 stehen habe aber die anderen zahlen nicht verändert werden (bei ausgabe) und das ich nicht auf das vorgegebene Ergebnis somit komme, versteht jemand was ich meine oder mein Problem :D