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

2015-01-18 14:34
0

Przerabiam właśnie lekcję kursu:
http://javastart.pl/static/pr[...]ametry-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??

Tytułuj sensowniej wątki, bo będą lądować w koszu; - furious programming 2015-01-18 17:16

Pozostało 580 znaków

2015-01-18 14:42
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();
}

Psueudokod ;p - Patryk27 2015-01-18 14:44
No tak, wg tego MojaKlasa:: można by się domyślić że to ewidentny pseudokod ;P - _13th_Dragon 2015-01-18 15:10

Pozostało 580 znaków

2015-01-18 14:43
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.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
W pozostałych 10% przypadków - do wywołania innego konstruktora lub odwołania się z klasy wewnętrznej do obiektu klasy zewnętrznej. Patrz post poniżej. - bogdans 2015-01-18 14:49

Pozostało 580 znaków

2015-01-18 14:51
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");
               }
          });
     }
}

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2015-01-18 14:58

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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