用织梦怎么修改网站首页商品顺序,折叠wordpress,杭州建设网站免费,厦门 网站建设闽icp大家讲道理2017-04-17 15:30:345楼是时候展现一下我的JAVA基础知识了#xff0c;2333。我按照执行顺序给你写注释好了。Person p1 new Person(10);//创建了一个对象//p1.age10;modify(p1);//modify函数传参#xff0c;创建了一个在modify函数里面的局部变量p//你应该明白p是…大家讲道理2017-04-17 15:30:345楼是时候展现一下我的JAVA基础知识了2333。我按照执行顺序给你写注释好了。Person p1 new Person(10);//创建了一个对象//p1.age10;modify(p1);//modify函数传参创建了一个在modify函数里面的局部变量p//你应该明白p是一个新的变量这里类似于执行了pp1这两个是指向的同一个对象的//p.age10;p new Person(20);//注意这里这里//这里是p被重新赋值了p指向了新的对象new Person(20);//p.age20;//和p1指向的那个对象一毛线关系都没有啊所以你的代码是在函数内部把局部变量给重新赋值了。是没法修改到外面的对象的因为你已经把唯一能访问到外面那个p1的p给重新赋值了!public static void modify(Person p){p.age20; //只有这样才能修改对象}同理如果你写成这样public static void modify(Person p){p null;//对外面的p1没有任何影响}我举个例子你就比较好理解了。你创建了一个100000000个元素的数组比如就叫p1你把数组通过参数传进函数里面那么这个参数p(类似于p p1)p和p1他们是指向同一个对象。不是说modify(int[] p)重新创建了100000000个元素的数组。这个应该很好理解。那么然后你通过p的内置函数怎么操作p都行都是操作的那100000000个元素的数组。但是你不能把p重新赋值啊。重新赋值它就不是之前那个数组啦比如你重新p new int[100000000]就创建了一个新的100000000个元素的数组啊。你执行p null也只是销毁了这个引用不让它指向100000000个元素的数组而已。对外面p1的那个数组不会再有任何影响了。看到答案里好多人对这个有误解额。。。说不是一个对象的。说不能在函数里改变参数指向的对象的。说int是传值的。说什么的都有2333。补充关于JAVA的函数传参数你应该也听说过所谓基本数据类型是传递的值其它都是传递的引用。个人理解是这样的。你传递个Person的对象进去你可以用SetAge()什么的修改这个对象。但是基本的数据类型比如Integer、String等等他们没有什么内置函数能改变他们自己。所以你传递进去一个int的参数就算其实是传递的引用你也只能对int做重新赋值一重新赋值就表现成传递的是值(永远影响不到函数外面)。