Từ khóa này trong Java
⚡ Tóm tắt thông minh
Java Từ khóa `this` là một biến tham chiếu trỏ đến đối tượng hiện tại bên trong một phương thức hoặc hàm tạo. LessBài viết này đề cập đến mục đích, cách sử dụng phổ biến, xung đột tên gọi, chuỗi hàm tạo và một ví dụ minh họa.

Từ khóa này là gì Java?
từ khóa này trong Java là một biến tham chiếu đề cập đến đối tượng hiện tại của một phương thức hoặc hàm tạo. Mục đích chính của việc sử dụng từ khóa này trong Java Mục đích là để tránh nhầm lẫn giữa các thuộc tính của lớp và các tham số có cùng tên.
Sử dụng từ khóa này trong Java
Sau đây là một số cách sử dụng khác nhau của từ khóa này trong Java:
- Nó có thể được sử dụng để tham chiếu đến 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 của lớp hiện tại.
- Nó có thể được truyền như một tham số trong lời gọi phương thức.
- Nó có thể được truyền làm đối số trong lời gọi hàm tạo.
- Nó có thể được sử dụng để trả về thể hiện hiện tại của lớp.
Nhấp chuột đây nếu video không thể truy cập được
Cách hiểu từ khóa `this` với một ví dụ

- Lớp: tài khoản lớp
- Biến thể hiệ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 pháp chính: Trong đó, chúng ta tạo một đối tượng cho lớp Account và gọi các phương thức set data và show data.
Vượt qua sự nhầm lẫn của trình biên dịch
Hãy biên dịch và chạy đoạn mã.
Đầu ra dự kiến của chúng tôi cho A và B phải được khởi tạo tương ứng với giá trị 2 và 3.
Nhưng giá trị lại là 0. Tại sao? Chúng ta hãy cùng tìm hiểu.
Trong phương thức Set data, 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 giữa biến “a” ở phía bên trái của toán tử gán, liệu nó là biến thể hiện hay biến cục bộ. Do đó, nó không gán giá trị cho “a” khi phương thức `set data` được gọi.
Giải pháp nằm ở từ khóa này.
Thêm cả “a” và “b” vào cuối. Java từ khóa này 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 sẽ đượ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,
- Chữ “a” ở phía bên trái là một biến thể hiện (instance variable).
- Trong khi đó, chữ “a” ở phía bên phải là một biến cục bộ.
biến được khởi tạo chính xác và kết quả mong đợi sẽ được hiển thị.
Trình biên dịch xử lý nhiều đối tượng như thế nào?
Giả sử bạn chọn các tên khác nhau cho biến thể hiện và các tham số phương thức 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.
Trình biên dịch sẽ xác định như thế nào xem nó nên làm việc trên biến thể hiện của đối tượng 1 hay đối tượng 2?
Vâng, 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 thể hiện sẽ đượ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 thể hiện của đối tượng 2 sẽ được sửa đổi.
Trình biên dịch sẽ tự động xử lý việc này. Bạn không cần phải thêm từ khóa `this` một cách rõ ràng trừ khi có trường hợp ngoại lệ yêu cầu.
Ví dụ: Từ khóa này trong Java Với Code
Ví dụ: Để học cách sử dụng từ khóa này.
Bước 1) Sao chép đoạn 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 và b được hiển thị là bằng không? Để sửa lỗi, hãy thêm dòng số 6 và 7 với điều này từ khóa.
this.a =a; this.b =b;
Bước 4) Lưu, biên dịch và chạy mã. Lần này, giá trị của a và b được đặt lần lượt là 2 và 3.
Câu Hỏi Thường Gặp
Kiểm tra bài viết của chúng tôi trên Java Câu hỏi phỏng vấn: - Nhấp vào đây











