Vektoren Add gibt nicht das aus was es sollte

JavanDEmacia

Mitglied
Hey Java Forum,
ich habe 2 4D Vektoren erstellt die ich miteinander addieren möchte nur addiert er leider was falsches. Da ich seit geraumer Zeit den Fehler nicht finden kann, hoffe ich das jemand ein besseres Auge hat und mich erlösen kann :)

MfG.

//Erste Klasse

Java:
public class Vektor4D{

    private double x;
    private double y;
    private double z;
    private double u;

    public Vektor4D(double x1, double y1, double z1, double u1){

        this.x = x1;
        this.y = y1;
        this.z = z1;
        this.u = u1;

    }

    //Getter

    public double getX(double x1){

        this.x = x1;

        return x;

    }

    public double getY(double y1){

        this.y = y1;

        return y;

    }

    public double getZ(double z1){

        this.z = z1;

        return z1;

    }

    public double getU(double u1){

        this.u = u1;

        return u;

    }

    //Setter

    public void setX(double x1){

        this.x = x1;

    }

    public void setY(double y1){

        this.y = y1;

    }

    public void setZ(double z1){

        this.z = z1;

    }

    public void setU(double u1){

        this.u = u1;

    }

    public Vektor4D add(Vektor4D v){

        this.x = this.x + v.x;
        this.y = this.y + v.y;
        this.z = this.z + v.z;
        this.u = this.u + v.u;

        return this;

    }

    public Vektor4D getAdd(Vektor4D v){

        return this;

    }

    public Vektor4D substract(Vektor4D v){

        this.x = this.x - v.x;
        this.y = this.y - v.y;
        this.z = this.z - v.z;
        this.u = this.u - v.u;

        return this;

    }

    public double skalar(Vektor4D v){

        return (this.x * v.x)+(this.y * v.y)+(this.z * v.z)+(this.u * v.u);

    }

    public double length(){

        return x+y+z+u;

    }

    public boolean equals(Vektor4D v){

        boolean equals = false;

        if(this.x == v.x && this.y == v.y && this.z == v.z && this.u == v.u){

            equals = true;

        }

        return equals;

    }

    @Override
    public String toString() {

        return "Vektor X: " + x + "\n" + "Vektor Y: " + y + "\n" + "Vektor Z: " + z + "\n" + "Vektor U: " + u;

    }
}

//Zweite Klasse

Java:
import java.util.Scanner;

public class Vektor4DAusgabe {

    public static void main(String[] args) {

        Vektor4D v1 = new Vektor4D(0.0, 0.0, 0.0, 0.0);
        Vektor4D v2;
        v2 = new Vektor4D(0.0, 0.0, 0.0, 0.0);

        Scanner sc = new Scanner(System.in);

        System.out.println("Geben Sie eine Nr ein");

        System.out.println("Vektoren Koordinaten erzeugen (1)");
        System.out.println("Vektoren addieren (2)");
        System.out.println("Vektoren subtrahieren (3)");
        System.out.println("Vektormultiplikation mit einem Skalar (4)");
        System.out.println("Vektorlaenge ermitteln (5)");
        System.out.println("Vektorkoordinaten ausgeben (6)");

        int input = sc.nextInt();

        switch (input) {

            case 1:

                System.out.println("Geben Sie die 2 * 4 Koordinaten (x,y,z,u) für Vektor 1 und Vektor 2 ein");

                for (int i = 0; i < 8; i++) {

                    double vInput = sc.nextDouble();


                    v1.setX(vInput);
                    v1.setY(vInput);
                    v1.setZ(vInput);
                    v1.setU(vInput);

                    v2.setX(vInput);
                    v2.setY(vInput);
                    v2.setZ(vInput);
                    v2.setU(vInput);


                }

            case 2:

                System.out.println(v1.add(v2));

        }



    }

}
 

JavanDEmacia

Mitglied
Ich habe den Fehler eben gefunden, aber auch noch keine richtige Lösung dazu. Da die Schleife bis 8 läuft wird in allen Variablen die letzte Zahl eingesetzt und somit hätte ich dann z.B 8 mal die Zahl 2. Meine alternative ist unten abgebildet, jedoch würde ich gerne wissen ob es eine bessere Methode gibt, denn diese verbraucht unnötig Speicher durch die ganzen Variablen.

