Slowo kluczowe this a zmienne lokalne

0

Przeczytalem w poradniku, ze slowo kluczowe this pozwala na rozroznienie zmiennej lokalnej od parametru, a przyklad wyglada tak:

public class Punkt {
    int x;
    int y;
 
    public void setPunkt(int x, int y){
        this.x = x;
        this.y = y;
    }
 
}

Więc autor poradnika sugeruje, ze this.x i this.y to zmienne lokalne, a po prawej stronie od znaku rownosci to parametry, te same ktore sa wyzej w nawiasie.
Ale przeciez this.x i this.y to inaczej zmienne x i y zadeklarowanych w klasie, a to nie sa zmienne lokalne.
Zmienne lokalne czytalem, ze to sa zmienne np. w petli czy w metodach.

1

Autor stosuję mylącą nomenklaturę. Warto się zastanawiać, czy cały poradnik nie jest tak samo mylący.

0

a więc dobrze myślę, że w:

    public void setPunkt(int x, int y){
        this.x = x;
        this.y = y;
    }

this.x i this.y to inaczej zmienne globalne zadeklarowane w klasie Punkt, a to po prawej to tylko parametry z nawiasu ?

1

Nie użyłbym słowa globalne. To są po prostu pola klasy.

0

Pola klasy ? a nie zmienne ? myślałem że to jest to samo. Chyba że pola to wlaśnie takie zmienne 'globalne'.
Jaka jest różnica między nimi ? W książce o Javie ktora czytam jest mowa tylko o zmiennych.

1

Tak jak piszę @twonek, nie używaj zwrotu zmienne globalne. Pola klasy to pola klasy, mogą być również stałymi, nazwa pole klasy lepiej opisuje co masz na myśli bo zmienna może być o wiele ogólniej rozumiana.

0
Matthi napisał(a):

Tak jak piszę @twonek, nie używaj zwrotu zmienne globalne. Pola klasy to pola klasy, mogą być również stałymi, nazwa pole klasy lepiej opisuje co masz na myśli bo zmienna może być o wiele ogólniej rozumiana.

o wiele ogolniej rozumiana czyli jak ? Czym sie wlasciwie rozni pole od zmiennej ?

3
watpliwosci napisał(a):
Matthi napisał(a):

Tak jak piszę @twonek, nie używaj zwrotu zmienne globalne. Pola klasy to pola klasy, mogą być również stałymi, nazwa pole klasy lepiej opisuje co masz na myśli bo zmienna może być o wiele ogólniej rozumiana.

o wiele ogolniej rozumiana czyli jak ? Czym sie wlasciwie rozni pole od zmiennej ?

Pole klasy może być zmienną ale nie musi.
Mówiąc o zmiennej możesz mieć na myśli jakikolwiek byt przechowujący wartość mogącą zmieniać się w czasie, czyli atrybut w metodzie też jest zmienną ale wolisz ją nazywać atrybutem bo od razu wiadomo o czym mówisz, tak samo z polem klasy. A pól nie nazywasz zmiennymi globalnymi bo zasięg zmiennej jest definiowany przez nawiasy {...} i dla metody pole klasy będzie zmienną 'globalną' ale już dla innej klasy niekoniecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1