Trong Java, từ khóa this được sử dụng trong một context đối tượng để tham chiếu đến đối tượng hiện tại. Nó có thể được sử dụng để tham chiếu các thuộc tính, phương thức, và constructor của đối tượng hiện tại. Dưới đây là một số cách sử dụng this trong Java:
1. Tham chiếu đến Thuộc tính hiện tại của Đối tượng
Khi tên của tham số truyền vào constructor hoặc phương thức trùng với tên của thuộc tính của class, từ khóa this giúp phân biệt thuộc tính của đối tượng với tham số.
class Car {
String color;
public Car(String color) {
this.color = color; // Phân biệt thuộc tính 'color' với tham số 'color'
}
}
2. Gọi Constructor khác trong cùng một Class
this() được sử dụng để gọi một constructor khác trong cùng một class từ một constructor. Điều này thường được sử dụng để tái sử dụng code trong các constructor.
class Car {
String color;
int year;
public Car() {
this("Red", 2010); // Gọi constructor khác với tham số
}
public Car(String color, int year) {
this.color = color;
this.year = year;
}
}
3. Tham chiếu đến Phương thức hiện tại của Đối tượng
Tương tự như với thuộc tính, this có thể được sử dụng để gọi các phương thức khác trong cùng một đối tượng.
public void printColor() {
System.out.println(this.color); // Sử dụng 'this' để tham chiếu đến thuộc tính 'color' của đối tượng hiện tại
}
4. Trả về đối tượng hiện tại từ phương thức
this có thể được sử dụng trong một phương thức để trả về chính đối tượng đang gọi phương thức đó, hữu ích trong việc chuỗi hóa các phương thức hoặc khi cần trả về đối tượng hiện tại.
class Car {
int speed;
Car increaseSpeed(int increment) {
this.speed += increment;
return this; // Trả về đối tượng hiện tại
}
}
5. Truyền đối tượng hiện tại vào phương thức khác
this cũng có thể được sử dụng để truyền đối tượng hiện tại vào một phương thức khác.
public void processCar(Car car) {
// code here
}
public void demo() {
processCar(this); // Truyền đối tượng hiện tại vào phương thức khác
}
Từ khóa this giúp làm cho mã nguồn rõ ràng và tự giải thích hơn, đồng thời giải quyết các xung đột tên và tăng tính linh hoạt khi tái sử dụng code.
Comments