Java:void方法返回值?

Java:void方法返回值?,java,methods,return,Java,Methods,Return,所以,我想我误解了方法如何返回值。 我不明白为什么列表[0]在输出中是3,因为这是一个void方法,它不会将任何内容返回主方法。。。如果void方法实际上可以返回值,那么为什么num仍然是0。。。。。num也会变成3吗?? 或者void方法不返回任何值,除了数组 public static void main (String []args){ int []list = {1,2,3,4,5}; int number = 0; modify(number, list);

所以,我想我误解了方法如何返回值。 我不明白为什么列表[0]在输出中是3,因为这是一个void方法,它不会将任何内容返回主方法。。。如果void方法实际上可以返回值,那么为什么num仍然是0。。。。。num也会变成3吗?? 或者void方法不返回任何值,除了数组

public static void main (String []args){

    int []list = {1,2,3,4,5};
    int number = 0;

    modify(number, list);

    System.out.println("number is: "+number);

    for (int i = 0; i < list.length; i++)
    {
        System.out.print(list[i]+" ");
    }

    System.out.println();
}
public static void modify (int num, int []list){

    num = 3;
    list[0] = 3;
}

它不返回任何内容,它只是修改变量
list[0]

它不返回任何内容,它只是修改变量
list[0]

如上所述,该方法实际上并没有返回值。。。它正在修改数组中的第一个值。输出是由“modify”修改的值的反映。

如上所述,该方法实际上并没有返回值。。。它正在修改数组中的第一个值。输出反映了“修改”修改的值。您可能需要熟悉“按值传递”、“按引用传递”的概念,并理解对象是引用(在方法调用之间按值传递)

“number”是一个简单的整数-通过值传递给modify方法。因此,即使分配给“num”的值在方法内发生变化,该方法的调用方使用的原始变量也保持不变

“list”也是按值传递的,但“list”是一个对象,因此您要将对该对象的引用(按值)传递给modify方法。因此,如果您在方法中更改对象的内部,那么您就是在更改调用者引用的相同对象

如果你这样做了:

public static void modify (int num, int [] list)
{

    num = 3;
    int [] newlist = {9,8,7,6,5,4};
    list = newlist;
    newlist[0] = 3;
}

然后,传递到modify中的“列表”永远不会被修改,因为modify方法中的“列表”会被更改为指向一个不同的对象。

您可能需要熟悉“按值传递”、“按引用传递”的概念,以及对象是引用的理解(在方法调用之间通过值传递)

“number”是一个简单的整数,通过值传递给modify方法。因此,即使分配给“num”的值在方法中发生了变化,该方法调用方使用的原始变量也保持不变

“list”也是按值传递的,但“list”是一个对象,因此您将此对象的引用(按值)传递给modify方法。因此,如果您更改方法中对象的内部结构,您将更改调用者引用的相同对象

如果你这样做了:

public static void modify (int num, int [] list)
{

    num = 3;
    int [] newlist = {9,8,7,6,5,4};
    list = newlist;
    newlist[0] = 3;
}

然后,传递到modify的“list”永远不会被修改,因为modify方法中的“list”会被更改为完全指向另一个对象。

list[0]=3;
是您给出输出3的原因。它与
num
无关,您没有返回任何内容。您只是修改了数组的内容。

列表[0]=3;
是您给出输出3的原因。它与
num
无关,您没有返回任何内容。您只是修改了数组的内容。

Void不返回任何内容。您的方法不返回任何内容。它修改了“list”引用的数组的内容.Void不返回任何内容。您的方法不返回任何内容。它修改“list”引用的数组的内容。