W HashMap
klasie istnieje wewnętrzna klasa KeySet
którego wystąpienie jest zwracane przez HashMap
„s przykład metody keySet()
. Ta klasa wewnętrzna zawiera następującą metodę.HashMap.this.clear() co to znaczy, jak to działa
public void clear() {
HashMap.this.clear();
}
Rozumiem ogólne semantyki "this
"
- Jest to odniesienie do "bieżącego" obiektu.
- Może być stosowany w konstruktorach lub dowolnych metodach instancji, gdzie działa jako odniesienie do konstruowanego obiektu lub obiektu, którego metody są wywoływane.
Powyższy styl używając „this
” wydaje się interesujący,
- To jest używany tak, jakby jego statycznej zmiennej klasy.
- Powinny one nadal odnosić się do obiektu, którego metoda jest wywoływana. W tym przypadku logicznie powinna to być instancja HashMap.
Biorąc powyższe pod uwagę dwa powinno być możliwe, aby mieć statyczny odniesienie do wszelkich dynamicznie utworzonej instancji obiektu, ale to nie jest możliwe, ponieważ nie może być nieskończona liczba wystąpień w czasie rzeczywistym i nie są dowolny język konstruuje określić ten relacja między klasą a jej instancjami.
Zdecydowanie brakuje czegoś, czy ktoś może mi pomóc lepiej to zrozumieć.
Dzięki, że ma sens, możesz podać jakieś odniesienie. – sandeepkunkunuru
Super dochodzenie i doskonały opis! –
@kunkunur Zobacz sekcję o Shadowing tutaj: http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html – Nick