Hallo, ich habe erst angefangen mit Java zu programmieren.
Ich soll in einem Programm bei Eingabe von s, m oder h die Liedlänge in Sekunden, Minuten oder Stunden herausgeben. Folgende Methode in Sekunden war schon im Qulltext vorhanden, da man zur Instanzierung die Länge des Liedes in Sekunden angeben musste:
public int gibLaenge() {
return laenge;
}
Mein erster Ansatz für eine Variable wäre :
public double gibFormatierteLaenge(char format) {
char s; char m; char h; int gibLaenge;
if (format==s)
{ }
return laenge
}
Jedoch kommt bei mir als Fehlermeldung dass die Variable s nicht initialisiert sei .
Hoffe ihr könnt mir helfen
Wie initiialisiert man die char ?
If bedingung wollte ich die unterschiedlichen möglichkeiten s, m und h unterscheiden,wenn man sie eintippt.. Also if s... else if m.. else h
das Datenfeld laenge ist schon im Quelltext vorhanden. Bei m will ich die laenge durch 60 teilen und bei h die laenge durch 3600 teilen.
Hab net so den durchblick da ich erst angefangen habe java zu lernen :/
Schon möglich, aber eben nicht in der Methode "gibFormatierteLaenge"!!
Und eine Rückgabe würde dort auch nur dann Sinn machen, wenn 'laenge' in irgendeiner Form (neu) berechnet würde, oder ?
Bin nun soweit gekommen, jedoch will ich als laenge die benutzen die ich am anfang der Erzeugung angegeben habe, . Wie initialisiere ich diese Variable denn ? int laenge = ?
Allerdings frage ich mich, was bei Dir 'laenge' inhaltlich sein soll ??
Du müsstet doch hierfür einen Wert übergeben, der in die Berechnungen einfließt ... bspw. die im ersten Post genannte 'Liedlänge'
Dann fiel mir noch auf:
Java:
return laenge;
Dies ist ein Integer!!
Die Methode soll aber einen 'Double'-Wert zurückgeben !!
Mit dem Programm kann ich Instanzen erzeugen, wo ich ein Titel, Interpreten und Länge in Sekunden eingebe. Nun will ich die Länge die ich benutzt habe um die Instanz zu erzeugen benutzen um die jeweilige Länge in Sekunde, Minuten und Stunden zurückzugeben.
Mit dem Programm kann ich Instanzen erzeugen, wo ich ein Titel, Interpreten und Länge in Sekunden eingebe. Nun will ich die Länge die ich benutzt habe um die Instanz zu erzeugen benutzen um die jeweilige Länge in Sekunde, Minuten und Stunden zurückzugeben.
Hey, glaub die Frage habe ich zu kompliziert dargestellt. Ich will einen Wert aus einer anderen Methode auf die jetztige Methode übertragen. Bei der 2. Zeile , wo das ? ist,will ich einen Wert aus einer anderen Methode übertragen. Hoffe jetzt ist es klarer.
Code:
public double gibFormatierteLaenge(char format) {
char s='s'; char m='m'; char h='h'; double laenge=?;
if (format==s)
{
}
else if (format==m) {
laenge= laenge/60;
}
else if (format==h) {
laenge= laenge/3600;
}
else {
System.out.println("Ungültig");
laenge=-1;
}
return laenge;
}
dann bau Dir entweder eine entsprechende Get-Methode, mit der Du an der gewünscheten Stelle den Wert holst und zuweist
oder übergib ihn bei Aufruf der Methode 'gibFormatierteLaenge' als weiteren Parameter (vermutlich der bessere Weg) !!
Das alles klärt aber immer noch nicht Dein Problem mit dem falschen return-Wert (s. o.)