ToString()-Methode richtig benutzen

AS

Mitglied
Guten Abend,

ich habe folgendes Programm in Java geschrieben:

Java:
import java.io.*;


public class Fahrzeug  {
	static String Farbe;
	static double anzahldaecher;
	static double anzahlfahrer;
	static double x;
	static double y;
	static double z;
	
	public Fahrzeug(String a, double b, double c){
		this.anzahldaecher=b;
		this.anzahlfahrer=c;
		this.Farbe=a;
		
	
	}
		
	public String ToString(){
		
	return "Anzahl an Dächern:" + anzahldaecher + ", Anzahl an Fahrern:"+ anzahlfahrer + ", Farbe:" + Farbe;	
		
	}
	
	public static class PKW extends Fahrzeug {
		String Hersteller;
		String Modell;
		
		public PKW (String d, String e){
			super();
			
			Hersteller=d;
			Modell=e;
			
			
			
			
	}
		
		public String ToString(){
			
			return"Hersteller:" + Hersteller + ", Modell:"+ Modell ;	
				
			}
			
	}
	
	
		
		
		
	
	public Fahrzeug(){
		
		
	}
	public static void main(String[] args)  throws IOException {
		
		
		
		System.out.println("Wie viele Fahrzeuge wollen sie erzeugen?");
		
		double x=0;
		    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		    String input = in.readLine();
		     
		    if (isDouble(input)) {
		         x = Double.valueOf(input).doubleValue();
		        System.out.println("Ihre Zahl: " + x);
		    } else {
		        System.out.println("Leider kein Double gefunden.");
		    }
		
		
		;
		//Zahl einlesen
		int xx=(int) x;
		
		for(int i=0;i<x;i++){

			Fahrzeug [] Fahrzeuge = new Fahrzeug [xx];
			
			Fahrzeuge[i]=new Fahrzeug();
			
			
		}
		
		
		System.out.println("Wie viele davon sollen PKWs sein?");
		
		
		double y=0;
		
		BufferedReader ja = new BufferedReader(new InputStreamReader(System.in));
	    String nein = ja.readLine();
	     
	    if (isDouble(nein)) {
	         y = Double.valueOf(nein).doubleValue();
	        System.out.println("Ihre Zahl: " + y);
	    } else {
	        System.out.println("Leider kein Double gefunden.");
	    }
		
	    int yy= (int) y;
	    PKW [] PKWs = new PKW[yy];
		for (int i=0; i<y; i++){
			
			System.out.println("Von welchem Hersteller ist der "+(i+1)+".te PKW?");
			
			BufferedReader hersteller1 = new BufferedReader(new InputStreamReader(System.in));
			String hersteller = hersteller1.readLine();
			
			
			
			
			System.out.println("Welches Modell ist der "+(i+1)+"te PKW?");
			
			BufferedReader modell1 = new BufferedReader(new InputStreamReader(System.in));
			String modell = modell1.readLine();
			
			
			
			PKWs[i]= new PKW(hersteller, modell);
			
		}
		//Ich habe nach genau dem gleichen Muster auch noch eine For-Schleife implementiert,die //Objekte der Klasse Fahrzeug erzeugt. Ist aber überflüssig, deshalb lasse ich sie mal weg.

System.out.println("Die Daten zu den PKWs:");
		for(int i=0; i<yy; i++) {
		System.out.print((i+1)+".ter PKW:");

		PKWs[i].toString();
		System.out.println();
		
		}
		}

public static boolean isDouble(String string) {
    try {
        Double.valueOf(string);
        return true;
    } catch (NumberFormatException e) {
        return false;
    }
}	
	
}

Das Programm läuft so auch, allerdings tut es nicht, was ich will. Ich würde am Ende gerne mit der ToString()-Methode die Attribute der einzelnen Objekte ausgeben lassen. Allerdings funktioniert das nicht, sondern ich bekomme lediglich folgende Ausgabe auf der Konsole:

"
Die Daten zu den PKWs:
1.ter PKW:
2.ter PKW:
3.ter PKW:
"

Warum funktioniert das hier mit meiner ToString() Methode nicht?

Würde mich über Hilfe sehr freuen.

Gruß AS
 
Ich hab zwar den Code nur überfolgen, aber die ToString()-MEthode gibt wie der Name schon sagt einen String zurück. Dieser muss natürlich mit System.out.println() ausgegeben werden, also ca:
Code:
System.out.println(PKWs[i].toString());
 
Hallo JCODA,

danke schön für deine Antwort. Habs ausprobiert und funktioniert wunderbar!

Danke schön und schönen Abend noch!

Gruß AS
 
Ich glaube du hast da noch einen Fehler: Java unterscheidet zwischen ToString und toString. Nur die letztere ist die, die Java automatisch nutzt, um aus einem Objekt einen String zu erstellen.
 

Zurück
Oben