Java-java形参传递问题
public class TestTwo {
public static void main(String[] args) {
int a=123;
List<Integer> list=new ArrayList<Integer>();
addTest(list,a);
System.out.println("a="+a);
System.out.println("size="+list.size());
}
private static void addTest(List<Integer> list,int a) {
list.add(0);
list.add(1);
a=456;
}
}
输出结果
a=123
size=2
为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你只是对方法里面的a重新赋值了,相当于我这有个123,我用变量名a存着,然后调用你提供的方法,把123传给你了,然后你也用的一个变量名a保存着,然后你把你的a指向另外一个值,我这里并没有受到影响。除非你这样写
public class Test{
public static void main(String args[]){
Animal animal = new Animal();
animal.a = 123;
change(animal);
System.out.println(animal.a);
}
public static void change(Animal animal){
animal.a = 456;
}
}
java语言对对象采用的不是引用传递,而是值传递
java设计语言中方法参数使用的情况:
1> 一个方法不能修改一个基本数据类型的参数
2> 一个方法可以改变一个对象参数的状态,即可以改变对象参数中的某个属性
3> 一个方法不能让对象参数引用一个新的对象,即让对象参数指向新的引用