Trong lớp HashMap
có một lớp bên trong KeySet
có thể hiện được trả về bởi phương thức ví dụ HashMap
keySet()
. Lớp bên trong này chứa phương thức sau.HashMap.this.clear() điều này có nghĩa là gì, làm thế nào để làm việc này
public void clear() {
HashMap.this.clear();
}
Tôi hiểu ngữ nghĩa chung của "this
"
- Đó là một tham chiếu đến đối tượng "hiện tại".
- Có thể được sử dụng trong các hàm tạo hoặc bất kỳ phương thức thể hiện nào mà nó hoạt động như một tham chiếu đến đối tượng đang được xây dựng hoặc đối tượng có phương thức đang được gọi.
Phong cách trên của việc sử dụng "this
" dường như thú vị,
- Nó đang được sử dụng như thể nó là một biến tĩnh của một lớp.
- Nó vẫn phải đề cập đến một đối tượng có phương thức đang được gọi. Trong trường hợp này, nó phải là một cá thể HashMap.
Cho hai điều trên nên có thể có tham chiếu tĩnh cho bất kỳ đối tượng thể hiện được tạo động nào, nhưng điều đó là không thể vì có thể có vô số trường hợp trong thời gian chạy và không có cấu trúc ngôn ngữ nào để chỉ định mối quan hệ giữa một lớp và các thể hiện của nó.
Tôi chắc chắn thiếu điều gì đó, ai đó có thể giúp tôi hiểu điều này tốt hơn.
Cảm ơn, điều đó có ý nghĩa, bạn có thể đưa ra một số tham chiếu không. – sandeepkunkunuru
Siêu điều tra và mô tả tuyệt vời! –
@kunkunur Xem phần về Đánh bóng tại đây: http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html – Nick