Java中的参数分为几种
1. 形式参数与实际参数
我们需要区分形式参数(Formal Parameters)与实际参数(Actual Parameters)。形式参数是在定义方法时声明的参数,而实际参数是在调用方法时传递给方法的值。,在以下方法签名中,`int a` 和 `String b` 是形式参数:
```java public void exampleMethod(int a, String b) { // 方法体 } ```
当调用此方法时,实际参数会被传递给形式参数:
```java
exampleMethod
(10, "Hello");
```
2. 按值传递与按引用传递
在Java中,所有的参数都是按值传递的。这意味着当我们将一个变量传递给一个方法时,实际上传递的是该变量的一个副本。对于基本数据类型(如int, float等),传递的是其值的副本;而对于对象引用(如String, List等),传递的是引用的副本。,对象本身仍然是存储在堆上的,因此如果在方法内部修改了对象的状态,这种改变将反映在调用者代码中。
```java public class Example { public static void main(String[] args) { StringBuilder sb = new StringBuilder("Hello"); modify(sb); System.out.println(sb); // 输出 "Hello World" } public static void modify(StringBuilder strBuilder) { strBuilder.append(" World"); } } ```
3. 可变参数
Java还支持可变参数(Variable Arguments),允许方法接受任意数量的相同类型的参数。在方法签名中,这可以通过在参数类型后面加上三个点来实现。:
```java public void printNumbers(int... numbers) { for (int number : numbers) { System.out.println(number); } } ```
调用此方法时,可以传入不同数量的参数:
```java
printNumbers
(1,
2, 3);
printNumbers
(4, 5);
printNumbers();
```