Avatar billede tlunde Nybegynder
19. august 2003 - 19:50 Der er 14 kommentarer og
1 løsning

Flere basale java spørgsmål.

Hejsa,
Jeg ville godt have en god forklaring af ordet this. Hvad betyder det? Hvorfor bruger man det?
Avatar billede arne_v Ekspert
19. august 2003 - 19:55 #1
this = objektet selv
Avatar billede arne_v Ekspert
19. august 2003 - 19:57 #2
Typisk konstruktion:

public class X {
  private int v;
  public X(int v) {
      this.v = v;
  }
}

this.v betyder instans member v i "this object".
Avatar billede arne_v Ekspert
19. august 2003 - 20:07 #3
Og det skal angives eksplicit fordi argumentet v "skygger" for
instans member v.
Avatar billede arne_v Ekspert
19. august 2003 - 20:07 #4
Du kan også bruge this til at kalde en constructor fra en constructor.
Avatar billede arne_v Ekspert
19. august 2003 - 20:19 #5
Kombineret eksempel:

public class X {
    private int v;
    public X(int v) {
        this.v = v;
    }
    public X() {
        this(0);
    }
}

this med argumenter i den anden constructor er så et "kald" til den første
constructor.
Avatar billede tosssen Nybegynder
19. august 2003 - 20:34 #6
Du kan også bruge this hvis et objekt har brug for at kalde en metode med sig selv som parameter
Avatar billede arne_v Ekspert
19. august 2003 - 21:04 #7
Ja.

xxxx.addActionListener(this) er jo en helt standard feature i GUI
programmering.
Avatar billede arne_v Ekspert
19. august 2003 - 21:06 #8
Og i two-way relationer mellem klasser.

Klasse A opretter klasse B. A får så en referance til B. Men B skal
også have en refrance til A. Så A kalder B's constructor med this og
den gemmer så referancen til A.
Avatar billede Slettet bruger
20. august 2003 - 01:05 #9
Og this er det der ikke ér i en statisk metode :)
Avatar billede tjp Mester
20. august 2003 - 02:30 #10
Kort sagt, alle objekter har en medfødt reference til sig selv, med variabelnavnet 'this'.

>>mercur8
Den var god nok kryptisk! *S*
Avatar billede tlunde Nybegynder
20. august 2003 - 21:09 #11
Hvad hvis man bruger this i sammenhæng med et metode kald?

f.eks. sådan er: this.showAll();

betyder this her så bare at metoden showAll() ligger i samme klasse eller hvad?
Avatar billede arne_v Ekspert
20. august 2003 - 21:21 #12
Ja.

Og "this" vil normalt være overflødigt.
Avatar billede arne_v Ekspert
20. august 2003 - 21:27 #13
public void m() {
    }
    public void m1() {
        m();
    }
    public void m2() {
        this.m();
    }

m1 og m2 gør præcis det samme !
Avatar billede arne_v Ekspert
20. august 2003 - 21:30 #14
En typisk grund til at få this. foran her er at man er lidt i
tvivl om metoderne og når så man skriver this. så foreslår
ens IDE de tilgængelige metoder og man vælger en.
Avatar billede tlunde Nybegynder
20. august 2003 - 21:37 #15
Takker også her for din hjælp arne...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester