Java关于返回值及其参数的方法的逻辑

时间:2016-03-22 20:11:48

标签: java methods

Java方法不需要return语句来匹配它们的参数。为什么呢?

考虑这个简单的方法,它采用三个参数,x,y和z。当仅使用一个返回参数(即返回x,y或z)时,该方法有效。为什么Java不需要return x, y, z;或类似的东西?我是Java初学者,所以也许我会了解为什么当我们达到OOP原则时。无论如何,我很好奇它背后是否存在逻辑,或者只是Java。感谢。

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;   
}

2 个答案:

答案 0 :(得分:1)

ParametersReturn types之间并没有任何关系。方法可以具有0个或更多任意类型的参数。

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

但它可能只有0或1个返回值。其中0返回值必须定义为void:

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

当需要返回超过1个值时,例如2 Integers,您可以创建一个Object来保存这些值。这有点将Java定义为Object Oriented Language

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);
}

但我建议您阅读一些基本的Java。网络上有数百种资源。

答案 1 :(得分:1)

定义良好的函数只能有一个输出。这是输入和输出之间的这种关系,你可以给出多个输入,但它只给出一个输出。

Java函数定义只遵循此规则。您可以使用java的其他一些功能,以便一次获得多个结果。但是应该根据函数的定义返回输出。你也可以读到这个:

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