Konstruktor Problem

Brexoi

Mitglied
Hallo liebe Community,

ich hab folgendes Problem, ich muss ein UML-Diagramm in einen Code umsetzen und halt dann die ganzen Methoden und Konstruktoren mit leben befüllen usw.
Nun ist unten eine von fünf Klassen eingefügt wurden, wobei es hauptsächlich nur um die eine Klasse momentan geht.

Ich brauche folgendes:
Der parametrisierte Konstruktor soll die übergebenen Werte den entsprechenden Attributen der Klasse zuweisen. Der Konstruktor soll prüfen ob die übergebenen Werte im zulässigen Bereich liegen und falls nicht, die Attribute auf die Grenzwerte des zulässigen Bereiches setzten. Der zulässige Bereich liegt zwischen 0 und maxpos. Der Standardkonstruktor soll die Koordinaten mit dem Wert 511 initialisieren.
Die Methoden getXpos, bzw. getYpos sind die Getter-Methoden der Attribute xpos und ypos.
Die Methode setXYpos soll die übergebenen Parameter den Attributen zuweisen.
Die Methode verschiebeUm soll eine Verschiebung des Punktes um die als Parameter übergebenen Werte durchführen und als Rückgabe den verschobenen Punkt liefern.

Ich hab es mit einer IF/ELSE anweisung versucht aber bekommen nur fehler ohne die Anweisungen so wie der Code unten steht, funktioniert das Programm (zwischentest) einwandfrei, aber nicht wie es soll,..
Für Vorschläge und hilfestellungen währe ich sehr dankbar.

Ps: Ich habe bewusst meine ansätze zur IF/ELSE anweisung weg gelassen, damit man sich nicht darauf beschränkt, über verschiedene lösungswege oder ansätze bin ich immer dankbarer, da ich vergleichen kann und vielleicht das eine oder andere, anders in meinem vorhaben einsetzen könnte woran ich vielleicht in dem augenblick nicht gedacht habe.

Java:
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;
   }

   public Punkt() {
     this.xpos = 0;
     this.ypos = 0;
   }

   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 + ")";
   }
}
 
Zuletzt bearbeitet:

InfectedBytes

Top Contributor
Ich verstehe dein Problem nicht ganz, du sollst doch nichts anderes machen als die Grenzen prüfen:
Java:
public Punkt(int xpos, int ypos) {
  if(xpos<0) {
    this.xpos = 0;
  } else if(xpos>maxpos) {
    this.xpos=maxpos;
  } else {
    this.xpos=xpos;
  }
  //das gleiche für ypos
}

Oder ist deine Frage eigentlich eine andere gewesen?
 
Zuletzt bearbeitet:

Brexoi

Mitglied
Nein, ist schon richtig, hatte kein "this.xpos = 0" , bin noch so recht neu in der Welt von Java, könntest du/jemand mir erklären warum ich an dem Punkt nochmal this.xpos = 0 setze?
 

InfectedBytes

Top Contributor
Da primitive Klassenvariablen mit 0 initialisiert werden, könnte man sich das this.xpos=0 auch sparen, jedoch sollte man auch den Fall explizit aufschreiben, da es somit übersichtlicher ist.
Folgendes würde auch gehen, ist aber ggf. etwas "unsauber"
Java:
public Punkt(int xpos, int ypos) {
  if(xpos<0) {
    //nichts machen, wodurch der initialwert von 0 beibehalten wird
  } else if(xpos>maxpos) {
    this.xpos=maxpos;
  } else {
    this.xpos=xpos;
  }
  //das gleiche für ypos
}

Ansonsten wird ein Parameter namens xpos deklariert, welcher nur eine lokale Variable ist, welche ungleich der Klassenvariable xpos ist.
 
Zuletzt bearbeitet:

Brexoi

Mitglied
Okay danke dir für die hilfe, eine frage hätte ich noch, ich bekomme ja nun durch den ganzen code "Koordinaten" als ergebnis ausgespuckt, wie kann ich diese mit einem Wert von bspw 123 initialisieren?
 

Brexoi

Mitglied
Dann kann ich ihn auch direkt mit:

Java:
new Punkt(123, 123);//Aufruf mit 123 initialisiert mit oben verwendeten Code

