首先对不起这个问题。这是一个非常古老的话题。
是的,我做了很多搜索,java 是按值传递的。
但是通过我的程序显示出来。我不明白为什么?
我的程序是
class Dog{
static String dogName;
Dog(String name){
dogName=name;
}
public void setName(String newName){
dogName=newName;
}
public String getName(){
return dogName;
}
}
class JavaIsPassByValue{
public static void main(String arr[]){
Dog dog1=new Dog("OldDog");
new JavaIsPassByValue().display(dog1);
System.out.println(dog1.getName());
}
public void display(Dog d){
System.out.println(d.getName());
d = new Dog("NewDog");
System.out.println(d.getName());
}
}
输出是
OldDog
NewDog
NewDog
,但我期待
OldDog
NewDog
OldDog
请任何人告诉我我在哪里想错了。