中易网

java中函数调用的问题

答案:2  悬赏:80  
解决时间 2021-03-24 21:36
为什么有函数中传入形参时要是这个形参是list的话就会改变函数方法外部的list,而传入int类型的数据时却不改变?代码如下:
package wang.bang.classes;
import java.util.ArrayList;
import java.util.List;
public class VoidTest {
int i =1;;
List persons = new ArrayList();
public static void main(String args[]){
new VoidTest().lauch();
}
public void lauch(){
inputPerson(persons);
Person pe = null;
for(int i=0;i<3;i++){
pe = persons.get(i);
System.out.println(pe.getAge()+" "+pe.getHeight());
//这里会显示改变后的结果 0 9 1 8 2 7
}
changi(i);
System.out.println(i);// 而这里仍然显示为1;
}
public void inputPerson(List pers){
Person p = null;
for(int i=0;i<3;i++){
p = new Person();
p.setAge(i);
p.setHeight(9-i);
pers.add(p);
}
}
public void changi(int i){
i+=1;
System.out.println(i);
}
}
最佳答案
参数传入的如果是基本数据类型,则传入的为具体值,如果传入引用类型,那么传入的为该对象的首地址,这样对此对象内部的属性等的修改都会反映到参数外传入的那个对象中,因为这两个变量(函数中的和传入的)指向的是同一个对象
全部回答
我用 myeclipse 试了 好用 你的 java.lang 包 有问题 试着 将左侧 架包删了 丛新导入
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现代215挖掘机左右旋转憋车是怎么回事?那位老
冰箱冬天温度应该调到几档
哆哆基在市场上受欢迎吗?
本科一线,二线是什么意思
那种pp软件的速度快呀
我有台台式电脑 想坐在床上 或床边玩 怎么放
语音聊天对方听到我的声音很小怎么回事,声卡
主持陈旻旻几岁
诺丽果可以泡酒吗
急'''请问眼科硕士就业前景怎
奶水堵塞不通吃什么有效
我是学平面设计的,想找人帮我在嘉兴找个实习
魔兽世界pvp伤害和防御什么关系最大 玩pve和p
我买了一个抽水马桶才一年多一点 今年冬天过
某企业每年产销A设备5000台,销售单价6000元,
推荐资讯
胶南到洛河的火车票
南京新世纪中医医院在那里,南京新世纪中医医
这个瑜伽姿势叫什么?
望京或大山子附近哪儿可以摆地摊?急~
综合坚果酥哪里有卖的
狮子座男生喜欢一个女生的表现
天津市津南区八里台工业园区北京道邮编是什么
软床家具电话营销秘决
肉毒杆菌注射美容的功效有哪些
哪里可以买到阳光巴士另类宠物店创业方案?
加盟7天连锁酒店需要多少钱
辽宁倍耐力轮胎加盟
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?