Hallo,
ich hänge hier bei einer Aufgaben und würde mich über Euren Rat freuen. Es geht um geometrische Figuren. Ich möchte eine Methoden aus einer anderen Klasse aufrufen. Alle Klassen sind Public.
Hier eine UML-Übersicht:
In Klasse Quader möchte ich nun eine Methode ("diagonalenLaenge") aus der Klasse Rechteck aufrufen.
Meine unbeholfenen Versuche über Get haben bisher nicht funktioniert. Wie kann dies, am besten noch elegant, gehen? Über eine Rat wäre ich sehr dankbar.
Gruss
Nothing00
ich hänge hier bei einer Aufgaben und würde mich über Euren Rat freuen. Es geht um geometrische Figuren. Ich möchte eine Methoden aus einer anderen Klasse aufrufen. Alle Klassen sind Public.
Hier eine UML-Übersicht:

In Klasse Quader möchte ich nun eine Methode ("diagonalenLaenge") aus der Klasse Rechteck aufrufen.
Meine unbeholfenen Versuche über Get haben bisher nicht funktioniert. Wie kann dies, am besten noch elegant, gehen? Über eine Rat wäre ich sehr dankbar.
Gruss
Nothing00
Java:
package geometrie;
public class Rechteck extends Figur2D {
//Attribute
private int breite, laenge; //Breite in y-Richtung, Länge in x-Richtung
private double hypothenuse; //Hypothenuse als Attribut deklariert für die Berechnung der Quader
//Methoden
public Rechteck (Punkt bezug, int b, int l)// Konstruktor
//Verwendung von bezug, siehe Klasse Punkt.
{
super(bezug);
this.breite = b; assert b >= 1;
this.laenge = l; assert l >= 1;
}
public Rechteck() {}
public Rechteck (Punkt bezug, int b, int l, double hL)// Konstruktor
//Verwendung von bezug, siehe Klasse Punkt.
{
super(bezug);
this.breite = b; assert b >= 1;
this.laenge = l; assert l >= 1;
this.hypothenuse = diagonalenLaenge(laenge, breite) ;
}
//Zugriffsmethoden
public int getBreite()
{
return breite;
}
public void setBreite(int neueBreite)
{
assert neueBreite >= 1; //Zusicherung
}
public int getLaenge()
{
return laenge;
}
public void setLaenge(int neueLaenge)
{
assert neueLaenge >= 1; //Zusicherung
}
public double diagonalenLaenge(int l, int b)
{
return (Math.sqrt(Math.pow(laenge, 2) + Math.pow(breite, 2)));
}
public double getHypothenuse(int l, int b)
{
return hypothenuse;
}
//geerbte Methoden definiert im Rumpf ohne abstract
public double umfang()
{
return 2 * breite + 2 * laenge;//siehe Seite 224 oder Video 06 OOP2 32:00 oder Class Rechteck
}
public double flaeche()
{
return breite * laenge;
}
}
package geometrie;
public class Quader extends Figur3D {
//Attribute
private int hoehe;
//private double diagonalenLaenge;
//Methoden
public Quader(Rechteck r, int hoehe)//konstruktor
{
super(r);
this.hoehe = hoehe;
}
public Quader()
{}
/*public Quader(Rechteck r, int hoehe, double diagonalenLaenge)//meins
{
super(r);
this.hoehe = hoehe;
}*/
//Zugriffsmethoden
public Figur2D getBoden()
{
return super.getBoden();
}
public void setBoden(Figur2D boden)
{
super.setBoden(boden);
}
public int getHoehe()
{
return hoehe;
}
public void setHoehe(int neueHoehe)
{
assert neueHoehe >= 1; //Zusicherung
}
public double laengeRaumdiagonale()
{
getHypothenuse() instanceof Rechteck; //?????????????????????
return Math.sqrt(Math.PI * Math.pow(getLaenge()), 2) + Math.pow(h, 2)); //???????????
}
}
}