FaCode Ngôn ngữ Java từ khóa this trong java

FaCode Ngôn ngữ Java

FaCode Ngôn ngữ Java từ khóa this trong java

Từ khóa this trong java là một biến tham chiếu được sử dụng để tham chiếu tới đối tượng của lớp hiện tại.

Trong java, Từ khóa this có 6 cách sử dụng như sau:

  1. Từ khóa this có thể được dùng để tham chiếu tới biến instance của lớp hiện tại.
  2. this() có thể được dùng để gọi Constructor của lớp hiện tại.
  3. Từ khóa this có thể được dùng để gọi phương thức của lớp hiện tại.
  4. Từ khóa this có thể được truyền như một tham số trong phương thức.
  5. Từ khóa this có thể được truyền như một tham số trong phương Constructor.
  6. Từ khóa this có thể được dùng để trả về instance của lớp hiện tại.

1. Tham chiếu tới biến instance của lớp hiện tại.

Từ khóa this trong java có thể được dùng để tham chiếu tới biến instance của lớp hiện tại.

Nếu có sự trùng tên nhau giữa biến toàn cục và tham số khiến bạn bị phân vân. Từ khóa this sẽ giúp bạn giải quyết sự phân vân của bạn.

Bạn sẽ hiểu ra vấn đề nếu không dùng từ khóa this trong ví dụ sau:

FaCode Ngôn ngữ Java

Kết quả:

Trong ví dụ trên, tên của tham số của Constructor Student1() trùng với tên của biến toàn cục đó là lý do tại sao cần phải sử dụng từ khóa this để phân biệt biến cục bộ và biến toàn cục.

Ví dụ dưới đây giải quyết vấn đề trên bằng cách sử dụng từ khóa this:

Kết quả:

Nếu biến cục bộ và biến toàn cục có tên khác nhau thì không cần sử dụng từ khóa this.

Kết quả:


2. Sử dụng this() gọi Constructor của lớp hiện tại.

Phương thức this() có thể được sử dụng để gọi Constructor của lớp hiện tại. Cách sử dụng này sẽ hữu dụng hơn nếu bạn có nhiều Constructor trong một lớp và bạn muốn sử dụng lại Constructor.

Ví dụ:

FaCode Ngôn ngữ Java

Kết quả:

Ví trí sử dụng this() để gọi Constructor

this() được dùng để sự dụng lại Constructor trong Constructor khác. Nó duy trì 1 chuỗi các Constructor.

Ví dụ:

 
FaCode Ngôn ngữ Java

Kết quả:

Quy tắc: this() phải được khai báo dòng lệnh đầu tiên trong Constructor.

Ví dụ:

Kết quả:


3. Gọi phương thức của lớp hiện tại.

Bạn có thể sử dụng từ khóa this để gọi phương thức của lớp hiện tại. Nếu bạn không sử dụng từ khóa this, trình biên dịch sẽ tự động thêm từ khóa this cho việc gọi phương thức.

Hãy xem ví dụ sau để hiểu rõ hơn.

Kết quả:


4. Sử dụng từ khóa this như một tham số của phương thức.

Từ khóa this có thể được dùng như một tham số trong phương thức. Cách dùng này chủ yếu được sử dụng trong xử lý sự kiện.

Hãy xem ví dụ sau để hiểu rõ hơn.

Kết quả:

Từ khóa this được sử dụng như một tham số trong việc xử lý sự kiện hoặc trong trường hơp mà chúng ta phải cung cấp tham chiếu của một lớp cho một lớp khác.


5. Sử dụng từ khóa this như một tham số của Constructor.

Bạn cũng có thể truyền từ khóa this trong Constructor. Tính năng này rất hữu ích nếu chúng ta phải sử dụng một đối tượng trong nhiều lớp.

Ví dụ:

 

Kết quả:


6. Sử dụng từ khóa this để trả về instance của lớp hiện tại.

Chúng ta có thể trả về instance của lớp hiện tại bằng cách sử dụng từ khóa this. Trong trường hợp này, kiểu trả về của phương thức phải là kiểu class (không là kiểu nguyên thủy).

Ví dụ:

Kết quả:

Ví dụ chứng minh rằng từ khóa this tham chiếu tới biến instance của lớp hiện tại. Chúng ta in biến tham chiếu và this, kết quả của chúng là giống nhau.

Kết quả:

____________________________________________________________________||_________________________________________________________________

FaCode Ngôn ngữ Java

Khóa học lập trình

7 Java frameworks phổ biến nhất hiện nay

xem thêm

__________

FaCode là một seri học tập lập trình, lần này là FaCode ngôn ngữ Java, bằng mọi nỗ lực FaCode sẽ hoàn thành các mục tiêu đề ra trong FaCode Ngôn ngữ Java. Hãy đồng hành cùng FaCode Ngôn ngữ Java và theo dõi chúng tôi nhé. FaCode Ngôn ngữ Java rất mong nhận được lời góp ý từ phía cộng đồng. Share4Happy với phương châm chia sẻ để hạnh phúc.

Related posts

FaCode Ngôn ngữ Java những câu hỏi phỏng vấn về Hibernate trong Java

FaCode Ngôn ngữ Java những câu hỏi phỏng vấn về JSP trong Java

FaCode Ngôn ngữ Java những câu hỏi phỏng vấn servlet.