Java:
                double vInput = sc.nextDouble();
                v1.setX(vInput);

                double vInput2 = sc.nextDouble();
                v1.setY(vInput2);

                double vInput3 = sc.nextDouble();
                v1.setZ(vInput3);

                double vInput4 = sc.nextDouble();
                v1.setU(vInput4);


                double vInput5 = sc.nextDouble();
                v2.setX(vInput5);

                double vInput6 = sc.nextDouble();
                v2.setY(vInput6);

                double vInput7 = sc.nextDouble();
                v2.setZ(vInput7);

                double vInput8 = sc.nextDouble();
                v2.setU(vInput8);
 

mihe7

Top Contributor
denn diese verbraucht unnötig Speicher durch die ganzen Variablen.
Auf die paar Bytes kommt es zwar wirklich nicht an, zumal sie nur kurzzeitig benötigt werden (außerdem würde eine Variable reichen), Dein Problem ist aber, dass Dein Vektor zu konkret formuliert ist. Dadurch machst Du Dir das Leben unnötig schwer.

Du willst ja eigentlich etwas wie:
Java:
               for (int i = 0; i < 4; i++) {
                    double vInput = sc.nextDouble();
                    v1.set(i, vInput);
               }
               for (int i = 0; i < 4; i++) {
                    double vInput = sc.nextDouble();
                    v2.set(i, vInput);
               }

bzw. wenn Du Dir entsprechende Methoden schreiben darfst/kannst:

Java:
               read(sc, v1);
               read(sc, v2);

Dazu muss Dein Vektor einen entsprechenden Setter anbieten.

Unabhängig davon ist Deine Vektor-Klasse etwas seltsam, um es mal vorsichtig auszudrücken. Eine get-Methode sollte keine Änderungen vornehmen. Außerdem ist die Methode getAdd sinnfrei und was length liefern soll, ist mir auch nicht klar.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Vektoren Java Basics - Anfänger-Themen 11
J Vektoren (2-dimensional) Java Basics - Anfänger-Themen 2
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
D Vektoren Initialisieren Java Basics - Anfänger-Themen 1
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
S OOP Werte von Vektoren mit 3 Variablen ausgeben lassen Java Basics - Anfänger-Themen 3
M n-dim Vektoren mit Arrays Java Basics - Anfänger-Themen 3
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
J Wie erstelle ich Vektoren? Java Basics - Anfänger-Themen 5
N Matrix/Vektoren Java Basics - Anfänger-Themen 3
N Vektoren, Methode Java Basics - Anfänger-Themen 10
S 3D Cube aus Vektoren Java Basics - Anfänger-Themen 20
G Vektoren speichern Java Basics - Anfänger-Themen 3
N Vektoren multiplizieren Java Basics - Anfänger-Themen 8
N Ausgabe von Vektoren Java Basics - Anfänger-Themen 3
L Suche Hilfe , Problem mit Vektoren und klassen Java Basics - Anfänger-Themen 21
R Vektoren Java Basics - Anfänger-Themen 6
S Vektoren und Objektwerte Java Basics - Anfänger-Themen 4
V Vektoren zur Laufzeit erzeugen Java Basics - Anfänger-Themen 7
J Durchlaufen von Vektoren Java Basics - Anfänger-Themen 14
F Ein Array von Vektoren, Eclipse meckert Java Basics - Anfänger-Themen 12
M Prinzipielle Frage zu Vektoren Java Basics - Anfänger-Themen 2
H Vektoren aus einem String! Java Basics - Anfänger-Themen 2
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
W Verwalten von Objekten - Listen, Vektoren usw. Java Basics - Anfänger-Themen 6
M Zwei ineinanderverschachtelte Vektoren - generics möglich? Java Basics - Anfänger-Themen 3
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
F Vektoren Java Basics - Anfänger-Themen 15
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
E Gibt es in Java Properties (wie in C#) Java Basics - Anfänger-Themen 6
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
S Ausgabe gibt nur Arrayadresse aus... Java Basics - Anfänger-Themen 4
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
T String gibFarbe() - gibt nix?! Java Basics - Anfänger-Themen 13
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
O Funktioniert dies? Und gibt es eine bessere Lösung? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben