K
kwurzel
Gast
Guten Abend! Ich muss für eine Hausaufgabe ein Programm schreiben, das (ua.) verschiedene geometrische Objekte erstellt und für diese Volumen und Transportkosten berechnet. Dafür gibt es recht strenge Regeln, unter anderem mit Interfaces etc.
Ich habe testhalber eine Kugel erstellen wollen, hier erstmal der Quellcode:
Die Berechnung des Volumens ist für unterschiedliche Objekte (Kugel, Quader, Zylinder etc.) verschieden, weshalb ich sie in den jeweiligen Klassen definieren möchte. Wie schon an den Kommentaren zu erkennen ist möchte ich die Berechnung der Kosten gerne einmal in der Gegenstandsklasse definieren, da sie für alle Objekte gleich ist (Volumen mal 3).
Obiger Quelltext funktioniert, allerdings bekomme ich die kostenBerechnen() nicht in die Klasse Gegenstand. Was muss ich tun, damit ich diese nur einmal definieren muss?
Ich habe testhalber eine Kugel erstellen wollen, hier erstmal der Quellcode:
Code:
public abstract class Gegenstand {
public double volumen;
public int kosten;
public Gegenstand () {
}
public abstract void volumenBerechnen();
public void kostenBerechnen() {
// TODO - muesste allgemein hier definiert werden
}
}
public class Kugel extends Gegenstand {
double radius;
double volumen;
int kosten;
public Kugel (double r) {
radius = r;
this.volumenBerechnen();
this.kostenBerechnen(); // TODO - muesste allgemein in der abstr. Klasse
// Gegenstand definiert werden
}
public void volumenBerechnen() {
this.volumen = 4./3. * Math.PI * (Math.pow(radius, 3));
}
// Muss nach Gegenstand.java verschoben werden (s.o.)
public void kostenBerechnen() {
this.kosten = (int) (this.volumen) * 3;
}
}
public class TeleportationsTest {
public static void main(String[] args) {
Kugel Kugel1 = new Kugel (17);
System.out.println(Kugel1.volumen);
System.out.println(Kugel1.kosten);
}
}
Die Berechnung des Volumens ist für unterschiedliche Objekte (Kugel, Quader, Zylinder etc.) verschieden, weshalb ich sie in den jeweiligen Klassen definieren möchte. Wie schon an den Kommentaren zu erkennen ist möchte ich die Berechnung der Kosten gerne einmal in der Gegenstandsklasse definieren, da sie für alle Objekte gleich ist (Volumen mal 3).
Obiger Quelltext funktioniert, allerdings bekomme ich die kostenBerechnen() nicht in die Klasse Gegenstand. Was muss ich tun, damit ich diese nur einmal definieren muss?