Objektvariable anderer Klasse übernehmen, Getter/Setter

KogoroMori21

KogoroMori21

Aktives Mitglied
Guten Tag,
ich habe folgendes Problem, ich hab die Klasse Punkt und Linie und möchte die x und y der Klasse Punkt in Klasse Linie aufrufen nur weiß ich leider nicht wie das geht. Hab schon viel probiert und gegoogelt aber finde nicht wirklich was.
Ich kriege in der Klasse Linie bei der public void darstellen bei x und y eine Fehlermeldung: incompatible types: Punkt cannot be converted to int

Punkt:
public class Punkt{
  
    private int x;
    private int y;
    
    public Punkt(int x, int y){
    
        this.x = x;
        this.y = y;
    }
    
    public void setX(int x){
        this.x = x;
    }
    
    public int getX(){
        return x;
    }
    
        public void setY(int y){
        this.y = y;
    }
    
    public int getY(){
        return y;
    }
    
    public void darstellen(Interaktionsbrett ib){
        ib.neueLinie(x,y,x,y);
    }
    
  

    

}


Linie:
public class Linie{
    
    Punkt punkt;
    private Punkt x;
    private Punkt y;
    

    private int x2;
    private int y2;
    
    

    public Linie(Punkt x, Punkt y){
     this.x = x;
     this.y = y;
    }
    /*
    public void setX(int x){
        this.x = x;
    }
    
    public int getX(){
        return x;
    }
    
        public void setY(int y){
        this.y = y;
    }
    
    public int getY(){
        return y;
    }
    */
        public void setX2(int x2){
        this.x2 = x2;
    }
    
    public int getX2(){
        return x2;
    }
    
        public void setY2(int y2){
        this.y2 = y2;
    }
    
    public int getY2(){
        return y2;
    }
    
    
    
    
    
    public void darstellen(Interaktionsbrett ib){
        ib.neueLinie(x,y,x2,y2);
    }
    
 
}
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Einen Punkt x und y zu nennen ist ungünstig und verwirrt dich vermutlich nur, nenne sie eher p1 und p2 oder sowas.
Java:
ib.neueLinie(p1.getX(),p1.getY(),p2.getX(),p2.getY());
 
KogoroMori21

KogoroMori21

Aktives Mitglied
für die x.getX() und y.getY() funktioniert alles aber für die x2 und Y2 krieg ich fehlermeldungen


void darstellen:
 ib.neueLinie(x.getX(),y.getY(),x2.getX2(),y2.getY2());

Kann es sein das ich den Code dann so schreiben muss:
Neu void darstellen:
ib.neueLinie(x.getX(),y.getY(),x2, y2);

Weil erstens kriege ich so keinen Fehler mehr und die x2 und y2 erstelle ich ja in der Klasse Linie und rufe Sie nicht von der Klasse Punkt auf, wäre das dann so richtig?
 
Oneixee5

Oneixee5

Bekanntes Mitglied
Was hier gemeint ist, ist eine Gerade - diese ist eine gerade Linie zwischen 2 Punkten. Also benötigst du einen Startpunkt a und einen Endpunkt b. Man würde das etwa so darstellen:
Java:
public class Gerade {

    private final Punkt a;
    private final Punkt b;

    public Gerade(Punkt a, Punkt b) {
        this.a = a;
        this.b = b;
    }

    public Gerade(int x1, int y1, int x2, int y2) {
        this.a = new Punkt(x1, y1);
        this.b = new Punkt(x2, y2);
    }

    public Punkt getA() {
        return a;
    }

    public Punkt getB() {
        return b;
    }

//    public void darstellen(Interaktionsbrett ib){
//        ib.neueLinie(x,y,x2,y2);
//    }

}
Getter und Setter kann man jetzt einfach immer von den jeweiligen Punkten ableiten.

Java:
    public int getX1() {
        return a.getX();
    }
Instanziieren ist kann man das dann so:
Java:
        Punkt a = new Punkt(0, 0);
        Punkt b = new Punkt(10, 10);  
        Gerade g1 = new Gerade(a, b);
        Gerade g2 = new Gerade(0, 0, 10, 10);
Ergänzung: Gerade ist natürlich Quatsch, da Geraden unendlich lang sind. Der Name der Klassen müsste Strecke lauten.
 
Zuletzt bearbeitet:
MoxxiManagarm

MoxxiManagarm

Top Contributor
Kann es sein das ich den Code dann so schreiben muss:
Java:
ib.neueLinie(x.getX(),y.getY(),x2, y2);
Weil erstens kriege ich so keinen Fehler mehr und die x2 und y2 erstelle ich ja in der Klasse Linie und rufe Sie nicht von der Klasse Punkt auf, wäre das dann so richtig?
Genau das meine ich, die Benennung x und y für Punkte verwirrt dich! Mit der aktuellen Benennung müsste es so aussehen
Java:
ib.neueLinie(x.getX(),x.getY(),y.getX(),y.getY());

Ein Punkt ist keine X-Koordinate sondern hat eine X-Koordinate. Gleiches gilt für die Y-Koordinate.
 
KogoroMori21

KogoroMori21

Aktives Mitglied
Wenn ich mittels getX() und getY() in der Klasse Linie die Punkte der Klasse Punkt aufrufe, dann kriege ich eine NullPointerException und ich verstehe nicht ganz warum. Ich arbeite mit BlueJ. Habe vom Interaktionsbrett und von der Klasse Linie ein neues Objekterzeugt und der Klasse Linie beliebige Werte zugewiesen.
Deshalb versteh ich nicht warum eine NullPointerException kommt
 
kneitzel

kneitzel

Top Contributor
Dann zeig uns den konkreten Code, dann kann man da näheres zu sagen. Ansonsten kann man nur sagen: Da rufst Du etwas auf einer Referenz auf, die null ist.
 
KogoroMori21

KogoroMori21

Aktives Mitglied
Ich würde mal sagen die Klasse Punkt ist richtig. So wurde es zumindest vom Tutor abgenommen.

Punkt:
public class Punkt{
  
    public int x;
    public int y;
    
    public Punkt(int x, int y){
        this.x = x;
        this.y = y;
    }
    
    public void setX(int x){
        this.x = x;
    }
    
    public int getX(){
        return x;
    }
    
        public void setY(int y){
        this.y = y;
    }
    
    public int getY(){
        return y;
    }
    
    public void darstellen(Interaktionsbrett ib){
        ib.neuerPunkt(x,y);
    }   

}

Bei der Klasse Linie habe ich sicherlich einige Fehler, da ich nicht genau weiß wie ich das machen muss. Ich geh davon aus das ich im Konstruktor Fehler habe und in den initiierten Objektvariablen.

Linie:
public class Linie{
    
    Punkt punkt;
    public Punkt x;
    public Punkt y;
    

    public int x2;
    public int y2;
    
    

    public Linie(int x, int y, int x2, int y2){
        this.x2 = x2;
        this.y2 = y2;
    }

    public void setX2(int x2){
        this.x2 = x2;
    }
    
    public int getX2(){
        return x2;
    }
    
    public void setY2(int y2){
        this.y2 = y2;
    }
    
    public int getY2(){
        return y2;
    }
    
    
    
    
    
    public void darstellen(Interaktionsbrett ib){
          //ib.neuerPunkt(x.getX(),y.getY());       
          ib.neueLinie(x.getX(),x.getY(),x2,y2);
    }
    
 
}
 
kneitzel

kneitzel

Top Contributor
Also eine Linie wird durch zwei Punkte definiert. Jeder Punkt hat x und y.

Daher überleg Dir genau, wie Du die Daten speichern willst, denn das ist so nicht nachvollziehbar:
Java:
    Punkt punkt;
    public Punkt x;
    public Punkt y;
    

    public int x2;
    public int y2;

Was soll punkt sein? x und y sind schlechte Namen, die könnten als p1 und p2 oder startpunkt und endpunkt bezeichnet werden.
x2/y2 können dann weg, da ja die Werte in p2 sein dürften.

Java:
    public Linie(int x, int y, int x2, int y2){
        this.x2 = x2;
        this.y2 = y2;
    }
Hier ignorierst Du x und y. Und es wird kein Punkt initialisiert. Daher sind punkt, x und y schlicht null.

Java:
    public void darstellen(Interaktionsbrett ib){
          //ib.neuerPunkt(x.getX(),y.getY());       
          ib.neueLinie(x.getX(),x.getY(),x2,y2);
    }