Aufrufen, oder ist es nicht das selbe? Falls doch, ist es nicht ganz dass, was ich brauche oder ich verstehe die Aufgabe nicht Richtig,.. :noe:

In meiner Übungsaufgabe steht:
Der parametrisierte Konstruktor soll die übergebenen Werte den entsprechenden Attributen der Klasse zuweisen. Der Konstruktor soll prüfen ob die übergebenen Werte im zulässigen Bereich liegen und falls nicht, die Attribute auf die Grenzwerte des zulässigen Bereiches setzten. Der zulässige Bereich liegt zwischen 0 und maxpos. Der Standardkonstruktor soll die Koordinaten mit dem Wert 511 initialisieren.

Ansonsten ist folgendes mein Problem, ich hab in der main class folgenden Code:

Java:
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("----------");
    }
}

Als Ausgabe soll rauskommen:
A=(511,511)
B=(1023,1023)
C=(123,0)
D=(654,321)

Aber es kommt nur folgendes raus:
A=(0,0)
B=(1023,1023)
C=(123,0)
D=(654,654)

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

Oder kann es einfach daran liegen das meine verschiebeUm methode nicht gefüllt ist? Da sehe ich gerade in der Aufgabenstellung das die Methode folgendes machen soll:
Die Methode verschiebeUm soll eine Verschiebung des Punktes um die als Parameter übergebenen Werte durchführen und als Rückgabe den verschobenen Punkt liefern. Beachten Sie: Die Methode kann als Parameter entweder zwei ganze Zahlen oder ein Objekt vom Typ Punkt erhalten.
 
Zuletzt bearbeitet:

InfectedBytes

Top Contributor
Die Lösung zu deinem Konstruktor Problem habe ich doch hier schon beantwortet:
So wie du es bereits machst:
Java:
   public Punkt() {
     this.xpos = 0;
     this.ypos = 0;
   }
Bloß dann eben mit 123

Du musst nur anstatt 0 eben deine 511 reinschreiben.

Und bei den anderen machst du vermutlich folgendes falsch:
Java:
//....
this.ypos = xpos;
//...
Da muss natürlich schon die y Koordinate genutzt werden
 

Brexoi

Mitglied
Die Lösung zu deinem Konstruktor Problem habe ich doch hier schon beantwortet:


Du musst nur anstatt 0 eben deine 511 reinschreiben.

Und bei den anderen machst du vermutlich folgendes falsch:
Java:
//....
this.ypos = xpos;
//...
Da muss natürlich schon die y Koordinate genutzt werden

DANKE, ja ich hab es ja mit dem WERT 511 probiert aber es hat sich in der ausgabe nichts geändert ausser in Punkt A deswegen dachte ich, es liegt nicht daran, es war dennoch richtig und lag an ypos = xpos -.-
Ich hab es mir den ganzen tag mehrmals angeschaut und nicht gesehen,..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
M Konstruktor Problem - Variabel Erhöhen Java Basics - Anfänger-Themen 5
G problem mit konstruktor (typ) Java Basics - Anfänger-Themen 4
A Instanzmethode/Konstruktor-Problem Java Basics - Anfänger-Themen 2
D Klassen Problem - Übergabe an Konstruktor von Superklasse Java Basics - Anfänger-Themen 2
S Problem mit Konstruktor Java Basics - Anfänger-Themen 8
U Kleines Problem mit Konstruktor^^ Java Basics - Anfänger-Themen 7
O Kleines Problem mit Konstruktor mit Parametern aus generischer Klasse...oder so ;) Java Basics - Anfänger-Themen 2
W peinliches Problem - Kein Konstruktor? Java Basics - Anfänger-Themen 10
A Problem mit Konstruktor Java Basics - Anfänger-Themen 2
G Konstruktor problem? Java Basics - Anfänger-Themen 4
Kidao Problem mit 2D-Matrix und Konstruktor Java Basics - Anfänger-Themen 4
W Problem beim Konstruktor Java Basics - Anfänger-Themen 11
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
M Problem mit Konstruktor Java Basics - Anfänger-Themen 5
M Habe ein Problem mit dem Konstruktor!Wer kann helfen? Java Basics - Anfänger-Themen 15
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben