まず、この質問で申し訳ありません。これは非常に古いトピックです。
はい、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
ますが、どこが間違っているのか誰か教えてください。