0

Codes are below. I just want to know when I call changeName,the parameter passing type in changeName is value passing or reference passing.

public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        Student student = new Student();
        student.setName("Mike");
        System.out.println("Before calling changeName:" + student.toString());
        test.changeName(student);
        System.out.println("After calling changeName:" + student.toString());
    }

    public void changeName(Student s){
        s.setName("Alice");
    }
}

class Student{
    String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "{" +
                "name='" + name + '\'' +
                '}';
    }
}

1 Answers1

0

The answer is value passing. In fact, there is no concept of passing by reference in the Java programming language.Don't be misunderstood by C + +.The value passed here is the address of the object.

BeerBear
  • 21
  • 4
  • Could you please share me a passage about parameter passing type in Java. I want to learn more about it but I can't find a satifactory passage about it now. – Coder Phoenix Jul 10 '21 at 06:45
  • Of course. You can find it in the 《Core Java Volume I》 — Chapter4.This is a great book for abecedarian. – BeerBear Jul 10 '21 at 06:51