2016-03-22 2 views
0

Java-Methoden erfordern keine Return-Anweisungen, um ihren Parametern zu entsprechen. Warum?Java-Logik in Bezug auf Methoden, die Werte und ihre Parameter zurückgeben

Betrachten Sie diese triviale Methode, die drei Parameter, x, y und z, annimmt. Die Methode funktioniert, wenn nur ein Rückgabeparameter verwendet wird (d. H. Rückgabe von x, y oder z). Warum benötigt Java nicht return x, y, z; oder etwas ähnliches? Ich bin Java-Anfänger, also werde ich vielleicht lernen, warum wir zu OOP-Prinzipien kommen. Wie auch immer, ich bin neugierig, ob es eine Logik dahinter gibt oder nur Java. Vielen Dank.

public static int someNumbers(int x, int y, int z) { 

    if (y > z) { 
     System.out.printf("%d is greater than %d", y, z); 
    } else { 
     System.out.printf("Number three is %d", z); 
    } 
    return x; 
} 
+4

Die Parameter sind das, was Sie sich auf ein Verfahren setzen in der Rückgabewert ist, was Sie raus. Warum sollten sie zusammenpassen? –

+0

Ich würde auch sagen, dass traditionell die meisten Programmiersprachen nur ein einziges Ergebnis zurückgeben, und Java war sehr stark in der Form einer traditionellen Sprache, als es entworfen wurde. – markspace

+0

Nach dieser Logik sollte eine Methode, die keine Parameter benötigt, gezwungen sein, eine ungültige Rückgabe zu haben? Das wäre baad. – ChiefTwoPencils

Antwort

1

Parameters und Return types haben nicht wirklich eine Beziehung zueinander. Eine Methode kann 0 oder mehr Parameter eines beliebigen Typs enthalten.

public int someMethod(int x, String y, Object z) { 
    //Does something 
    return x * 5 - 10; 
} 

Aber es kann nur 0 oder 1 Rückgabewerte haben. Wo 0 Rückgabewerte müssen als ungültig definiert werden:

public void someMethod(int x, String y, Object z) { 
    //Does something but returns nothing 
} 

Wenn benötigen mehr als 1 Wert zurück, wie 2 Integers, könnten Sie eine Object halten diese Werte erstellen. Dies ist ein bisschen, was Java als Object Oriented Language definiert.

class IntegerHolder{ 
    int firstValue; 
    int secondValue; 

    //This is a constructor, it creates the object. 
    public IntegerHolder(int first, int second){ 
     firstValue = first; 
     secondValue = second; 
    } 
} 

public IntegerHolder someMethod(int x, String y, Object z) { 
    return new IntegerHolder(x, x * 2); 
} 

Ich rate jedoch auf einige grundlegende Java zu lesen. Es gibt Hunderte von Ressourcen im Internet.

1

Eine gut definierte Funktion kann nur einen Ausgang haben. Es ist eine solche Beziehung zwischen Eingabe und Ausgabe, dass Sie mehrere Eingaben geben können, aber es gibt nur eine Ausgabe.

Die Java-Funktionsdefinition folgt nur dieser Regel. Sie können einige andere Funktionen von Java verwenden, um mehr als ein Ergebnis zu erhalten. Aber sollte auf Ausgang zurückkehren gemäß der Definition von function.You können auch diese Zeilen lesen:

https://math.stackexchange.com/questions/271613/why-is-a-function-defined-as-having-only-one-y-value-output

Verwandte Themen