06. oktober 2003 - 18:03
Der er
8 kommentarer og 3 løsninger
if og this problem
Hej har følgende kode: public int res1; public int res2; public int res3; public int res4; public boolean coordinator = false; public void startElection() { P2 res2 = new P2(); P3 res3 = new P3(); this.res2 = res2.startElection(); this.res3 = res3.startElection(); // virker ikke if(this.res1 > this.res2 && this.res3) { setCoordinator(true); } } Mit spørgsmål er følgende, hvordan får jeg min if .. til at virke og så også lige hvordan undgår jeg at bruge this hele tiden.
Annonceindlæg fra QNAP
06. oktober 2003 - 18:12
#1
Du skal bruge this, hvis en global variabel variabel hedder det samme som den i metoden, så du kan bare navngive dine variable anderledes... If-sætningen kommer til at hedde if(this.res1 > this.res2 && this.res1 > this.res3)
06. oktober 2003 - 18:12
#2
1) Du kan ikke undgå this i dette eksempel da der er 2 attributter som herrer res2. (sig til hvis du vil have dette uddybet :-) 2) hvad skal din if kunne?
06. oktober 2003 - 18:12
#3
Mener du, hvis res1 er større end res OG res1 er større end res3 ? if((res1 > res2) && (res1 > res3)) { coordinator = true; } this skal du kun bruge når der kan opstå tvivl om hvilken variabel der hentydes til. F.eks. i en konstruktør.
06. oktober 2003 - 18:14
#4
forstår ikke hvorfor til vil erklære P2 res2 = new P2() inde i constructoren
06. oktober 2003 - 18:25
#5
den er heller ikke erklæret inde i constructoren. Den bliver erklæret i min metode startElection. Klassen hedder P1.java
06. oktober 2003 - 18:26
#6
smider i ikke lige nogle svar
06. oktober 2003 - 18:41
#7
joeh - lykkedes det?
06. oktober 2003 - 18:41
#8
hovsa :-)
06. oktober 2003 - 18:51
#9
Det lykkedes for mig ! :-)
06. oktober 2003 - 19:19
#10
svar
06. oktober 2003 - 20:23
#11
Lidt spaghetti-agtigt at have variable, der ikke er relateret og endda af forskellig type, med samme navne. Pænere med mere passende navne og så slipper du samtidig for "this". :)
Kurser inden for grundlæggende programmering