java程序

packagemyduixiang;publicclassPassTest{floatptValue;publicvoidchangeInt(intvalue){//定义... package myduixiang;
public class PassTest {
float ptValue;
public void changeInt(int value){
//定义方法时有void
value=55;
}
public void changeStr(String value){
value=new String("different");
}
public void changeObjValue(PassTest ref){
ref.ptValue=99.0f;
}
public static void main(String args[]){
int val;
String str;
PassTest pt=new PassTest();
val=11;
pt.changeInt(val);
//val要有值才可以执行
System.out.println("int value is "+val);
str=new String("hello");
pt.changeStr(str);

System.out.println("str value is "+str);
pt.changeObjValue(pt);
System.out.println("currrent ptValue is "+pt.ptValue );
}
}
这个运行结果为int value is 11
str value is hello
currrent ptValue is 99.0
求大神告知为什么Int的值为11,而不是55?
展开
 我来答
康熙转世
2015-12-08 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2956万
展开全部
楼主您好,现在基本上大家都叫“值传递”。但理解还是可以分开理解
基本类型,可以理解为真正意义上的值传递
传过去就传过去了 和我无干了。。。所以11(基本类型)传过去了,本方法还是11!
对象传递可以理解为引用传递(其实传递的是引用的值,另一种值传递)。传递的是引用(指针?)所以对象传递过去后,在传递方法中修改了属性值,主方法中同样修改了。

string比较特殊,它不是基本类型,但它同样有类似基本类型的值传递
更多追问追答
追问
请问一下大神,怎么改才能使Int的值输出55?
追答
你都采纳了个完全错误的答案,我真是无语了。
fylsh
2015-12-08 · TA获得超过950个赞
知道小有建树答主
回答量:1472
采纳率:0%
帮助的人:1052万
展开全部
System.out.println("int value is "+val);这里的val是指main方法中的局部变量。
public void changeInt(int value)中value是方法chageInt的局部变量。局部变量值改变时只会影响它自身作用域。
当你调用pt.changeInt(val);时 value指向了val对应的值,即11,当方法执行到value=55;时value指向了值55,并不会影响main方法中的val。
追问
请问一下我该怎么改才能使Int的值为55?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2015-12-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
public void changeInt(int value){
//定义方法时有void
value=55;
}
这个地方的value要定义成全局的,比如是private String value
public void changeInt(int value){
//定义方法时有void
this.value=55;
}
这样就可以了。
追问
谢谢!我学到了!
追答
麻烦采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4cae02e
2015-12-08 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:100%
帮助的人:68万
展开全部
pt.changeInt(val)调用这个方法是把value的值改变了,但是你输出的是val,他两个根本不是一个变量,当然是输出11
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吾果0j9
高粉答主

2020-11-11 · 关注我不会让你失望
知道答主
回答量:9.3万
采纳率:2%
帮助的人:4669万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式