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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Kết quả:
0 null 0 null
Trong ví dụ trên, tên của tham số của Constructor Student10() 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Kết quả:
111 Viet 222 Nam
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Kết quả:
111 Viet 222 Name
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ụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Kết quả:
call Constructor mặc định call Constructor mặc định 111 Viet 222 Nam
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ụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
Kết quả:
111 Viet null 222 Nam Ha Noi
Quy tắc: this() phải được khai báo dòng lệnh đầu tiên trong Constructor.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Kết quả:
Compile Time Error
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Kết quả:
Gọi phương thức bằng từ khóa this
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 sử lý sự kiện.
Hãy xem ví dụ sau để hiểu rõ hơn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Kết quả:
Hello Java
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.
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ụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Kết quả:
10
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ụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Kết quả:
Hello java
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.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Kết quả:
A5@22b3ea59 A5@22b3ea59
Nguồn tin: viettuts