Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako mogu saznati jesul 2 objekta ista?

[es] :: Java :: Kako mogu saznati jesul 2 objekta ista?

[ Pregleda: 4848 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

igyy
Igor Stojanovic
Osijek

Član broj: 43742
Poruke: 42
*.studom.stucos.hr.



+1 Profil

icon Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 16:43 - pre 234 meseci
Pozdrav,

zanima me na koji nacin mogu saznati jesu li 2 objekta ista?

npr.



code:
--------------------------------------------------------------------------------


class Kocka {

int duljinaStranice;

public Kocka(){

duljinaStranice=5;
}
}


--------------------------------------------------------------------------------




I sad napravim 2 objekta iz navedene klase

Kocka MalaKocka=new Kocka();
Kocka VelikaKocka=new Kocka()


Kako mogu ispitati jesul te dvije kocke (dva objekta) identicni?

ako koristim metodu equals() ona ce mi vratiti vrijednost koja mi govori samo jesu li "pokazivaci" identicni tj. da li malaKocka i velikaKocka pokazuju na isti dio memorije a ja zelim saznati jesu li njihove duljine stranica jednake??

pretpostavljam da mogu pisati nesto poput ovoga

MalaKocka.duljinaStranice.equals(VelikaKocka.duljinaStranice)

ali sta ako npr. objekt ima 10-ak i vise varijabli instanci ;bojaKocke,materijalKocke itd. ?

Unaprijed hvala na odgovoru
" A language that doesn't affect the way you think about programming, is not worth knowing!"
 
Odgovor na temu

Milan Andjelkovic
Product Manager
Tegus Medical
Beograd

Član broj: 4476
Poruke: 3281
*.beogrid.net.

Sajt: www.linkedin.com/in/milan..


+8 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 19:29 - pre 234 meseci
Čini mi se da si malo nezgrapno definisao postavku stvari, ali dobro...
Uglavnom, porediš sve varijable zasebno, po principu koji si naveo. Možeš i da ubaciš varijable u niz(ove), pa da ih porediš kroz for petlju.
Možda ima i neko pametnije rešenje, ja ne znam?
ex.mangel
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 19:41 - pre 234 meseci
Za to što pitaš se koristi upravo metod equals, ali moraš sam da ga preklopiš za svoje klase inače se poziva Object.equals() koji poredi reference.

http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html

Inače, dilema se obično naziva "identičnost vs jednakost objekta". Operator == se koristi za ispitivanje identičnosti, a metod equals za ispitivanje (logičke) jednakosti.
 
Odgovor na temu

Milan Andjelkovic
Product Manager
Tegus Medical
Beograd

Član broj: 4476
Poruke: 3281
*.beogrid.net.

Sajt: www.linkedin.com/in/milan..


+8 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 19:49 - pre 234 meseci
Citat:
Dragi Tata: ali moraš sam da ga preklopiš za svoje klase

Da li bi mi pojasnio ovo? Koliko sam skapirao, iggy želi da uporedi sve varijable koje postoje u okviru dve instance iste klase. Nisam razumeo da li bi Object1.equals(Object2) moglo da se iskoristi za to ili si nešto drugo hteo da kažeš?

ex.mangel
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 19:51 - pre 234 meseci
Citat:
Milan Andjelkovic: Nisam razumeo da li bi Object1.equals(Object2) moglo da se iskoristi za to ili si nešto drugo hteo da kažeš?


Ne. Hteo sam da kažem da mora sam da napise metodu equals za svoju klasu ako zeli da poredi objekte po vrednosti.
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.adsl.versatel.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 22:32 - pre 234 meseci
Ako preklopi metod equals() za klasu Kocka i u njemu napiše kod koji proverava.

Na primer:

Code:
public class Kocka {
     private int dužina;
     private int boja;
 
     int getDužina() { return dužina; }
     int getBoja() { return boja; }
 
     public Kocka(int početnaDužina, int početnaBoja) {
        this.dužina = početnaDužina;
        this.boja = početnaBoja;
     }
 
     public boolean equals(Object drugaKocka) {
        if (drugaKocka instanceof Kocka) {
              Kocka k = (Kocka) drugaKocka;
              return (k.getDužina() == this.dužina) && (k.getBoja() == this.boja);
        }
        return false;
     }
 }


Kao što se vidi, ovde smo se dogovorili da su dve kocke jednake ako su im dužine iste i boje iste. Taj dogovor je prepisan u metod equals(). Pošto je equals nasleđen iz java.lang.Object, tip promenljive koji mu se prosleđuje je Object, što tehnički znači da bilo koji objekat može da se prosledi na poređenje. Zbog toga moramo da proverimo da li su instance odgovarajuće, zatim izvučemo Kocku iz Objekta i uporedimo po dogovoru. Malo tehnikalija, al takav je život.

f


// edit: && je ispalo zbog es-innda

[Ovu poruku je menjao filmil dana 27.01.2005. u 10:05 GMT+1]
 
Odgovor na temu

igac
Banjaluka

Član broj: 415
Poruke: 562
*.dip.urc.bl.ac.yu.



+2 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?26.01.2005. u 22:58 - pre 234 meseci
filmile &&/and kod returna?
"nice town, i'll take it..."
 
Odgovor na temu

igyy
Igor Stojanovic
Osijek

Član broj: 43742
Poruke: 42
*.studom.stucos.hr.



+1 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?27.01.2005. u 00:12 - pre 234 meseci
puno hvala na odgovorima...jos uvijek se mucim s nekim osnovnim pojmovima ali polako mi sve sjeda na svoje mjesto
" A language that doesn't affect the way you think about programming, is not worth knowing!"
 
Odgovor na temu

filmil
Filip Miletić
Oce Technologies B.V., inženjer
hardvera
Arcen, NL

Član broj: 243
Poruke: 2114
*.decis.nl.

Jabber: filmil@jabber.org
ICQ: 36601391


+3 Profil

icon Re: Kako mogu saznati jesul 2 objekta ista?27.01.2005. u 09:03 - pre 234 meseci
Citat:
 filmile /and kod returna?
fsck. Bag u es-inndu skida endove. Ispraviću.

f
 
Odgovor na temu

[es] :: Java :: Kako mogu saznati jesul 2 objekta ista?

[ Pregleda: 4848 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.