Słowo kluczowe "this" w języku Java jest dzisiejszym tematem jaki chcę poruszyć. On nie zajmie dużo miejsca, przelecimy sobie przez miejsca jego występowania, a po szczegóły odnośnie dotkniętego wątku odeślę do odrębnego materiału (jeśli jest 😉).
GDZIE ZNAJDZIESZ SŁOWO "THIS" W JĘZYKU JAVA?
W dwóch miejscach nadających inne znaczenie.
ODWOŁANIE SIĘ DO DANEJ SKŁADOWEJ
Jednym z dwóch miejsc występowania jest w momencie podkreślenia, że chodzi nam o daną składową (zmienną) pochodzącą z tej samej klasy. Zwykle piszemy tak:
variableName = 5;
a mamy prawo napisać też tak:
this.variableName = 5;
Kiedy się przyda ten drugi zapis? W momencie, gdy dochodzi do sytuacji, w której tę samą nazwę zawiera zarówno dana składowa (zmienna klasy), jak i zmienna lokalna występująca w funkcji (metodzie):
public class MyClass {
private int value;
public void setValue(int value) {
this.value = value;
}
}
Wtedy wstawienie "this" w języku Java jest o wiele bardziej zasadne 👍.
WYWOŁYWANIE PRZECIĄŻONEGO KONSTRUKTORA W TEJ SAMEJ KLASIE
Drugie występowanie: wywołanie metody jako innego konstruktora klasy kiedy znajdują się co najmniej dwa w tej samej klasie:
public class MyClass() {
private int value;
public MyClass() {
this(0);
}
public MyClass(int initialValue) {
value = initialValue;
}
}
Zastosowanie masz już podane - sytuacja, w której chcemy udostępnić możliwość utworzenia obiektu bez podawania tuzina parametrów formalnych, a konstruktor ten najbardziej rozbudowany potrzebuje zinicjalizować wszystkie niezbędne wartości.
Przeciążanie metody jest zdefiniowaniem drugiej osobnej metody o tej samej nazwie, która musi się różnić parametrami i która może różnić się typem zwracanej wartości. Więcej informacji jest w artykule poświęconym temu zagadnieniu.
![]() |
Słowo kluczowe "this" w języku Java znajduje zastosowanie tylko w dwóch przypadkach: wywoływanie przeciążonych konstruktorów oraz podkreślenie odwołania się do danej składowej klasy w przypadku kolizji nazw zmiennych.
To już koniec 😊. Nie zanosi się, żeby były jakieś dodatkowe zastosowania w przyszłości (a jeżeli będą, to się dopisze 😄).
NASTĘPNY ARTYKUŁ: abstract w języku Java. Klasa i metoda abstrakcyjna