为什么当你设置一个 ArrayList 时,不需要 return 一个值?
Why when you set an ArrayList, there is no need to return a value?
我是 java 的新手,我正在编写一些代码来练习,但有些事情让我感到困惑。我有以下代码:
public class test {
public static void main(String[]args) {
int n = 0;
ArrayList<String> fruits = new ArrayList();
setList(fruits);
n =setInt(9);
// get the values from fruits
for (String value: fruits) {
print(value);
}
}
public static void setList( ArrayList list) {
list.add("pear");
list.add("apple");
list.add("pear");
}
public static int setInt(int number) {
number = 3;
return number;
}
}
我的问题是为什么为了设置我的 Arraylist() 不需要 return any 值,但是为了设置我的 int 我需要 return something.If 运行 此代码打印了我列表中的所有值,但我预计不会打印任何内容,因为在我的方法 setList 中我没有 return 任何值。如果我的 setInt 没有 return 任何值,n 的值就不会改变,这对我来说很有意义。
谢谢。
在函数中传递参数有不同的方法。大多数初学者开始使用的通常方法是按值传递。另一种方式是通过引用传递。在通过引用传递时,对象本身是传入的,而不是像通过值传递那样的副本。这意味着任何更改都会影响参数并保持不变,即使在调用它之后也是如此。 java 中的所有对象都是通过引用传递的,只有基元是通过值传递的。因此,这就是为什么在使用 arraylist 对象时不必 return。
编辑:实际上,我犯了一个错误。实际发生的是引用本身的副本正在按值传递。看看这个。
Everything in Java is Pass by Value.
我是 java 的新手,我正在编写一些代码来练习,但有些事情让我感到困惑。我有以下代码:
public class test {
public static void main(String[]args) {
int n = 0;
ArrayList<String> fruits = new ArrayList();
setList(fruits);
n =setInt(9);
// get the values from fruits
for (String value: fruits) {
print(value);
}
}
public static void setList( ArrayList list) {
list.add("pear");
list.add("apple");
list.add("pear");
}
public static int setInt(int number) {
number = 3;
return number;
}
}
我的问题是为什么为了设置我的 Arraylist() 不需要 return any 值,但是为了设置我的 int 我需要 return something.If 运行 此代码打印了我列表中的所有值,但我预计不会打印任何内容,因为在我的方法 setList 中我没有 return 任何值。如果我的 setInt 没有 return 任何值,n 的值就不会改变,这对我来说很有意义。 谢谢。
在函数中传递参数有不同的方法。大多数初学者开始使用的通常方法是按值传递。另一种方式是通过引用传递。在通过引用传递时,对象本身是传入的,而不是像通过值传递那样的副本。这意味着任何更改都会影响参数并保持不变,即使在调用它之后也是如此。 java 中的所有对象都是通过引用传递的,只有基元是通过值传递的。因此,这就是为什么在使用 arraylist 对象时不必 return。
编辑:实际上,我犯了一个错误。实际发生的是引用本身的副本正在按值传递。看看这个。 Everything in Java is Pass by Value.