S
sushi_2k
Gast
Hallo Community,
ich stehe gerade leider total auf dem Schlauch und weiss nicht weiter.
Ich habe 3 Klassen geschrieben, für eine Flächenberechnung von Rechtecken und Quadraten.
Es funktioniert auch alles wie es soll, ausser das ich nicht weiss, wie ich von der Geo_Test, die Methode volumen von der classe Quader aufrufen soll. Da ich bei dem Testprogramm, noch das Volumen ausgeben möchte.
Klasse Rechteck:
Quader, von Rechteck abgeleitet
und die Testanwendung
ich stehe gerade leider total auf dem Schlauch und weiss nicht weiter.
Ich habe 3 Klassen geschrieben, für eine Flächenberechnung von Rechtecken und Quadraten.
Es funktioniert auch alles wie es soll, ausser das ich nicht weiss, wie ich von der Geo_Test, die Methode volumen von der classe Quader aufrufen soll. Da ich bei dem Testprogramm, noch das Volumen ausgeben möchte.
Klasse Rechteck:
Code:
package geometrische_figuren;
public class Rechteck {
double laenge;
double breite;
Rechteck()
{
laenge = 1;
breite = 1;
}
Rechteck(double l, double b)
{
if (l <= 0.0 || b <= 0.0)
{
laenge = 1;
breite = 1;
}
else
{
laenge = l;
breite = b;
}
}
double flaeche()
{
return (laenge * breite);
}
void druckeKantenlaengen()
{
System.out.println("Laenge: " + laenge);
System.out.println("Breite: " + breite);
}
}
Quader, von Rechteck abgeleitet
Code:
package geometrische_figuren;
public class Quader extends Rechteck {
double tiefe;
Quader()
{
laenge = 1;
breite = 1;
tiefe = 1;
}
Quader(double b, double l, double t)
{
breite = b;
laenge = l;
tiefe = t;
if (b <= 0.0)
b = 1.0;
else
breite = b;
if (l <= 0.0)
l = 1.0;
else
laenge = l;
if (t <= 0.0)
t = 1.0;
else
tiefe = t;
}
double flaeche()
{
return (2 * (breite * laenge + breite * tiefe + tiefe * laenge));
}
double volumen()
{
return (breite * laenge * tiefe);
}
void druckeKantenlaengen()
{
System.out.println("Laenge: " + laenge);
System.out.println("Breite: " + breite);
System.out.println("Tiefe: " + tiefe);
}
}
und die Testanwendung
Code:
package geometrische_figuren;
public class Geo_Test {
public static void main(String[] args)
{
Rechteck [] geo_feld = new Rechteck[5];
geo_feld[0] = new Quader();
geo_feld[1] = new Rechteck(10.0, 2.0);
geo_feld[2] = new Rechteck();
geo_feld[3] = new Quader(7.0, 3.0, 4.0);
geo_feld[4] = new Rechteck(-5.0, 9.0);
int zaehler_rechteck = 1;
int zaehler_quader = 1;
for (int i=0; i < geo_feld.length; i++)
{
String klasse;
System.out.println(geo_feld[i].getClass().getName());
klasse = geo_feld[i].getClass().getName();
if (klasse.equals("geometrische_figuren.Rechteck"))
{
System.out.println("Rechteck " + zaehler_rechteck);
System.out.println("Flaeche: " + geo_feld[i].flaeche());
geo_feld[i].druckeKantenlaengen();
System.out.println("");
zaehler_rechteck++;
}
else
{
System.out.println("Quader " + zaehler_quader);
System.out.println("Flaeche:" + geo_feld[i].flaeche());
//System.out.println("Flaeche:" + geo_feld[i].volumen()); <== Geht nicht...
geo_feld[i].druckeKantenlaengen();
System.out.println("");
zaehler_quader++;
}
}
}
}