public static class Value {
private String value = "value";
public String getValue() { return value; }
public void setValue(String value) { this.value = value; }
}
public static void newValue(Value value) {
value = new Value();
value.setValue("new value");
System.out.println("In newValue, HashCode = " + value.hashCode() + ", value = " + value.getValue());
}
public static void modifyValue(Value value) {
value.setValue("new value");
System.out.println("In modifyValue, HashCode = " + value.hashCode() + ", value = " + value.getValue());
}
public static void main(String[] args) {
Value value1 = new Value();
System.out.println("Before modify, HashCode = " + value1.hashCode() + ", value = " + value1.getValue());
// 将value1指向新的Value对象
newValue(value1);
System.out.println("After modify, HashCode = " + value1.hashCode() + ", value = " + value1.getValue() + "\n");
Value value2 = new Value();
System.out.println("Before modify, HashCode = " + value2.hashCode() + ", value = " + value2.getValue());
// 使用object的set方法,修改对象的内部值
modifyValue(value2);
System.out.println("After modify, HashCode = " + value2.hashCode() + ", value = " + value2.getValue());
}
Before modify, HashCode = 12677476, value = value In newValue, HashCode = 33263331, value = new value After modify, HashCode = 12677476, value = value Before modify, HashCode = 6413875, value = value In modifyValue, HashCode = 6413875, value = new value After modify, HashCode = 6413875, value = new value
newValue{
Value_ref2 = value_ref1; // 按值传入引用value_ref1,得到value_ref1的副本
value_obj2 = new Value(); // value_obj2被创建、初始化在“堆“中
value_ref2 -> value_obj2; // value_ref2 指向value_obj2
value_ref2 ->value_obj2.setValue(“xxx”); // value_obj2 的value被修改
printValueObj2(); // 此处打印的是obj2的值
}
modifyValue{
Value_ref2 = value_ref1; // 按值传入引用value_ref1,得到value_ref1的副本
value_ref2 ->value_obj1.setValue(“xxx”); // value_obj1 的value被修改
printValueObj1(); // 此处打印的是obj1的值
}
public static void nPrintln(String message, int n) {
for (int i = 0; i < n; i++)
System.out.println(message);
}
public class TestPassByValue {
public static void main(String[] args) {
int num1 = 1;
int num2 = 2;
System.out.println("Before swap method, num1 is " +
num1 + " and num2 is " + num2);
// 调用swap方法
swap(num1, num2);
System.out.println("After swap method, num1 is " +
num1 + " and num2 is " + num2);
}
/** 交换两个变量的方法 */
public static void swap(int n1, int n2) {
System.out.println("\tInside the swap method");
System.out.println("\t\tBefore swapping n1 is " + n1
+ " n2 is " + n2);
// 交换 n1 与 n2的值
int temp = n1;
n1 = n2;
n2 = temp;
System.out.println("\t\tAfter swapping n1 is " + n1
+ " n2 is " + n2);
}
}
Before swap method, num1 is 1 and num2 is 2
Inside the swap method
Before swapping n1 is 1 n2 is 2
After swapping n1 is 2 n2 is 1
After swap method, num1 is 1 and num2 is 2
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有