Java-参数传值
在 Java 中,参数传递有两种方式:值传递和引用传递。
值传递是指将参数的值复制一份传递给方法。在方法内部对参数进行的操作不会影响原始变量的值。例如:
在上面的示例中, changeValue 方法接收一个整数参数 num ,并将其赋值为 20。但是,这不会改变 main 方法中 num1 的值,因为参数的值是复制传递的。
引用传递是指将参数的引用(地址)传递给方法。在方法内部对参数进行的操作会影响原始变量的值。这适用于对象类型的参数。例如:
在上面的示例中, changeReference 方法接收一个字符串参数 str ,并将其赋值为"World"。这会改变 main 方法中 str1 的值,因为参数是引用传递的。
需要注意的是,基本数据类型(如整数、浮点数、布尔值等)使用值传递,而对象类型(如字符串、数组、类实例等)使用引用传递。
可变参数
可变参数是指在函数调用时,可以传入任意数量的参数,而不需要在函数定义时指定具体的参数数量。在 Java 中,可变参数的语法使用三个点 ... 表示,它必须是方法参数列表的最后一个参数,且一个方法只能有一个可变参数。
不同的编程语言对可变参数函数的支持有很大差异。例如,计算数字串的总和、字符串的联接或其他操作过程,都可以存在任意数量的参数,因此需要使用可变参数函数来实现。另外,可变参数函数在某些语言中存在安全问题,需要在设计和使用时特别注意。
在 Java 5中提供了变长参数,允许在调用方法时传入不定长度的参数。下面为你提供一个使用可变参数的代码示例:
上述代码定义了一个名为 VarParameterExercise 的类,其中包含一个名为 showScore 的方法,该方法接受一个字符串参数和一个可变参数 double... scores 。在 showScore 方法中,首先初始化一个变量 res 用于存储求和结果,然后通过 for-each 循环遍历可变参数数组 scores ,将每个元素累加到 res 中。最后,返回包含姓名和总分的字符串。