Java-Programmierung

hallo,
ich hab ein Problem bei einer Programmierung. Bei dem Programm soll ich eine Klasse Vektor3D2 schreiben. Das hab ich auch gemacht und eigentlich geht das auch. Aber es liest keine Werte ein. Wenn ich auf Ausführen gehe schreibt er nur hin:
x-Komponente:
y-Komponente:
z-Komponente:
Betrag 0.0
Wäre nett wenn ihr mir helfen könntet.
lg

public class Vektor3D2 {

private double x;
private double y;
private double z;
private double betrag;
private boolean einheitsvektor;

//Standard Konstruktor

public Vektor3D2(){
this.x=0.0;
this.y=0.0;
this.z=0.0;
this.betrag=0.0;
this.einheitsvektor=false;

}
//Komponenten werden gleichgesetzt

public Vektor3D2(double x, double y, double z){
this.x=x;
this.y=y;
this.z=z;
this.betrag=0.0;
this.einheitsvektor=false;
}
//Benutzerabfrage
public void einlesen(){
System.out.println("x-Komponente: " );
System.out.println("y-Komponente: " );
System.out.println("z-Komponente: ");
}
public void ausgeben(){
System.out.println("x-Komponente: "+x);
System.out.println("y-Komponente: "+y);
System.out.println("z-Komponente: "+z);
}
public void berechneBetrag(){
betrag=Math.sqrt(x*x+y*y+z*z);
if (betrag==1.0){
einheitsvektor=true;
}
}
public double getbetrag(){
return betrag;
}
public boolean istEinheitsvektor(){
return einheitsvektor;
}

public static void main(String[] args){
Vektor3D2 meinVektor= new Vektor3D2();
meinVektor.einlesen();
meinVektor.berechneBetrag();
if(meinVektor.istEinheitsvektor()){
System.out.println(„Einheitsvektor“);
}else{
System.out.println("Betrag "+meinVektor.getbetrag());

}
}

}

siehe: http://www.koders.com/java/fidE095DD3355680FA9A6840C…

Das ist klar, dass das nicht funktioniert, da du die Werte ja gar nicht einliest!

Du musst die Eingabe des Users einlesen, z.B. so:

final BufferedReader inputReader = new BufferedReader(
new InputStreamReader(System.in));
final String cmd = inputReader.readLine().trim();

Dann hast Du in der Variable cmd die Usereingabe. Die musst Du dann noch in ein double umwandeln:

final double x = Double.parseDouble(cmd);

Das musst Du für alle 3 Variablen machen. Die Werte übergibst Du dann an den Konstruktor von Deiner Klasse.

Hallo minchen1506,

das soll dein Programm auch tun :wink:
In der Methode ‚einlesen‘ liest du nicht von der Konsole ein, sondern gibst nur über System.out.println u.a. den String ‚x-Komponente…‘ auf der Konsole aus.

Unter Java 6 kannst du folgendes Codefragment verwenden, um Daten über die Tastatur einzulesen:

Console cons = System.console();
cons.printf(„x-Komponente…:“);
x-Komponente = cons.readLine();

Ich hoffe, dies hilft dir weiter.

Viele Grüße
Thomas

Was @Thomas sagt, ist eine Möglichkeit.
Eine andere Möglichkeit ist die Eingabe über ein JOptionPane.
Also z.B.
public void einlesen() {
this.x = Integer.parseInt(JOptionPane.showInputDialog(„x-Achse“));
this.y = Integer.parseInt(JOptionPane.showInputDialog(„y-Achse“));
this.z = Integer.parseInt(JOptionPane.showInputDialog(„z-Achse“));
// usw.
}