[Java] Celsius und Fahrenheit in Klasse konstruieren

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von LpunktEuler, 21. Januar 2009 .

  1. 21. Januar 2009
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Celsius und Fahrenheit in Klasse konstruieren

    Hallo,

    ich habe nicht nur ein Problem, sondern imense Schwierigkeiten beim Umgang mit Java.
    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)


    Ich zitiere

    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 throws{
    
    public void erwaermen(double delta);
    public void abkuehlen(double delta);
    
    }
    
    Ist das der einzige Inhalt? Ich habe wirklich keinen Plan.
    Ich weiß auch nicht, wie ich auf Celsius/Fahrenheit verweisen kann.
    Interface beinhaltet ja abstrakte Argumente, d. h. ich müsste 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
     
  2. 21. Januar 2009
    AW: Celsius und Fahrenheit in Klasse konstruieren

    1. Fehler:
    Interfaceklassen enthalten nur einen Methodenkopf:

    Code:
    public interface Temperatur{
     public void erwaermen(double delta) throws IllegalArgumentExeption;
     public void abkuehlen(double delta) throws IllegalArgumentExeption;
    }
    
    2. Fehler: Erst die Klasse von der geerbt wird, dann die Klasse die zu implementieren ist:
    Code:
    abstract class Celsius extends ZahlMitEinheit implements Temperatur {
    }
    
    LG
     
  3. 21. Januar 2009
    AW: Celsius und Fahrenheit in Klasse konstruieren

    Super, Dankeschön!

    Hat jemand noch eine Idee, was ich in die abstrakte Klasse Celsius reinschreiben muss? Irgendwie muss ich doch eine Temperatureingabe erwarten, um überhaupt die Temperatur erhöhen/abkuehlen zu lassen? Bzw ich muss mich doch irgendwie zwischen Celsius und Fahrenheit entscheiden können?
     
  4. 21. Januar 2009
    AW: Celsius und Fahrenheit in Klasse konstruieren

    Die Eingabe ist imaginär. Stell dir vor, sie wäre schon erfolgt und du liest den Wert nur noch ein (getWert() steht in der Superklasse ZahlMitEinheit).
    Du musst dich also nicht zwischen Celsius und Fahrenheit entscheiden, dies geschieht automatisch in der abstrakten Superklasse (diese sollte eine Klasse main enthalten, die zur Abfrage auffordert).

    Was du nur machen musst, ist die Subclass Celsius als Standardeinheit per "konverviereZuStandard" (Methode der Superklasse) zu deklarieren.

    Für die Ausgabe solltest du "EinheitsName" der Superklasse verwenden.

    Ich hoffe ich habe die geholfen, ansonsten gebe ich nun ab, da ich selbst nicht das Wissen besitze, dir die Aufgabe zu lösen (meine Javakenntnisse basieren eher auf theoretischer Basis).

    LG
     
  5. 21. Januar 2009
    AW: Celsius und Fahrenheit in Klasse konstruieren

    Habe nun folgendes da stehen:
    Code:
    abstract class Celsius extends ZahlMitEinheit implements Temperatur{
     ZahlMitEinheit Wert = new.Wert(double wert);
     
     public Celsius{
     if(erwaermen){return wert + delta; }
     if(abkuehlen){return wert - delta; }
     }
    } 
    Aber bekomme immer den Fehler <identifier expected> 2. Zeile.

    Kann mir jemand erklären, wie ich etwas aus der Superklasse einlese bzw. wie ich es so mache, wie Securom erklärte?

    Wäre supernett!
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.