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?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
19. august 2003 - 19:55
#1
this = objektet selv
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".
19. august 2003 - 20:07
#3
Og det skal angives eksplicit fordi argumentet v "skygger" for instans member v.
19. august 2003 - 20:07
#4
Du kan også bruge this til at kalde en constructor fra en constructor.
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.
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
19. august 2003 - 21:04
#7
Ja. xxxx.addActionListener(this) er jo en helt standard feature i GUI programmering.
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.
Slettet bruger
20. august 2003 - 01:05
#9
Og this er det der ikke ér i en statisk metode :)
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*
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?
20. august 2003 - 21:21
#12
Ja. Og "this" vil normalt være overflødigt.
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 !
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.
20. august 2003 - 21:37
#15
Takker også her for din hjælp arne...
Kurser inden for grundlæggende programmering