Java:void方法返回值?
所以,我想我误解了方法如何返回值。 我不明白为什么列表[0]在输出中是3,因为这是一个void方法,它不会将任何内容返回主方法。。。如果void方法实际上可以返回值,那么为什么num仍然是0。。。。。num也会变成3吗?? 或者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);
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”引用的数组的内容。