Từ khóa THIS trong Java là gì?
Keyword THIS là một biến tham chiếu trong Java dùng để chỉ đối tượng hiện tại.
Các cách sử dụng khác nhau của từ khóa 'this' trong Java như sau:
- Nó có thể được sử dụng để tham chiếu biến thể hiện của lớp hiện tại
- Nó có thể được sử dụng để gọi hoặc khởi tạo hàm tạo lớp hiện tại
- Nó có thể được thông qua như là một đối số trong cuộc gọi phương thức
- Nó có thể được truyền dưới dạng đối số trong lệnh gọi hàm tạo
- Nó có thể được sử dụng để trả về thể hiện của lớp hiện tại
Hiểu từ khóa 'this' với một ví dụ
- Class : Tài khoản lớp
- Instance Variable : a và b
- Method Set data : Để đặt giá trị cho a và b.
- Method Show data : Để hiển thị các giá trị cho a và b.
- Main method: nơi chúng ta tạo một đối tượng cho lớp Tài khoản và các phương thức gọi đặt dữ liệu và hiển thị dữ liệu.
Hãy biên dịch và chạy mã
Đầu ra dự kiến của chúng tôi cho A và B nên được khởi tạo cho các giá trị 2 và 3 tương ứng.
Nhưng giá trị là 0, tại sao? Hãy điều tra.
Trong phương thức Đặt dữ liệu, các đối số được khai báo là a và b, trong khi các biến thể hiện cũng được đặt tên là a và b.
Trong quá trình thực thi, trình biên dịch bị nhầm lẫn. Cho dù "a" ở bên trái của toán tử được gán là biến thể hiện hay biến cục bộ. Do đó, nó không đặt giá trị 'a' khi dữ liệu đặt phương thức được gọi.
Giải pháp là từ khóa "this"
Nối cả 'a' và 'b' với từ khóa "this" theo sau là toán tử dấu chấm (.).
Trong quá trình thực thi mã khi một đối tượng gọi phương thức 'setdata'. Từ khóa 'this' được thay thế bằng trình xử lý đối tượng "obj." (Xem hình bên dưới).
Vì vậy, bây giờ trình biên dịch biết,
- 'A' ở phía bên trái là một biến Instance.
- Trong khi 'a' ở phía bên tay phải là một biến cục bộ
Các biến được khởi tạo chính xác và đầu ra dự kiến được hiển thị.
Giả sử bạn đủ thông minh để chọn các tên khác nhau cho các đối số biến và phương thức của bạn.
Nhưng lần này, bạn tạo hai đối tượng của lớp, mỗi đối tượng gọi phương thức dữ liệu đã đặt.
Làm thế nào trình biên dịch sẽ xác định liệu nó được cho là hoạt động trên biến đối tượng của đối tượng 1 hoặc đối tượng 2.
Chà, trình biên dịch ngầm nối thêm biến thể hiện với từ khóa "this" (hình ảnh bên dưới).
Như vậy khi đối tượng 1 đang gọi phương thức dữ liệu đã đặt, một biến đối tượng được thêm vào bởi biến tham chiếu của nó.
Trong khi đối tượng 2 đang gọi phương thức dữ liệu đã đặt, một biến đối tượng của đối tượng 2 được sửa đổi.
Quá trình này được chăm sóc bởi chính trình biên dịch. Bạn không cần phải thêm từ khóa 'this' một cách rõ ràng trừ khi có một tình huống đặc biệt như trong ví dụ của chúng tôi.
Ví dụ: Để tìm hiểu sử dụng từ khóa "this"
Bước 1) Sao chép mã sau vào notepad
class Account{
int a;
int b;
public void setData(int a ,int b){
a = a;
b = b;
}
public void showData(){
System.out.println("Value of A ="+a);
System.out.println("Value of B ="+b);
}
public static void main(String args[]){
Account obj = new Account();
obj.setData(2,3);
obj.showData();
}
}
Bước 2) Lưu, biên dịch và chạy mã.
Bước 3) Giá trị của a & b được hiển thị bằng 0? Để sửa lỗi nối thêm dòng số 6 & 7 với từ khóa " this ".
this.a =a;
this.b =b;
Bước 4) Lưu, biên dịch và chạy mã. Lần này, các giá trị của a & b được đặt thành 2 & 3 tương ứng.
Tóm lược
- Từ khóa 'this' trong Java là một biến tham chiếu đề cập đến đối tượng hiện tại.
- Nó có thể được sử dụng để tham chiếu biến thể hiện của lớp hiện tại
- Nó có thể được sử dụng để gọi hoặc khởi tạo hàm tạo lớp hiện tại
- Nó có thể được thông qua như là một đối số trong cuộc gọi phương thức
- Nó có thể được truyền dưới dạng đối số trong lệnh gọi hàm tạo
- Nó có thể được sử dụng để trả về thể hiện của lớp hiện tại
- "này" là một tham chiếu đến đối tượng hiện tại, có phương thức đang được gọi.
- Bạn có thể sử dụng từ khóa "this" để tránh xung đột đặt tên trong phương thức / hàm tạo của đối tượng / đối tượng của bạn.
إرسال تعليق