// Java 值传递示例
public class ValuePassingExample {
// 定义一个方法,尝试修改传入的参数值
public static void changeValue(int x) {
x = 10; // 尝试修改传入的参数值
System.out.println("Inside method: " + x); // 输出修改后的值
}
public static void main(String[] args) {
int num = 5;
System.out.println("Before method call: " + num); // 输出原始值
changeValue(num); // 调用方法,传入参数
System.out.println("After method call: " + num); // 输出调用方法后的值
}
}
解释说明:
changeValue
方法试图修改传入的参数 x
的值。由于 Java 是按值传递的,所以对 x
的修改不会影响到原始变量 num
。num
的值在方法调用前后没有变化,证明了 Java 是按值传递的。// Java 引用传递(对象)示例
public class ReferencePassingExample {
// 定义一个类
static class Person {
String name;
Person(String name) {
this.name = name;
}
}
// 定义一个方法,尝试修改传入的对象属性
public static void changeName(Person person) {
person.name = "Alice"; // 修改对象的属性
System.out.println("Inside method: " + person.name); // 输出修改后的属性值
}
public static void main(String[] args) {
Person p = new Person("Bob");
System.out.println("Before method call: " + p.name); // 输出原始属性值
changeName(p); // 调用方法,传入对象
System.out.println("After method call: " + p.name); // 输出调用方法后的属性值
}
}
解释说明:
changeName
方法修改了传入的 Person
对象的 name
属性。由于 Java 中的对象是通过引用来传递的,所以对对象属性的修改会影响到原始对象。p.name
的值在方法调用后发生了变化,证明了 Java 中对象是按引用传递的。上一篇:java判断是否是数字
下一篇:protobuf java
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站