1 svar
224 visningar
blygummi behöver inte mer hjälp
blygummi 216 – Fd. Medlem
Postad: 12 jul 2019 16:09

"this"

https://pastebin.com/yd1sFmr9

Vad referar this till på tredje raden? Referar den till parametern, objektet, r själv? 

Tack på förhand!

pettax 4 – Fd. Medlem
Postad: 14 aug 2019 19:59

den refererar till instansen av ett objekt. Har du t.ex. en klass som ser ut så här:

public class ExempelKlass{

private int exTal;

private int exString;

public ExempelKlass(int tal, String text){

this.exTal = tal;

this.exString = text;

}

public int getExTal(){

return exTal;

}

public void setExTal(int tal){

exTal = tal;

}

}

så vad händer här då? Jo, här har vi en exempelklass som bara har en konstruktor (det fetmarkerade). Det innebär att när du ska skapa en instans av klassen ExempelKlass, så måste du skicka med en int och en String. Skapar du flera instanser av den, eller rättare sagt objekt, så kan du ha olika eller samma tal och text. Den här metoden kallas dependency injection, det innebär att du skickar med beroendena direkt i konstruktorn.

Sedan går det att anropa metoden getExTal() för att se vad objektet har för värde. Observera att jag inte har skrivit this.exTal för att det inte behövs och är överflödigt eftersom objektet redan är skapat. Likadant i setExTal(). 

Det finns flera fall där det går att använda this, som t.ex. att du har en annan klass som tar emot en ExempelKlass i sin konstruktor och som anropas och skapas i ExempelKlass. Alternativt att du vill lägga till objektet/instansen av ExempelKlass inifrån ExempelKlass i en lista (Array/ArrayList), då går det också bra med this.

Eftersom du inte bifogat klassen utan enbart en metod, så är det omöjligt att svara på om this kan vara == r.

Hoppas att mitt svar var begripligt. Lycka till!

Svara
Close