D
Destiny1985
Gast
Blöder Titel, mir fiel aber auf die schnelle nichts passenderes ein. Hab hier ein kleines Prog, mit dem ich gerade ein bissel OO übe. Es erstellt halt Boxen, nichts besonderes....hier erstmal der Code
Was nicht funktioniert, ist die letzte Instanzmethode, "groessereBox".
Die bekommt ein Box-Objekt übergeben, vergrößert das um 25 % und gibt ein neues Objekt zurück...soweit zur Theorie, in der Praxis geht das aber nicht....bei dem obigen Code erhalte ich die ausgabe
Sitze jetzt ne halbe Stunde hier und starre den Code an, komme nicht dahinter wieso er mir so einen Mist ausgìbt ?
mfg
Destiny
Code:
class BoxTester2
{
public static void main ( String[] args )
{
Box box = new Box( 2.5, 5.0, 6.0 );
System.out.println("Die normale Box");
System.out.println("***************");
System.out.println( "Flaeche: " + box.flaeche() );
System.out.println( "Volumen: " + box.volumen() );
System.out.println( "\nLaenge: " + box.getLaenge() +
" Hoehe: " + box.getHoehe() +
" Breite: " + box.getBreite() );
Box alte = new Box ( box );
System.out.println("\n\nDie Box, die die selbe Groesse hat wie eine andere");
System.out.println("**************************************************");
System.out.println( "Flaeche: " + alte.flaeche() );
System.out.println( "Volumen: " + alte.volumen() );
System.out.println( "\nLaenge: " + alte.getLaenge() +
" Hoehe: " + alte.getHoehe() +
" Breite: " + alte.getBreite() );
System.out.println("\n\nDie Box, die 25 % groesser ist");
System.out.println("******************************");
Box wirdGroesser = new Box ( box );
Box istGroesser = wirdGroesser.groessereBox(wirdGroesser);
System.out.println( "\nVolumen vorher: " + wirdGroesser.volumen());
System.out.println( "\nVolumen nachher: " + istGroesser.volumen());
}
}
class Box
{
// Instanzvariablen
private double laenge;
private double breite;
private double hoehe;
// Konstruktoren
Box(double breite, double hoehe, double laenge)
{
this.breite = breite;
this.hoehe = hoehe;
this.laenge = laenge;
}
Box( Box alteBox )
{
this.breite = alteBox.breite;
this.hoehe = alteBox.hoehe;
this.laenge = alteBox.laenge;
}
Box(double seite)
{
breite = seite;
hoehe = seite;
laenge = seite;
}
// Methoden
public double volumen()
{
return breite * hoehe * laenge;
}
public double flaeche()
{
return 2 * flaecheVorne() + 2 * flaecheUnten() + 2 * flaecheSeite();
}
public double getLaenge()
{
return laenge;
}
public double getHoehe()
{
return hoehe;
}
public double getBreite()
{
return breite;
}
private double flaecheVorne()
{
return (hoehe * laenge);
}
private double flaecheUnten()
{
return (breite * laenge);
}
private double flaecheSeite()
{
return (breite * hoehe);
}
public Box groessereBox(Box eineBox)
{
return new Box( 1.25 * this.breite + 1.25 * this.laenge + 1.25 * this.hoehe );
}
}
Was nicht funktioniert, ist die letzte Instanzmethode, "groessereBox".
Die bekommt ein Box-Objekt übergeben, vergrößert das um 25 % und gibt ein neues Objekt zurück...soweit zur Theorie, in der Praxis geht das aber nicht....bei dem obigen Code erhalte ich die ausgabe
Code:
....
Die Box, die 25 % groesser ist
*************************
Volumen vorher: 75.0
Volumen nachher: 4805.419921875
Sitze jetzt ne halbe Stunde hier und starre den Code an, komme nicht dahinter wieso er mir so einen Mist ausgìbt ?
mfg
Destiny