Da x null ist, wird hier eine NPE geworfen ... (Es sei denn, Du setzt es von außen - ist halt public!)
 
KogoroMori21

KogoroMori21

Aktives Mitglied
Nun ich dachte wenn ich "public Punkt x" schreibe, greife ich damit auf den x wert der Klasse Punkt zu.
Und ich setze ja die Werte von außen in dem ich das Objekt erzeuge, falls Sie das meinen aber ich komme leider zu keiner Lösung
 
kneitzel

kneitzel

Top Contributor
Das
Java:
public Punkt x;
erstellt eine Instanzvariable x vom Typ Punkt, die von allen Klassen aus zugänglich ist.

Dadurch greifst Du auf nichts innerhalb eines Punktes zu noch erzeugst Du eine Instanz oder sonst irgendwas. Und eine Instanzvariable, die nicht explizit initialisiert ist, ist 0 / false / null (je nach Typ. Da es hier ein Referenztyp ist, ist diese Instanzvariable null).
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Ein Punkt hat eine x und eine y Koordinate. Typ der Koordinaten: int
Eine Linie hat einen von und einen bis Punkt. Typ der Punkte: Klasse Punkt

Du merkst an dieser Formulierung sicher, dass Implementierung der Klassen Punkt und Linie sich sehr ähneln. Du musst nur die Werte (Namen, Typen etc.) verändern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
G aus Klasse auf Objektvariable einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 12
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
pkm Eclipse wie mit anderer JAVA-Version starten? Java Basics - Anfänger-Themen 1
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
B Schleife von anderer Methode stoppen? (Start continue) Java Basics - Anfänger-Themen 18
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
UnknownInnocent Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
T OOP GUI aus anderer Klasse updaten Java Basics - Anfänger-Themen 6
UnknownInnocent Auf ActionListener von anderer Klass aus zugreifen Java Basics - Anfänger-Themen 5
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
C Methoden Auf Methoden anderer Klassen zugreifen Java Basics - Anfänger-Themen 10
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
arjoopy Methoden Methoden anderer Klassen Java Basics - Anfänger-Themen 6
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Java Basics - Anfänger-Themen 0
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
N Variablen Variable in Main deklarieren und in anderer Methode nutzen Java Basics - Anfänger-Themen 12
Z Wie Objekte anderer Klassen ansprechen? Java Basics - Anfänger-Themen 2
U Code anderer Programmierern verstehen Java Basics - Anfänger-Themen 2
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
F Methoden aus anderer classe über nehmen Java Basics - Anfänger-Themen 10
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
W OOP Member anderer Klassen erreichen Java Basics - Anfänger-Themen 1
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
T Variablen anderer Klassen Java Basics - Anfänger-Themen 1
T Vererbung Variable aus anderer Klasse verwenden Java Basics - Anfänger-Themen 8
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
P Methoden Methode in anderer Methode aufrufen Java Basics - Anfänger-Themen 4
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
Mr. Pink Graphics2D in anderer Methode aufrufen Java Basics - Anfänger-Themen 6
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
T Variable aus anderer Klasse Java Basics - Anfänger-Themen 3
A Import anderer Classen aus anderen Projekten Java Basics - Anfänger-Themen 6
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
G ArrayList in anderer Klasse verwenden Java Basics - Anfänger-Themen 31
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
K Vererbung Variable aus anderer Klasse nutzen Java Basics - Anfänger-Themen 3
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
A Klassen Klasse in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
V ComboBox Ergebnisse abhängig von anderer ComboBox - Wie? Java Basics - Anfänger-Themen 7
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
Bluedaishi Klassen Thread über if Anweisung starten und von anderer Klassen über Button Beenden Java Basics - Anfänger-Themen 34
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
J Threads Variablen Wert aus anderer Klasse auslesen Java Basics - Anfänger-Themen 4
A Array aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 9
N GUI aus anderer Klasse beziehen Java Basics - Anfänger-Themen 21
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
I Im JFrame Inhalte verändern per Methode aus anderer Class Java Basics - Anfänger-Themen 5
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
A Bild erstellen in anderer Klasse Java Basics - Anfänger-Themen 2
X OOP Methoden und Variablen in anderer Klasse verwenden Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben