Return Anweisung von Methoden

addu

Mitglied
hallo,
ich hab ein grundlegendes Verständnisproblem mit der Return Anweisung von Methoden. Und zwar habe ich bei the java tutorials folgenden code ausschnitt versucht ausgeben zu lassen:

Java:
public double computePayment(double loanAmt,
                             double rate,
                             double futureValue,
                             int numPeriods) {
    double interest = rate / 100.0;
    double partial1 = Math.pow((1 + interest), -numPeriods);
    double denominator = (1 - partial1) / interest;
    double answer = (-loanAmt / denominator)
                    - ((futureValue * partial1) / denominator);
    return answer;
}

Dazu habe ich eine neue Klasse erstellt und Konstruktoren und Fields eingefügt:
Java:
public class Payment {
	double loanAmt, rate, futureValue;
	int numPeriods;
	double answer = 0;
	
	public Payment(){
		loanAmt = 100;
		rate = 10;
		futureValue = 20;
		numPeriods = 3;
	}
	
	public Payment(double startLoanAmt, 
				   double startRate, 
				   double startFutureValue, 
				   int startNumPeriods){
		loanAmt = startLoanAmt;
		rate = startRate;
		futureValue = startFutureValue;
		numPeriods = startNumPeriods;
	}
	public double computePayment(double loanAmt,
								 double rate,
								 double futureValue,
								 int numPeriods) {
		double interest = rate / 100.0;
		double partial1 = Math.pow((1 + interest), -numPeriods);
		double denominator = (1 - partial1) / interest;
		double answer = (-loanAmt / denominator) - ((futureValue * partial1) / denominator);
		return answer;
	}
}

Die folgende Klasse sollte jetzt zwei objekte der klasse Payments erzeugen und dann die Kosten für das jeweilige objekt ausgeben:

Java:
public class DisplayPayment {
	public static void main(final String[] args){
		
		Payment MyPayment = new Payment();
		Payment MyPaymentV = new Payment(200, 20, 40, 3);
		
		
		System.out.println(MyPayment);
		System.out.println(MyPaymentV);
	}
}

Wenn ich diese nun ausführe, kommen irgendwelche Zeichen raus, aber nicht die zahl die ich ja eigentlich berechnet haben wollte. Daher versteh ich nicht was in der methode computePayments bei der return anweisung wohin zurückgegeben wird !:bahnhof:
 

ARadauer

Top Contributor
du bist ja nicht den Rückgabewert von computePayment aus sondern. Das Objekt an und für sich ...

System.out.println(MyPayment.computePayment());

Und ach ja Variablen schreibt man klein...
 

addu

Mitglied
achso.
ok ja du meinst die MyPayments müssten myPayments heissen, hab aber konstruktoren jetzt zum ersten mal aufgerufen und war mir nicht ganz sicher :oops:
 

addu

Mitglied
System.out.println(MyPayment.computePayment());

leider kommt dann folgender fehler:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method computePayment(double, double, double, int) in the type Payment is not applicable for the arguments ()
The method computePayment(double, double, double, int) in the type Payment is not applicable for the arguments ()

at DisplayPayment.main(DisplayPayment.java:9)
 
S

SlaterB

Gast
tja, Parameter musst du übergeben, ist das so schwer zu erkennen?
frag jetzt nicht uns, welche ;)

edit:
was ist denn mit den in den Klassenattributen gespeicherten Werten, haben die eine Bedeutung?
 

addu

Mitglied
ich wollte die aus den parametern übergeben

kann man eigentlich die klassenattribute am anfang weglassen? ich hab sie wegem den konstruktor hingeschrieben.
 
S

SlaterB

Gast
aus dem Konstruktor dann auch raus sowie die Klassenattribute weg,
und 200, 20, 40, 3 bei der Methode mitgeben
 

addu

Mitglied
aus dem Konstruktor dann auch raus sowie die Klassenattribute weg,
und 200, 20, 40, 3 bei der Methode mitgeben

also anstatt double loanAmt usw. einfach die konkreten werte hineinschreiben?
müsste ich dann nicht jedesmal wenn ich ein neues objekt erzeugen will dieselbe methode immer und immer wieder schreiben?

ich habe mir vorgestellt dass ich in der klasse DisplayPayments objekte von Payments erzeugen kann und mit ihnen Parameter übergebe, die dann in Payments berechnet werden und dann in DisplayPayments ausgegeben werden.
ich hoffe ich hab das jetzt nicht zu umständlich formuliert ^^
 
S

SlaterB

Gast
> also anstatt double loanAmt usw. einfach die konkreten werte hineinschreiben?

mit weg meine ich wirklich weg, statt Variablen zu deklarieren richtige Werte hinzuschreiben macht selten Sinn,
aber im Grunde ist das alles so mehrdeutig, dass ich eigentlich gar nicht weiß, was du meinst,

> müsste ich dann nicht jedesmal wenn ich ein neues objekt erzeugen will dieselbe methode immer und immer wieder schreiben?

wie soll denn denn das funktionieren? wenn man ein Objekt anlegt kann man überhaupt gar nicht Methoden neu schreiben,
jedenfalls nicht mit einfachen Mitteln,

---

> ich habe mir vorgestellt dass ich in der klasse DisplayPayments objekte von Payments erzeugen kann und mit ihnen Parameter übergebe, die dann in Payments berechnet werden und dann in DisplayPayments ausgegeben werden.

klar, so ist der Plan, also machen,
entweder die Werte im Konstruktor übergeben, merken und in der Methode verwenden (ohne neue Parameter)
oder alternativ der Konstruktor leer und erst beim Methodenaufruf die Werte übergeben
 

addu

Mitglied
meintest du die methode in payments selbst oder den aufruf in der displayPayments klasse ?
und die klassenattribute krieg ich nicht weg, weil dann bekomme ich die fehlermeldung

"Exception in thread "main" java.lang.Error: Unresolved compilation problems:
loanAmt cannot be resolved
rate cannot be resolved
futureValue cannot be resolved
numPeriods cannot be resolved

at Payment.<init>(Payment.java:11)
at DisplayPayment.main(DisplayPayment.java:6)"
 
S

SlaterB

Gast
wie gesagt, wenn die Attribute weg gehen, dann auch die Konstruktorparameter, die gehören zusammen,

> meintest du die methode in payments selbst oder den aufruf in der displayPayments klasse ?

was soll ich zu so einen Satz sagen, in jedem meiner Postings meine ich etwas derartiges, ja
 

addu

Mitglied
wie gesagt, wenn die Attribute weg gehen, dann auch die Konstruktorparameter, die gehören zusammen,

> meintest du die methode in payments selbst oder den aufruf in der displayPayments klasse ?

was soll ich zu so einen Satz sagen, in jedem meiner Postings meine ich etwas derartiges, ja

willste mich jetzt verarschen oder warum antwortest du auf eine oder-frage mit einem ja?
tut mir ja wirklich leid das ich nen java anfänger bin und deshalb verwirrende oder doofe fragen stelle.
dennoch kannste normal antworten und mir wirklich helfen, oder dich aus dem thread raushalten, es zwingt dich ja keiner.
 

fastjack

Top Contributor
Oh oh. Ruhig bleiben ;)

Also aus der Exception kannst Du schonmal sehen, das Dein Code Syntaxfehler hat und nicht kompilieren kann.
Das liegt an Zeile 11 in Payment.
loanAmt, rate, futureValue, numPeriods kann der Compiler nicht finden, whl. nicht definiert oder sichtbar.

Vielleicht postest Du mal nen Zwischenstand Deines Codes.

Tip: ich habe damals (damals war so 96/97) mit dem Großen Java-Buch von DataBecker angefangen, das gibst z.B. bei Amazon fürn paar Euro und bietet einen guten Einstieg.
 

lama

Mitglied
Hier mal ein minimalistisches return-Beispiel:

Java:
public class MathTools {
    // Wir brauchen hier weder einen Konstruktor, noch ein Objekt
    // Alle Methoden können statisch sein.
    public static int add(int a, int b) {
        return a + b;
    }
    
    public static int multiply(int a, int b) {
        return a * b;
    }
    
    // ...
    
    public static void main(String[] args) {
        // Benutzen von Methoden mit Rückgabewerten:
        // add nimmt zwei Parameter, tut etwas damit und liefert dann etwas
        // mit return zurück. 
        
        // Das, was zurückgeliefert wird, kann als Zuweisung benutzt werden.
        // Hier liefert add 17 zurück, was wir in einer Variable speichern.
        int result = add(14, 3);
        // Und ausgeben.
        System.out.println(result);
        
        // Wenn wir die Werte nicht in einer Variable speichern wollen,
        // können wir sie auch direkt ausgeben.
        System.out.println(add(2, 3));
        System.out.println(multiply(5, 5));
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Return-Anweisung Java Basics - Anfänger-Themen 2
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
K return-Anweisung am Beispiel eines Palindroms Java Basics - Anfänger-Themen 18
R Return Anweisung übergibt Variablen nicht Java Basics - Anfänger-Themen 4
B problem mit der return anweisung Java Basics - Anfänger-Themen 11
T Schleife mit return Anweisung Java Basics - Anfänger-Themen 3
B fehlende return anweisung? Java Basics - Anfänger-Themen 17
G Return-Anweisung Feldausgabe Java Basics - Anfänger-Themen 6
F return Befehl in einer if-Anweisung Java Basics - Anfänger-Themen 4
R return-Anweisung unnötig?! Java Basics - Anfänger-Themen 2
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
Z Methoden return nullprüfung Java Basics - Anfänger-Themen 7
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
R Return in If Java Basics - Anfänger-Themen 10
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben