Nøgleordet "this"

Tags:    java

Hej med jer,

Forstår ikke rigtigt nøgleordet "this".

Man siger at man anvender "this" for at undgå navngivnings konflikter.
Udfra dette stump kode:

Fold kodeboks ind/udKode 


forstår jeg ikke rigtigt hvordan man kende forskel på navnene.
I koden kan jeg se instans variablerne som ligger uden for metoden, og de lokale variabler. Altså this.length og this.breadth referere til instans variablerne - ikke??
de lokale variabler er "length" som ligger på højre side af ligheds tegnet.
Hvordan skal "this" forståes.....?
Kunne man ikke bare ændre navnene på de lokale variabler?

Hjælp påskønnes!!








This kan også bruges til lidt andet end blot at undgå navngivningskonflikter, det er faktisk bare en reference til objektet selv. I dit eget eksempel bruger man lige nøjagtig this til at kende forskel på klassens lokale private variabler, og konstruktørens parametre, this fortæller lige nøjagtig at der er tale om objektets egne private variabler. Hvis der ikke havde stået this foran variablerne ville man ikke vide om parameter-variablerne skulle sættes til at være det samme som de klassens private variabler eller omvendt.



jo du kunne sagtens rette navnet på de lokale variabler, men hvis det som variablen referer til er en længde er den mest naturlige navn length.
Ved at bruge this. konsekvent foran instans variabler, ved du at hvis en variable har this. foran så er det en instans variable og variabler uden er lokal variabler.



Super!! Jeg takker! Nu forstår jeg det meget bedre.



t