Do czego służy słowo kluczowe this?

0

Przerabiam właśnie lekcję kursu:
http://javastart.pl/static/programowanie-obiektowe/parametry-i-slowo-kluczowe-this/

i jakoś nie do końca rozumiem do czego służy te słówko this
Czy może mi ktoś wytłumaczyć kiedy i w jakim celu się je stosuje??

1

this odnosi się do instancji obiektu, na którym wywołujesz metodę.

void MojaKlasa::foo() {
  wyświetl(this->poleKlasy);
}
int main() {
  MojaKlasa a, b;

  a->foo(); // w tym momencie wewnątrz metody `this` będzie się odnosiło do instancji `a`
  b->foo(); // a tutaj do `b`
}

To słowo kluczowe stosuje się, gdy chcesz odnieść się do pola klasy wewnątrz jej metody lub wywołać metodę z samej siebie:

void MojaKlasa::foo() {
  this->bar();
}
0

W 50% przypadków - do zaśmiecania kodu np: void fun(int param) { this->value=param; } oraz inne dziwactwa
W 40% przypadków - do ogarnięcia kolizji nazw np: void fun(int value) { this->value=value; }
W 7% wypadków - do przekazania siebie samej (klasy) do innych metod
W 3% wypadków - do zwrócenia siebie samej (klasy) np: klasa fun() { /* tu coś robimy */ return this; }

Uwaga procenty bardzo subiektywne.

1

Klasa Point z polami x,y

public Point(int x, int y)
{
     this.x = x;
     this.y = y;
}
public Point()
{
    this(0,0);
}
public class Ahoj extends JFrame
{
     JTextField msg;
     ... 
     public Ahoj()
     {
          JButton b = new JButton("Kliknij mnie");
          b.addActionListener(new ActionListener()
          {
               public void actionPerformed(ActionEvent ae)
               {
                      Ahoj.this.msg.setText("A hoj");
               }
          });
     }
}

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