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 DE-CIX
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