Bài viết này bạn sẽ được tìm hiểu về từ khóa this trong Java. Biết được nó là gì và cách sử dụng trong lập trình hướng đối tượng (OOP) như thế nào.
Từ khóa this trong Java là gì?
Trong ngôn ngữ Java, từ khóa this được dùng để tham chiếu đến đối tượng hiện tại ở bên trong một phương thức (Method) hoặc một phương thức khởi tạo (Constructor).
Ví dụ:
public class myClass { // Khai báo biến String myname; // Hàm khởi tạo myClass(String myname) { this.myname = myname; System.out.println(myname); } public static void main(String[] args) { myClass obj = new myClass("Quách Quỳnh"); System.out.println(obj); } }
Như bạn thấy ở ví dụ trên sẽ thấy có 2 biến myname trùng nhau. Biến myname đầu tiên là biến toàn cục. Và myname thứ hai được dùng để truyền tham số.
Và lúc này cần phải dùng đến từ khóa this để tham chiếu đến đối tượng hiện tại cho myname.
Cách sử dụng từ khóa this
1. Dùng this cho các biến mơ hồ
Ví dụ:
public class myClass { int number; myClass(int number){ number = number; } public static void main(String[] args) { myClass obj = new myClass(10); System.out.println("Tham số truyền vào là: " + obj.number); } }
Khi chạy chương trình mặc dù tham số truyền vào là 10 nhưng biến number không nhận tham số. Lý do chính là trình biên dịch bị nhầm lẫn giữa hai biến giống nhau. Và nó sẽ nhận biến number mặc định là 0. (Đọc lại: Biến (Variable) trong Java).
Bây giờ bạn sẽ thêm từ khóa this vào trước number
this.number = number;
Kết quả nó đã nhận tham số truyền vào.
2. Gọi hàm tạo bằng từ khóa this
Đầu tiên khởi tạo hàm myClass. Dùng từ khóa this với đối số. Lúc này this sẽ tham chiếu đến myClass.
public class myClass { myClass() { // Gọi hàm Construtor this("Ví dụ về this"); } myClass(String str){ System.out.println(str); } public static void main(String[] args) { myClass obj = new myClass(); } }
3. Truy cập phương thức bằng this
Đọc lại bài viết Phương thức (Method) trong Java
public class myClass { // Hàm khởi tạo void myClass(){ System.out.println("Ví dụ"); } void displayName(){ this.myClass(); } public static void main(String[] args) { myClass obj = new myClass(); obj.displayName(); } }
Kết luận: Sau khi đọc xong bài viết từ khóa this trên đây và làm bài tập bạn sẽ hiểu được cách thức sử dụng của nó. Tuy nhiên để thuần thục hơn bạn cần chạy nhiều chương trình và bài tập hơn. Và đừng quên theo dõi nhiều bài viết khác trên blog của mình nhé.