I
IpostedIT
Gast
Hallo,
ich versuche mich gerade in Java einzulesen. Arbeiten damit fällt mir noch imens schwer, zumal ich nicht alle Grundlagen verstanden habe.
Nun habe ich jedoch folgende Aufgabe vor mir liegen (die ich im Netz gefunden habe) und wollte mal fragen, ob mir die vielleicht jemand lösen kann (habe leider keine Musterlösung dazu im Netz gefunden. Nur, wie man von Fahrenheit nach Celsius umrechnen kann und das benötige ich hier leider nicht).
Mein Problem: Ich weiß nicht, wie ich mit abstrakten Klassen oder Interfaceklassen umgehen muss bzw wie ich auf die jeweiligen Unterklassen Celsius oder Fahrenheit verweisen kann.
Die Aufgabe:
Also zu 1. dachte ich mir, dass es eine "IllegalArgumentException" sein muss. (Soweit hab ich zumindest in einem Java-Tutorial gelesen). Weiß auch nicht, wie die zu implementieren ist.
Interface Temperatur erstellen:
Ist das der einzige Inhalt? Ich habe wirklich keinen Plan.
Interface beinhaltet ja abstrakte Argumente, d. h. ich müsste z. B. Celsius folgendermaßen deklarieren:
Aber das funktioniert irgendwie nicht.
Kann ich auf die Argumente der Superklasse ZahlMitEinheit irgendwie verweisen?
Wäre schon super, wenn mir das jemand vormachen/mir helfen könnte.
Ich bekomm's echt nicht gebacken.
LG
ich versuche mich gerade in Java einzulesen. Arbeiten damit fällt mir noch imens schwer, zumal ich nicht alle Grundlagen verstanden habe.
Nun habe ich jedoch folgende Aufgabe vor mir liegen (die ich im Netz gefunden habe) und wollte mal fragen, ob mir die vielleicht jemand lösen kann (habe leider keine Musterlösung dazu im Netz gefunden. Nur, wie man von Fahrenheit nach Celsius umrechnen kann und das benötige ich hier leider nicht).
Mein Problem: Ich weiß nicht, wie ich mit abstrakten Klassen oder Interfaceklassen umgehen muss bzw wie ich auf die jeweiligen Unterklassen Celsius oder Fahrenheit verweisen kann.
Die Aufgabe:
Gegeben sei eine abstrakte Klasse ZahlMitEinheit zur Repräsentation von mit Einheiten behafteten Zahlen. Downloadlink:
http://www.xup.in/dl,26889831/ZahlMitEinheit.class/
Der Konstruktor ist gegeben durch die Signatur:
public ZahlMitEinheit(double wert);
Zusätzlich gibt es Methoden zum Zugriff auf den gespeicherten Wert:
public double getWert();
public void setWert(double wert);
Die abstrakten Methoden sind gegeben durch
public abstract String getEinheitsName();
public abstract ZahlMitEinheit konvertiereZuStandard();
welche den Namen der Einheit zurück gibt bzw. die Umwandlung in eine Standardeinheit übernimmt.
1. Entwerfen Sie ein Interface Temperatur zur Definition von Temperaturen. Teile des Interfaces sollen die Methoden erwaermen(double delta) und abkuehlen(double delta) sein zum Erhöhen bzw. Erniedrigen der aktuellen Temperatur um ein positives delta. Für unzulässige Werte von delta soll eine Exception geworfen werden.
2. Entwickeln Sie zwei Klassen Celsius und Fahrenheit, die jeweils sowohl Temperatur implementieren als auch ZahlMitEinheit erweitern. Die Standardeinheit soll Celsius sein.
Also zu 1. dachte ich mir, dass es eine "IllegalArgumentException" sein muss. (Soweit hab ich zumindest in einem Java-Tutorial gelesen). Weiß auch nicht, wie die zu implementieren ist.
Interface Temperatur erstellen:
Code:
public interface Temperatur{
public void erwaermen(double delta){
try{ wert=wert+delta };
catch{IllegalArgumentException};
public void abkuehlen(double delta);
try{ wert=wert-delta };
catch{IllegalArgumentException};
}
Ist das der einzige Inhalt? Ich habe wirklich keinen Plan.
Interface beinhaltet ja abstrakte Argumente, d. h. ich müsste z. B. Celsius folgendermaßen deklarieren:
Code:
abstract class Celsius implements Temperatur extends ZahlMitEinheit{
}
Aber das funktioniert irgendwie nicht.
Kann ich auf die Argumente der Superklasse ZahlMitEinheit irgendwie verweisen?
Wäre schon super, wenn mir das jemand vormachen/mir helfen könnte.
Ich bekomm's echt nicht gebacken.
LG