Java中,this和super是兩個關鍵字,它們在編寫代碼時經常被使用。雖然它們的作用都與對象的引用有關,但它們分別有不同的用途和機制。
首先,讓我們來看看this關鍵字的作用。
public class Person { private String name; public void setName(String name) { this.name = name; } }
在上面的代碼中,this關鍵字表示當前對象的引用。在這個例子里,它指向Person對象。它在方法內部使用,是為了避免與類成員變量名相同的局部變量命名沖突。通過使用this關鍵字,我們可以明確地表明正在引用的變量是類成員變量,而不是局部變量。
接下來,讓我們來看看super關鍵字的作用。
public class Person { private String name; public Person(String name) { this.name = name; } } public class Student extends Person { private int grade; public Student(String name, int grade) { super(name); this.grade = grade; } }
在上面的代碼中,super關鍵字表示父類對象的引用。在這個例子中,它用于調用父類構造函數。在子類構造函數中,使用super關鍵字可以顯式地調用父類構造函數,并向其傳遞參數。這個過程也叫做“構造函數的鏈式調用”。
總之,Java中的this和super雖然都與對象的引用有關,但它們分別有不同的用途和機制。了解和使用它們會使編寫高質量代碼變得更加容易。