在Java中,参数传递的方式是按值传递。当你传递一个自定义类型的对象时,实际上是传递了一个指向该对象的引用。这意味着,当你在方法内部修改这个对象时,原始对象也会受到影响。但是,如果你尝试改变引用本身,原始引用不会受到影响。
下面是一个简单的例子来说明这个概念:
public class CustomType {
public int value;
public CustomType(int value) {
this.value = value;
}
}
public class Main {
public static void main(String[] args) {
CustomType obj1 = new CustomType(10);
System.out.println("Before: " + obj1.value); // 输出:Before: 10
modifyObject(obj1);
System.out.println("After: " + obj1.value); // 输出:After: 20
}
public static void modifyObject(CustomType customObj) {
customObj.value = 20; // 修改对象的属性
customObj = new CustomType(30); // 尝试改变引用本身
}
}
在这个例子中,modifyObject方法接收一个CustomType类型的参数。当我们传递obj1给这个方法时,我们实际上传递了一个指向obj1的引用。在方法内部,我们可以修改customObj的属性,这会影响到原始对象obj1。但是,当我们尝试改变customObj本身时,原始引用obj1不会受到影响。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。