Methoden Eigene Eingabe Methode für Vektor im R2

sora_nai

Mitglied
Hi :)

Ich habe mein erstes eigenes Objekt namens R2 geschrieben.
Das habe ich bis jetzt:

Java:
public class R2 {


    public double xK, yK; //Eigenschaften


    //Konstruktoren
    public R2(double a, double b) {
        xK = a;
        yK = b;
    }


    public R2(double a) {
        xK = a;
        yK = 0;
    }

//Methoden
    
    public R2 plus(R2 partner) {
        R2 summe = new R2(xK + partner.xK, yK + partner.yK); //neuen Vektor "summe" erstellen
        return summe;
    }


   
    public void ausgabe() {
        System.out.println("(" + xK + " / " + yK + ")");
    }


   
    public R2 minus(R2 partner2) {
        R2 differenz = new R2(xK - partner2.xK, yK - partner2.yK);
        return differenz;
    }

Jetzt soll ich eine Eingabe Methode schreiben.
Mein Ansatz:


Java:
    public void eingabe() {
        try {
            InputStreamReader eingabestrom = new InputStreamReader(System.in);
            BufferedReader eingabe = new BufferedReader(eingabestrom);
            System.out.println("Bitte X-Koordinate eingeben: ");
            String xKo = eingabe.readLine();
            System.out.println("Bitte Y-Koordinate eingeben: ");
            String yKo = eingabe.readLine();
            char x = xKo.charAt(0);
            char y = yKo.charAt(0);
            xK = x;
            yK = y;
        } catch (Exception e) {
            System.out.println("Eingabe-Fehler");
        }
    }
}

Beim Nutzen dieser Methode in meiner Hauptklasse bekomme ich KEINE Fehlermeldung, allerdings bekomme ich einen komplett anderen Vektor beim Ausgeben.
Hier meine Hauptklasse:

Java:
public class haupt {
    public static void main(String[] xxx){
       
        R2 vektor1 = new R2(5,5); //Die Fünfen sind beliebige Koordinaten, da ich nicht weiß wie ich einen ganzen Vektor eingeben kann ohne die                                                                               Koordinaten nachträglich zu überschreiben (darauf basiert meine Eingabe Methode bis jetzt)
        vektor1.eingabe();
        vektor1.ausgabe();


    }
}

Ich werde beim Ausführen der Datei wie vorgesehen nach einer Eingabe gefragt, gebe ich z.B. die Koordinaten 0 und 0 ein bekomme ich bei der Ausgabe den Vektor ( 48.0 / 48.0 ), bei 1 und 1 bekomme ich ( 49.0 / 49.0 ).

Bitte um Hilfe :) Am Dienstag soll es fertig sein.
 
Zuletzt bearbeitet von einem Moderator:

AntiMuffin

Bekanntes Mitglied
Hallo,
es ist weil ein chatAt total falsch ist ^_^ Wenn du jetzt ein A eingibst würde er dem UTF8 Code davon nehmen und dir als xK eintragen ^_^
Schreibe statt:
char x = xKo.charAt(0);
char y = yKo.charAt(0);
xK = x;
yK = y;

Einfach:
yK = Double.parseDouble (xKo);
xK = Double.parseDouble (yKo);

Jetzt sollte es funktionieren!

P.S. Die eingabe Methode hat eig. in dem Objekt nichts zu suchen! Außer auf der Angabe ist das gefordert.

Gruß,
AntiMuffin
 

AntiMuffin

Bekanntes Mitglied
@Saheeda
Java benutzt nicht ASCII sondern UTF-8, siehst du wie folgt: System.out.println(System.getProperty("file.encoding"));

Aber ja wie @Saheeda schon sagt immer mit dem Wrapper Klassen parsen oder den Scanner statt dem BufferedReader benutzen.
 

sora_nai

Mitglied
Ich versuche gerade eine neue Methode "Skalarprodukt" zu schreiben.
Das habe ich bis jetzt:
Java:
public double skalarprodukt(R2 partner3) {
        return xK * partner3.xK + yK * partner3.yK;
    }

Wenn ich das Ergebnis in meiner Hauptklasse ausgeben will funktioniert natürlich meine Methode "augabe" nicht, da es sich ja nicht um einen Vektor handelt. Das mag jetzt vielleicht doof klingen, aber ich weiß nicht wie ich es ausgeben soll x.x
Also in der Hauptklasse folgendes:

vektor1.skalarprodukt(vektor2); //Die Vektoren existieren, keine Angst c:

und dann :D ?
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Oben