JAVA中String类作为方法的参数时无法被改变(传递引用),但其他类可以?
publicclassref{staticStringstr="zhangsan";publicstaticvoidchange(Stringstr){str="wang...
public class ref {
static String str="zhangsan";
public static void change(String str)
{
str="wanger";
}
public static void change1(ref a)
{
a.str="wanger";
}
public static void main(String[] args) {
String str1="zhangsan";
str1="lisi";
change(str1);
System.out.println(str1);
ref r=new ref();
change1(r);
System.out.println(r.str);
}
}
输出结果是lisi wanger 展开
static String str="zhangsan";
public static void change(String str)
{
str="wanger";
}
public static void change1(ref a)
{
a.str="wanger";
}
public static void main(String[] args) {
String str1="zhangsan";
str1="lisi";
change(str1);
System.out.println(str1);
ref r=new ref();
change1(r);
System.out.println(r.str);
}
}
输出结果是lisi wanger 展开
2个回答
展开全部
str只引用在方法change()里面被指向了"wanger",只属于方法change()内部,一般没有这种写法。
change1()将类ref的成员变量str指向了“wanger”。是属于整个类ref的。即使你不new对象
change1()将类ref的成员变量str指向了“wanger”。是属于整个类ref的。即使你不new对象
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
str="wanger";你这么写是想改变str的引用而不是值
a.str="wanger";这么写是在a引用上对str属性修改
这是区别
a.str="wanger";这么写是在a引用上对str属性修改
这是区别
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询