Guten Abend,
ich habe folgendes Programm in Java geschrieben:
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 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