将方法分配给引用变量时意味着什么?

时间:2017-10-31 11:05:27

标签: java methods

public class GC {
    public static GC doStuff() {
        GC newGC = new GC();
        doStuff2(newGC);
        return newGC;
    }

    public static void main(String[] args) {
        GC gc1;
        GC gc2 = new GC();
        GC gc3 = new GC();
        GC gc4 = gc3;
        gc1 = doStuff(); // Question refers to this line
    }

    ...
}

方法表示对象的行为,而引用变量表示对象的远程控制。但是将方法分配给引用变量意味着什么?为什么链接行为和远程控制是否合理?

2 个答案:

答案 0 :(得分:0)

dostaff()方法将返回可以分配给gc1的值。这意味着dostaff()返回类型是GC

答案 1 :(得分:0)

方法就像机器。你可以放入参数,一些工作在里面完成,然后最后出现一些东西。该方法产生的是返回值,可以分配给另一个变量。

所以在你的情况下gc1 = doStuff();只是意味着启动机器"名称为doStuff。它不会接受任何参数,但会在最后生成一个值。然后将此输出用于分配给变量gc1

为了给您一个更具体的例子,请考虑以下代码:

public static int twoTimesTwo() {
    int result = 2 * 2;
    return result; // output value of this method
}

public static void main(String[] args) {
    int value = twoTimesTwo();
    System.out.println(value); // prints 4
}

此处twoTimesTwo生成一个等于4的值,并将该值暴露给外部。这就是为什么我们可以直接将方法的结果分配到value,最终会打印4