[JAVA]对象的别名问题
2021-06-30 05:05
标签:情况 内容 传递 style 就是 Stub 操作 引用 obj 对于JAVA的基本数据类型,a=b就是把b的内容复制给a。若接着又修改了a,对b是没有影响的。 但是在为对象“赋值”的时候,情况发生了变化。对一个对象进行操作时,我们真正操作的是对象的引用。 下面对两种情况下的别名问题进行说名: 1、对象赋值引发的别名问题 示例代码: 输出结果: r1:1,r2:2 2、将对象作为参数传递给方法 产生的别名问题 示例代码: 输出结果: 1、1.c:a [JAVA]对象的别名问题 标签:情况 内容 传递 style 就是 Stub 操作 引用 obj 原文地址:https://www.cnblogs.com/zhengxl5566/p/9641727.htmlclass Range{
int level;
}
public class Assignment{
public static void main(String[] args) {
// TODO Auto-generated method stub
Range r1 = new Range();
Range r2 = new Range();
r1.level = 1;
r2.level = 2;
//打印对象赋值前的r1.level和r2.level
System.out.println("r1:"+r1.level+",r2:"+r2.level);
r1 = r2;
//打印对象赋值后的r1.level和r2.level
System.out.println("r1:"+r1.level+",r2:"+r2.level);
}
}
r1:2,r2:2class Letter{
char c;
}
public class PassObject {
static void Func(Letter l) {
l.c = ‘z‘;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.getProperties().list(System.out);
Letter l1 = new Letter();
l1.c = ‘a‘;
//函数调用之前
System.out.println("1、1.c:"+l1.c);
Func(l1);
//调用func之后
System.out.println("2、1.c:"+l1.c);
}
}
2、1.c:z
上一篇:python的第九天
下一篇:python3基础知识点之列表