Operatoren Mit Objekten rechnen

Hey, ich hatte eine Aufgabe zum Thema Koordiantensysteme viele Teilaufgabene, aber die letzte überfordert mich ein wenig.

Wir haben 2 Klassen erstellt. Punkt.java und TestPunkt.java.
Die Punkt Klasse hat keine Main Methode, und wird nur von der TestPunkt Klasse aufgerufen.
Bei Punkt haben
Code:
public class Punkt {
    private int x;
    private int y;
    private String farbe;
und da habe ich ein Problem.
Denn jetzt soll ich den Abstand 2er Punkte berechnen. Und dies mit, angenommen p2 und p4 sind meine Punkte (als Objekt).
Uns wird vorgegeben, dass die Rechnungsmethode folgendermaßen aussieht :
Code:
public void berechneDistanz(Punkt p4) {
Somit schließe ich, dass, um den Abstand 2er Punkte zu errechnen mit
Code:
 p2.berechneDistanz(p4);
So. aber nun weiß ich nicht, wie ich rechnen soll, da ich ja einen x - Wert von p2 habe und ein - Wert von p4.
Klar könnte man es einfacher lösen wenn man schlicht x1 und x2 deklariert, aber das ist hier nicht Sinn und Aufgabe.
Mein Code enthält noch Teile von den vorherigen Aufgaben, diese bitte ignorieren :)

Punkt.java :
Code:
public class Punkt {
    private int x;
    private int y;
    private String farbe;

    public void setX(int i) {
        x = i;
    }

    public void setY(int i) {
        y = i;
    }

    public void setFarbe(String color) {
        farbe = color;
    }


    public void verschiebe(int deltaX, int deltaY) {
        x = x + deltaX;
        y = y + deltaY;
    }

    public void verschiebeUmEins() {

        x += 1;
        y += 1;
    }

    public int getX(){ return x; }
    public int getY(){ return y; }
    public String getFarbe() { return farbe; }

    public void print(int PunktNr, int x, int y, String farbe) {

        System.out.println("Punkt " + PunktNr + " ( x= "+ x + "; y= " + y + "; farbe= " + farbe + ")");


    }

    public void berechneDistanz(Punkt p4) {

        double distanz = Math.sqrt(Math.pow(x - x , 2)+Math.pow(y - y, 2));
    System.out.println(distanz);

    }
    public void printDistanz() {

    }


}
Und PunktTest.java :
Code:
public class PunktTest {
    public static void main(String[] args){
       
        p2.setX(3); p2.setY(5); p2.setFarbe("rot");

     

        Punkt p4 = new Punkt();
        p4.setX(7); p4.setY(9); p4.setFarbe("rosa");

      

  

        p2.berechneDistanz(p4);
     

    }
}
(in PunktTest.java habe ich ewig viele Zeilen für die Übersicht mal rausgelöscht, welche nur für die anderen Aufgaben waren)



Meine Frage ist, kann man dem x und y anders die einzigartigen Werte zufügen ? also darstellen als x(p2) o.ä. ? Also hoffe ihr wisst was ich meine.
MfG Oli
 
Hey, ich hatte eine Aufgabe zum Thema Koordiantensysteme viele Teilaufgabene, aber die letzte überfordert mich ein wenig.

Wir haben 2 Klassen erstellt. Punkt.java und TestPunkt.java.
Die Punkt Klasse hat keine Main Methode, und wird nur von der TestPunkt Klasse aufgerufen.
Bei Punkt haben
Code:
public class Punkt {
    private int x;
    private int y;
    private String farbe;
und da habe ich ein Problem.
Denn jetzt soll ich den Abstand 2er Punkte berechnen. Und dies mit, angenommen p2 und p4 sind meine Punkte (als Objekt).
Uns wird vorgegeben, dass die Rechnungsmethode folgendermaßen aussieht :
Code:
public void berechneDistanz(Punkt p4) {
Somit schließe ich, dass, um den Abstand 2er Punkte zu errechnen mit
Code:
 p2.berechneDistanz(p4);
So. aber nun weiß ich nicht, wie ich rechnen soll, da ich ja einen x - Wert von p2 habe und ein - Wert von p4.
Klar könnte man es einfacher lösen wenn man schlicht x1 und x2 deklariert, aber das ist hier nicht Sinn und Aufgabe.
Mein Code enthält noch Teile von den vorherigen Aufgaben, diese bitte ignorieren :)

Punkt.java :
Code:
public class Punkt {
    private int x;
    private int y;
    private String farbe;

    public void setX(int i) {
        x = i;
    }

    public void setY(int i) {
        y = i;
    }

    public void setFarbe(String color) {
        farbe = color;
    }


    public void verschiebe(int deltaX, int deltaY) {
        x = x + deltaX;
        y = y + deltaY;
    }

    public void verschiebeUmEins() {

        x += 1;
        y += 1;
    }

    public int getX(){ return x; }
    public int getY(){ return y; }
    public String getFarbe() { return farbe; }

    public void print(int PunktNr, int x, int y, String farbe) {

        System.out.println("Punkt " + PunktNr + " ( x= "+ x + "; y= " + y + "; farbe= " + farbe + ")");


    }

    public void berechneDistanz(Punkt p4) {

        double distanz = Math.sqrt(Math.pow(x - x , 2)+Math.pow(y - y, 2));
    System.out.println(distanz);

    }
    public void printDistanz() {

    }


}
Und PunktTest.java :
Code:
public class PunktTest {
    public static void main(String[] args){
      
        p2.setX(3); p2.setY(5); p2.setFarbe("rot");

    

        Punkt p4 = new Punkt();
        p4.setX(7); p4.setY(9); p4.setFarbe("rosa");

     

 

        p2.berechneDistanz(p4);
    

    }
}
(in PunktTest.java habe ich ewig viele Zeilen für die Übersicht mal rausgelöscht, welche nur für die anderen Aufgaben waren)



Meine Frage ist, kann man dem x und y anders die einzigartigen Werte zufügen ? also darstellen als x(p2) o.ä. ? Also hoffe ihr wisst was ich meine.
MfG Oli
Bzw kann man irgendwie zwischen den x werten und y werten unterscheiden, ohne sie umbenennen zu müssen?
 
Code:
public class Punkt {
    private int x;
    private int y;

    ...
    
    public void berechneDistanz(Punkt p4) {
      // Hier hast Du die Instanzvariablen x, y (bzw. this.x und this,y wenn Du die hinzufügen willst)
      // Und den Punkt p4 (also z.B. p4.x oder p4.y)
      // Somit Distanz zwischen this und p4 berechnen....
    ...
    }
    
    ...
}
Ich habe da mal den Code etwas stark gekürzt und im Kommentar geschrieben, was Du zur Verfügung hast.

Ist das verständlich?
 
Code:
public class Punkt {
    private int x;
    private int y;

    ...
   
    public void berechneDistanz(Punkt p4) {
      // Hier hast Du die Instanzvariablen x, y (bzw. this.x und this,y wenn Du die hinzufügen willst)
      // Und den Punkt p4 (also z.B. p4.x oder p4.y)
      // Somit Distanz zwischen this und p4 berechnen....
    ...
    }
   
    ...
}
Ich habe da mal den Code etwas stark gekürzt und im Kommentar geschrieben, was Du zur Verfügung hast.

Ist das verständlich?
Also wenn ich das richtig verstanden hab, meine Instanzmethode nimmt die Werte von p2 mit,
also hat
Code:
 public void berechneDistanz(Punkt p4) {
die Anfangswerte von p2, oder auch this.x etc.

So, wenn ich nun die Berechnung mache, der einfachheithalber meinetwegen

Code:
 public void berechneDistanz(Punkt p4) { this.x + p4.x; }
wie kann ich dieses p4.x darstellen ? da ja beide "x" sind, rechne ich ja lediglich dem x von p2, obwohl ich ja auch das x von p4 als Variable gebe
Code:
 p2.berechneDistanz(punkt4);
. Hab ich da grad ein Knoten im Kopf ?
 
Ich verstehe dein Problem nicht.

Java:
 public void berechneDistanz(Punkt p4) { 
  int distance = this.x - p4.x; 
  System.out.println("Die X-Distanz ist "+distance);
}
 
mit p4.x greifst du eben auf das x von dem Punkt p4 zu und nicht auf den p2
versuch doch einfach mal p2.x bzw this.x und p4.x auszugeben
 
mit p4.x greifst du eben auf das x von dem Punkt p4 zu und nicht auf den p2
versuch doch einfach mal p2.x bzw this.x und p4.x auszugeben
Okay, krass, ich wusste nicht dass ich einfach p4.x eingeben kann, hatte das oben nur zur Verdeutlichung benutzt, um mein "Problem" zu zeigen.. Hat sich erledigt ^^'
Code:
public void berechneDistanz(Punkt p4) {

    double distanz = Math.sqrt(Math.pow(this.x - p4.x , 2)+Math.pow(this.y - p4.y, 2));

System.out.println(distanz);
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben