Celsius -> Fahrenheit / Strukturierung in statischen Methoden

Hallo,
ich habe ein Problem mit meiner Hausaufgabe. Mein Fortschritt bislang befindet sich im Anhang und die Aufgabenstellung werde ich unten hinzufügen. Die Klasse "Temperatur" ließ sich einwandfrei kompilieren. Nun weiß ich leider nicht, wie ich auf die beiden Methoden von "TestTemperatur" aus zugreifen kann. Es kann natürlich sein, dass auch "Temperatur" schon ein völlig falscher Ansatz ist. Ich bin noch Java-Neuling. Würde mich über jegliche Hilfe freuen.

Verwenden Sie statische Methoden, um Ihren Programmcode zu strukturieren. Erstellen Sie hierzu eine Klasse Temperatur in einer seperaten Datei, in der sie zwei Methoden implementieren:
• celsiusToFahrenheit: Nimmt die Temperatur in Celsius als Parameter und gibt sie umgerechnet in Fahrenheit zurück.
• ausgeben: Nimmt die Temperatur in Celsius und Fahrenheit als Parameter und macht eine Ausgabe wie im ursprünglichen Programmcode. Die Methode gibt nichts zurück.
Verändern Sie nun die main-Methode der Klasse TestTemperatur und ersetzen Sie die Berechnung der FahrenheitWerte sowie die Ausgabe der Celsius- und Fahrenheit-Temperatur durch die entsprechenden Methodenaufrufe aus der Klasse Temperatur.Unbenannt.PNGUnbenannt2.PNGUnbenannt3.PNG
 

LimDul

Top Contributor
Code bitte in Code Tags posten, nicht als Screenshots.

Punkt 1:
• celsiusToFahrenheit: Nimmt die Temperatur in Celsius als Parameter und gibt sie umgerechnet in Fahrenheit zurück.
Die Funktion hat ein Parameter, den musst du beim Aufruf übergeben, beispiel Temperatur.celsiusToFahrenheit(37.0); (Kleiner Tipp - Ist das Terminal.askDouble dann an der Stelle sinnvoll)

• ausgeben: Nimmt die Temperatur in Celsius und Fahrenheit als Parameter und macht eine Ausgabe wie im ursprünglichen Programmcode. Die Methode gibt nichts zurück.
Die Methode soll zwei Parameter übergeben bekomme und nichts zurückgeben. Das ist auch so definiert. Du rufst sie aber ohne Parameter auf und versucht eine Rückgabe zu speichern.
 
Code bitte in Code Tags posten, nicht als Screenshots.

Punkt 1:

Die Funktion hat ein Parameter, den musst du beim Aufruf übergeben, beispiel Temperatur.celsiusToFahrenheit(37.0); (Kleiner Tipp - Ist das Terminal.askDouble dann an der Stelle sinnvoll)


Die Methode soll zwei Parameter übergeben bekomme und nichts zurückgeben. Das ist auch so definiert. Du rufst sie aber ohne Parameter auf und versucht eine Rückgabe zu speichern.
Vielen Dank für deine Antwort. Ich habe nun nochmal etwas rumprobiert und bin der Lösung, so glaube ich, etwas näher gekommen.
[CODE lang="java" title="Temperatur"]class Temperatur {

public static double celsiusToFahrenheit (double celsius){

celsius = 40.1;

double fahrenheit = celsius*9.0/5.0 + 32;

return fahrenheit;

} [/CODE]

Ich habe nun das Terminal.askDouble ersetzt und...
[CODE lang="java" title="TestTemperatur"]public class TestTemperatur {

public static void main(String[] args) {

double fahr = Temperatur.celsiusToFahrenheit(40.1);
Temperatur.ausgeben(40.1,fahr);
}
}
[/CODE]
...Parameter hinzugefügt. Jedoch verstehe ich an diesem Punkt nicht ganz, aus welchem Grund ich dennoch die Fehlermeldung:Unbenannt4.PNG
erhalte, da zuvor ja nach einem double verlangt wurde. Ich versuchte mehrere Teile der Methode zu ändern, bislang ohne Erfolg
 
K

kneitzel

Gast
Also dein geposteter Code und die Fehlermeldung stimmen nicht überein.

Mit dem gezeigten Code solltest Du diese Fehlermeldung nicht bekommen.
 
Also dein geposteter Code und die Fehlermeldung stimmen nicht überein.

Mit dem gezeigten Code solltest Du diese Fehlermeldung nicht bekommen.
Nun in der Klasse Temperatur befindet sich auch noch die Methode ausgeben.
[CODE lang="java" title="Temperatur"]class Temperatur {

public static double celsiusToFahrenheit (double celsius){

celsius = 40.1;

double fahrenheit = celsius*9.0/5.0 + 32;

return fahrenheit;

}

public static void ausgeben (double celsius, double fahrenheit){

System.out.println("Die Temperatur "+celsius+" Grad Celsius entspricht "+fahrenheit+ " Grad Fahrenheit.");
}

}[/CODE]

Jedoch erschließt sich mir nicht, warum der Fehler mit dieser Methode zusammenhängen sollte, da es sich ja um celsiusToFahrenheit in der Klasse TestTemperatur handelt.
Fakt ist jedoch, dass genau dieser Fehlercode bei eben diesem Programm angezeigt wird
 

DrPils

Bekanntes Mitglied
Deine Methode ausgeben gibt void zurück, also sozusagen nichts.
Das kannst du einer double variable (oder sonst einer Variable) nicht zuweisen.


Edit:
Habe mich verguckt
 
K

kneitzel

Gast
Also ich habe Deinen Code 1:1 kopiert und es kommt keinerlei Fehlermeldung.

Sicher, dass Du den Code an der richtigen Stelle hast, du Dateien nicht mehrfach hast und dann evtl. die falsche editierst oder so ... Und du natürlich alles gespeichert hast ...
 
Also ich habe Deinen Code 1:1 kopiert und es kommt keinerlei Fehlermeldung.

Sicher, dass Du den Code an der richtigen Stelle hast, du Dateien nicht mehrfach hast und dann evtl. die falsche editierst oder so ... Und du natürlich alles gespeichert hast ...
Ich habe den Fehler gefunden. Ich vergaß, den Speicherort der Temperatur class anzupassen und arbeitete so mit einem alten Code. Das kompilieren funktionierte nun. Vielen Dank.
 

Ähnliche Java Themen

Neue Themen


Oben