Từ khoá này trong Java là gì?
từ khóa this trong Java là một biến tham chiếu tham chiếu đến đối tượng hiện tại của một phương thức hoặc một phương thức khởi tạo. Mục đích chính của việc sử dụng từ khóa này trong Java là để loại bỏ sự nhầm lẫn giữa các thuộc tính lớp và các tham số có cùng tên.
Sau đây là các cách sử dụng khác nhau của từ khóa 'this' trong Java:
- Nó có thể được sử dụng để tham chiếu biến cá thể của lớp hiện tại
- Nó có thể được sử dụng để gọi hoặc khởi tạo phương thức khởi tạo lớp hiện tại
- Nó có thể được truyền như một đối số trong lệnh gọi phương thức
- Nó có thể được truyền dưới dạng đối số trong lời gọi hàm tạo
- Nó có thể được sử dụng để trả về cá thể lớp hiện tại
Bấm vào đây nếu video không thể truy cập được
Hiểu từ khóa 'this' với một ví dụ.

- Class : tài khoản lớp
- Biến phiên bản : a và b
- Phương pháp Đặt dữ liệu : Để đặt giá trị cho a và b.
- Phương pháp Hiển thị dữ liệu : Để hiển thị các giá trị của a và b.
- Phương thức chính: nơi chúng ta tạo một đối tượng cho lớp Tài khoản và gọi các phương thức thiết lập 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 ta cho A và B phải được khởi tạo thành 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" ở phía bên trái của toán tử được gán là biến cá thể hay biến cục bộ. Do đó, nó không đặt giá trị của 'a' khi dữ liệu tập phương thức được gọi.
Giải pháp là từ khóa "this"
Nối cả 'a' và 'b' với Java từ khóa này theo sau bởi 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 ảnh bên dưới).
Vì vậy, bây giờ trình biên dịch biết,
- Chữ 'a' ở phía bên trái là một biến Phiên bản.
- Trong khi 'a' ở phía bên phải là một biến cục bộ
Các biến được khởi tạo chính xác và kết quả mong đợi đượ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ố phương thức và biến cá thể của mình.
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ập hợp.
Cách trình biên dịch sẽ xác định xem nó phải hoạt động trên biến cá thể của đối tượng 1 hay đối tượng 2.
Chà, trình biên dịch sẽ thêm ngầm vào biến cá thể bằng 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ập hợp, một biến thể hiện đượ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ập hợp, một biến thể hiện của đối tượng 2 được sửa đổi.
Quá trình này được thực hiện 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 trường hợp ngoại lệ như trong ví dụ của chúng tôi.
Ví dụ: Để học cách sử dụng từ khóa "this"
Bước 1) Sao chép đoạn mã sau vào sổ ghi chú.
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, hãy nối thêm dòng # 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 lần lượt được đặt thành 2 & 3.
Tóm lược
- Từ khoá này trong Java là một biến tham chiếu đề cập đến đối tượng hiện tại.
- Một trong những cách sử dụng từ khóa này trong Java là để tham chiếu đến biến cá thể lớp hiện tại
- Nó có thể được sử dụng để gọi hoặc khởi tạo phương thức khởi tạo lớp hiện tại
- Nó có thể được truyền như một đối số trong lệnh gọi phương thức
- con trỏ này trong Java có thể được truyền dưới dạng đối số trong lời gọi hàm tạo
- toán tử này trong Java có thể được sử dụng để trả về cá thể lớp hiện tại
- điều này trong Java 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 cá thể / đối tượng của bạn.