(Wiem, że jestem spóźniony, ale cii, jestem podstępnym boi, którego nigdy mnie nie widziałeś)
To słowo kluczowe w większości języków programowania obiektowego Oriented jeśli nie wszystkie środki, które jego odniesienie do bieżącej instancji obiektu tej klasy. Zasadniczo jest to to samo, co wywołanie tego obiektu spoza metody według nazwy. To prawdopodobnie nie miało sensu, więc będę się rozwijał:
Poza klasą, aby wywołać coś w tej instancji obiektu, na przykład powiedz, że masz obiekt o nazwie object i chcesz uzyskać pole, którego musisz użyć
object.field
Załóżmy na przykład, że próbujesz uzyskać dostęp do obiektu object.field z wnętrza swojej klasy, na przykład konstruktora, którego możesz użyć
this.field
To słowo kluczowe w istocie zastępuje słowa kluczowego nazwa obiektu przy nazwie jest wewnątrz klasy. Zwykle nie ma powodu, aby to robić poza dwoma zmiennymi o tej samej nazwie, z których jedna jest polem klasy, a druga jest zmienną wewnątrz metody, pomaga to rozszyfrować między nimi . Na przykład, jeśli masz to: (Hah, rozumiesz? To ? Hehe .... tylko ja? Ok :( Teraz wyjdę)
public String Name;
//Constructor for {object} class
public object(String Name){
Name = Name;
}
Spowodowałoby to pewne problemy, kompilator nie byłby w stanie poznać różnicy między zmienną Name zdefiniowaną w parametrach konstruktora a zmienną Name wewnątrz deklaracji pól klasy, więc zamiast tego przypisałby parametr Name do ... .. wartość parametru Name, który nie daje nic pożytecznego i dosłownie nie ma celu. Jest to powszechny problem, który występuje w większości nowszych programów, a ja też byłem ofiarą. W każdym razie poprawnym sposobem zdefiniowania tego parametru byłoby użycie:
public String Name;
//Constructor for {object} class
public object(String Name){
this.Name = Name;
}
W ten sposób kompilator wie, że zmienna Name, którą próbujesz przypisać, jest częścią klasy, a nie częścią metody, i przypisuje ją poprawnie, co oznacza, że przypisuje pole Name do wszystkiego, co umieścisz w konstruktorze.
Podsumowując, zasadniczo odwołuje się do pola instancji obiektu klasy, nad którą pracujesz, stąd jest to słowo kluczowe „this”, co oznacza, że jest to ten obiekt lub ta instancja. Dobrą praktyką jest używanie tego podczas wywoływania pola swojej klasy, a nie tylko używanie nazwy, aby uniknąć możliwych błędów, które są trudne do znalezienia, ponieważ kompilator działa bezpośrednio nad nimi.