Java中的對象和引用傳遞是編程中最重要的概念之一。對象是指在內存中分配的實體,而引用是指一個指針,指向內存中的對象。
Java中,當我們創建一個類的實例時,實際上是在內存中分配了一片空間,用來存儲該類的所有成員變量和方法。當我們將該類的實例傳遞給一個方法時,實際上是將該實例的引用作為參數傳遞給了該方法。因此,在Java中傳遞的是引用而非對象本身。
public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Main { public static void main(String[] args) { Student s = new Student("Tom", 20); System.out.println(s.getName() + " " + s.getAge()); changeStudent(s); System.out.println(s.getName() + " " + s.getAge()); } public static void changeStudent(Student s) { s.setName("Jerry"); s.setAge(21); } }
在上面的例子中,我們創建了一個名為Student的類,并在Main方法中創建了一個Student類型的對象s,并輸出了其姓名和年齡。然后我們調用了一個靜態方法changeStudent,將s的引用作為參數傳遞給該方法。在changeStudent方法中,我們改變了s對象的姓名和年齡,然后返回Main方法。在Main方法中,我們再次輸出了s的姓名和年齡,我們可以看到,它們已經被改變了。
這是因為Java中傳遞的是引用,而非對象本身。因此,我們在changeStudent方法中操作的是s引用指向的對象,在該對象上進行了修改。因此,在Main方法中,s引用指向的對象已經被修改了。這就是Java中對象和引用傳遞的一個基本概念。