Hi,
ich habe folgendes Problem: Ich hab in einer Methode einen Vektor per Eingabe erstellt und möchte in einer anderen Methode diesen ausgeben. Ich möchte dies in einer anderen Methode haben, da ich es über eine andere Klasse aufrufen möchte.
Java:
// Vektor eingebenprivatestaticVectorVektor(){Scanner sc =newScanner(System.in);Vector<Double> v =newVector<Double>();System.out.print("Geben sie die Dimensionen des Vektors ein: ");intDimension= sc.nextInt();System.out.print("Geben sie den Vektor ein: \n");for(int i =0; i <Dimension; i++){int j = i+1;System.out.print("Geben sie Wert "+ j +" ein: ");
v.add(sc.nextDouble());}return v;}// Vektor ausgebenpublicstaticvoidAusgabe(){}
^ Hier soll dann der Vektor ausgelesen werden. Wie mache ich das?
publicstaticvoidmain(String[] args){Vector vec =Vektor();Ausgabe(vec);}// Vektor eingebenprivatestaticVectorVektor(){Scanner sc =newScanner(System.in);Vector<Double> v =newVector<Double>();System.out.print("Geben sie die Dimensionen des Vektors ein: ");intDimension= sc.nextInt();System.out.print("Geben sie den Vektor ein: \n");for(int i =0; i <Dimension; i++){int j = i+1;System.out.print("Geben sie Wert "+ j +" ein: ");
v.add(sc.nextDouble());}return v;}// Vektor ausgebenpublicstaticvoidAusgabe(Vector v){//...}
Methodennamen sollte man übrigens klein schreiben.
Hi nochmal.
Jetzt ist es so, dass ich durch die Variable Vector v in der Ausgabe() Methode beim aufrufen der Methode den Fehler bekomme, dass er einen Vektor für Ausgabe() haben möchte, aber diesen lege ich ja erst nach dem starten des Programms fest.
Java:
// Vektor eingebenstaticVectorVektor(){Scanner sc =newScanner(System.in);Vector<Double> v =newVector<Double>();System.out.print("Geben sie die Dimensionen des Vektors ein: ");intDimension= sc.nextInt();System.out.print("Geben sie den Vektor ein: \n");for(int i =0; i <Dimension; i++){int j = i+1;System.out.print("Geben sie Wert "+ j +" ein: ");
v.add(sc.nextDouble());}return v;}// Vektor ausgebenpublicstaticvoidAusgabe(Vector<Double> v){System.out.println("Vektor v:"+ v);}publicstaticvoidmain(String[] args){
vektor2.Vektor();
vektor2.Ausgabe();
Er möchte für vektor2.Ausgabe(); einen Wert, den ich aber erst in vektor2.Vektor(); festlege.
Wie kann man das lösen?
Wenn Du Generics verwendest, dann musst Du erst einmal den richtigen Rückgabetyp angeben:
Java:
staticVector<Double>Vektor(){
Und dann musst Du das zurückgegebene Vector-Objekt halt an die Ausgabe-Methode übergeben:
Java:
Vector<Double> v = vektor2.Vektor();
vektor2.Ausgabe(v);// oder kurz:
vektor2.Ausgabe(vektor2.Vektor());
Übrigens: per Konvention schreibt man Namen von Variablen, Methoden und Parametern in lowerCamelCase. Die Methode müsste eigentlich vektor und nicht Vektor heißen. Umgekehrt schreibt man Namen von Typen in UpperCamelCase. Dein vektor2 müsste demnach Vektor2 heißen.