Array-objekte,. Es wird ein Fehler ausgegeben

  • Themenstarter Themenstarter blacko
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

blacko

Gast
Halllo ich hab ein Bsp.
eine Klasse Bahnhof, die 5 Abstellgleise enthält.
Klasse ein Array mit Abstellgleis-Objekten mit zufälligen Gleislängen zwischen 100 und 300 Metern.

und das hab ich schon


Code:
package delil;

public class Bahnhof {
	private Abstellgleis[] gleislaenge;
	private int gesgewicht;
	private int laenge;
	
	public Bahnhof(){
		Abstellgleis[] gleislaenge=new Abstellgleis[5];
		int laenge2=0, gewicht=0 , gewichtprom=120;
		for(int z=0; z<gleislaenge.length; z++)	{
			laenge2=(int)((Math.random()*201 )+ 2);
			gewicht=gewichtprom*laenge2;
			this.gesgewicht=this.gesgewicht+gewicht;
			laenge=laenge2;
			getLaenge();
			gleislaenge[z]=new Abstellgleis(laenge2, gewicht);
		}
	}
	
		
	public int getGesamtgewicht()	{
		return gesgewicht;
	}
	public int getLaenge()	{
		return laenge;
	}
}

und hier die Abstellgleis-Klasse

Code:
package delil;

public class Abstellgleis {
	private int gewicht;
	private int laenge2;
	
	public Abstellgleis(int laenge, int gewicht) {
		this.laenge2=laenge;
		this.gewicht=gewicht;
	}
	
	public int getLaenge2()	{
		return laenge2;
	}
	
	public int getgewicht()	{
		return gewicht;
	}
	
	public String toString()	{
		String x="";
		x="Die Länge des Bahnhofes: "+ laenge2 + '\n' + "und das Gewicht: "
		+gewicht;
		return x;
	}
}

und hier die Ausgabe-Methode

Code:
package delil;
import javax.swing.*;
public class einaus {
	public static void main(String[] args)	{
		JOptionPane.showMessageDialog(null, "Es werden 5 mal 5 verschiedene Gewichte und Längen ausgegeben");
		String x="";
		Abstellgleis[] gleis=new Abstellgleis[5];
		Bahnhof bahnhof=new Bahnhof();
		for(int z=0; z<gleis.length; z++)	{
			gleis[z]=new Abstellgleis(bahnhof.getLaenge(), bahnhof.getGesamtgewicht());
			x=x+gleis.toString()+'\n';
		}
		
		JOptionPane.showMessageDialog(null, x);
	}
}

Ich glaube das Problem liegt hier aber, ich kann das Problem nicht lösen

Code:
gleis[z]=new Abstellgleis(bahnhof.getLaenge(), bahnhof.getGesamtgewicht());


mfg
 
Was kommt denn für ein Fehler (wenn du die genaue Fehlermeldung hier postest, ist es einfacher den Fehler zu finden OHNE deinen ganzen Code durchzugucken/testen zu müssen)?
 
Ausgabe:

[Ldelil.Abstellgleis;@198cb3d
[Ldelil.Abstellgleis;@198cb3d
[Ldelil.Abstellgleis;@198cb3d
[Ldelil.Abstellgleis;@198cb3d
[Ldelil.Abstellgleis;@198cb3d

mfg
 
das programm geht doch ned :

Das programm gibt 5mal das selbe aus:

Die Länge des Bahnhofes: 112
und das Gewicht: 65t (das macht 65520kg)
Die Länge des Bahnhofes: 112
und das Gewicht: 65t (das macht 65520kg)
Die Länge des Bahnhofes: 112
und das Gewicht: 65t (das macht 65520kg)
Die Länge des Bahnhofes: 112
und das Gewicht: 65t (das macht 65520kg)
Die Länge des Bahnhofes: 112
und das Gewicht: 65t (das macht 65520kg)

hmhm ich glaub ich muss noch irgendwas mit den Array-Objekten machen.

mfg
 
> gleis[z]=new Abstellgleis(bahnhof.getLaenge(), bahnhof.getGesamtgewicht());

hier übergibst du immer die gleichen Werte,

innerhalb von Bahnhof erstellst du ein Array mit Zufallswerten,
aber in der main-Methode andere Abstellgleis-Objekte
 
ich hab die main-methode so geändert damit das Programm 5 verschiedene Längen und Gewichte ausgibt:

zuerst mal die Fehlermeldung^^:

Exception in thread "main" java.lang.NullPointerException
at delil.einaus.main(einaus.java:10)


Code:
package delil;
import javax.swing.*;
public class einaus {
	public static void main(String[] args)	{
		JOptionPane.showMessageDialog(null, "Es werden 5 mal 5 verschiedene Gewichte und Längen ausgegeben");
		String x="";
		Abstellgleis[] gleis=new Abstellgleis[5];
		Bahnhof[] bahnhof=new Bahnhof[5];
		for(int z=0; z<gleis.length; z++)	{
			gleis[z]=new Abstellgleis(bahnhof[z].getLaenge(), bahnhof[z].getGesamtgewicht());
			x=x+gleis[z].toString()+'\n';
		}
		
		JOptionPane.showMessageDialog(null, x);
	}
}


ich glaube der Fehler ist hier:
Code:
gleis[z]=new Abstellgleis(bahnhof[z].getLaenge(), bahnhof[z].getGesamtgewicht());


mfg
 
Danke

was würde ich nur ohne diesem Forum tun....

danke vielmals :applaus: :applaus: :applaus:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben