java 传值是什么意思,传的都是值,啊为什么第一个改变,第二个不变。

publicclassParamTest{publicstaticvoidmain(String[]args){Personperson=newPerson();pers... public class ParamTest
{
public static void main(String[] args)
{
Person person = new Person();

person.change(person);
int age = person.age;

System.out.println(age);
System.out.println("----------------------");
int i = 10;

person.change2(i);
System.out.println(i);
}
}
class Person
{
int age = 20;
public void change(Person person)
{
person.age = 30;
}
public void change2(int age)
{
age = 40;
}
}
展开
 我来答
liubinny
2012-07-13 · TA获得超过777个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:131万
展开全部
1.第1个是将传进来的对象 person的age值修改为 30, 所以person对象的age值改变。

2.第2个是将传进来的 age值,修改为40, 注意修改的是传进来的值age ,person对象不作任何改变。如果要想第2个能有变化,这样写:
public void change2(int age){
this.age = age;

}
forever_cy_07
2012-07-13 · 超过35用户采纳过TA的回答
知道答主
回答量:290
采纳率:0%
帮助的人:115万
展开全部
引用传递和值传递的区别,自己跑几遍程序,改写一下,习惯了这种思想就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guojinhui10000
2012-07-13 · 超过24用户采纳过TA的回答
知道答主
回答量:284
采纳率:100%
帮助的人:81.7万
展开全部
你都没有赋值给person对象。那怎么变化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lh519397034
2012-07-13 · 超过28用户采纳过TA的回答
知道答主
回答量:203
采纳率:0%
帮助的人:53.5万
展开全部
一个是把值传给对象,值当然会变咯,一个是传给变量,这个值你没有返回,就不会变啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
phoenixtree_ch
2012-07-13 · 超过10用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:16.1万
展开全部
第一个是引用传递,第二个是值传递,你重点看看这方面的知识就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
会搜商务
2012-07-13
知道答主
回答量:29
采纳率:0%
帮助的人:9.7万
展开全部
你能分行写吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式