新手请教大神一个问题
java吧
全部回复
仅看楼主
level 1
ht4431
楼主
String 不是引用类型吗? 为什么在set方法里改变了 value的值 输出的还是1 不应该是2么?
2017年12月07日 08点12分
1
level 3
起个什么名字好麻烦
String是一个特殊的引用类型
2017年12月07日 08点12分
2
level 3
m001y
虽然你的变量名是一样的 ,你没有对value重新赋值
String value="1";
value=set(value);
System.out.println(value);
}
public static String set(String value){
value="2";
return value;
}
这样你会明白点儿
2017年12月07日 08点12分
4
yRJJJJº
2017年12月07日 08点12分
ht4431
明白了
2017年12月07日 09点12分
快乐成长yylife
我想问用static修饰可以吗
2017年12月11日 03点12分
m001y
@快乐成长yylife
你是说加个类的静态变量吗?是可以的 ,不过写法稍微有点变化
2017年12月11日 07点12分
level 7
贴吧用户_052JK3V
如果你在方法里加一个this.value就行了。你的方法的value 是你方法传递进去的那个value,也就是你传进去的是1 但是你把这个传赋值了2,但这个value只在这个方法里有效,
2017年12月07日 08点12分
5
level 7
贴吧用户_052JK3V
这就是局部变量和成员变量的区别了
2017年12月07日 08点12分
6
level 7
快乐成长yylife
方法中传递的value是你的set的局部变量,方法完了就消失了!
2017年12月11日 03点12分
7
level 8
一个大写的帅👻
劝退
2017年12月11日 03点12分
8
1