Besplatni Java kurs - 65. deo
Ovo je samo jedan od članaka koji zajedno čine besplatan Java tutorijal.
U svojoj Java klasi možeš da definišeš metode koje imaju različite namene. Ali postoje metode koje bi gotovo uvek trebalo da ugradiš u sve svoje Java klase.
Koje su to metode koje su toliko važne?
3 najvažnije Java metode
Tri najvažnije Java metode koje bi trebalo da imaš u (skoro) svakoj svojoj klasi su:
- toString
- equals
- hashCode
toString metoda
Metoda toString vraća string reprezetaciju objekta tvoje klase. Ako ne definišeš toString metodu, nije smak sveta, jer postoji podrazumevana definicija ove metode. U tom slučaju podrazumevana metoda toString će biti aktivirana pri konverziji objekta tvoje klase u string i tvoj objekat će u obliku stringa imati generički prikaz:
TvojaKlasa@38a1c69
Dobro, bolje išta nego ništa, ali ipak je najbolje ako možeš da prikažeš svoj objekat baš onako kako želiš. Upravo to ti omogućava metoda toString. Ova metoda pruža smislenu i ljudima čitljivu string reprezentaciju tvog objekta i njegovog stanja.
equals metoda
Ova metoda (equals) služi za poređenje trenutnog objekta tvoje klase sa nekim objektom. Slično kao i u prethodnom slučaju, ako ne definišeš svoju metodu equals, postoji podrazumevana definicija iste metode koja će biti korišćena. Podrazumevana metoda equals će uporediti jednakost referenci, odnosno, da li obe reference ukazuju na istu memorijsku lokaciju.
Ako ne želiš da porediš reference već ono što objekti sadrže, moraš da napišeš svoju verziju equals metode. A ako napišeš svoju verziju equals metode, obično moraš da napišeš i svoju verziju hashCode metode. I tako dođosmo i do poslednje metode...
hashCode metoda
Metoda hashCode služi za dobijanje heš kôda objekta tvoje klase. Ako ne definišeš svoju verziju metode hashCode, biće korišćena podrazumevana definicija iste metode. Podrazumevana hashCode metoda će vraćati celobrojnu vrednost, obično proizvedenu na osnovu memorijske adrese objekta.
Trebalo bi da napišeš svoju verziju hashCode metode kako bi dva objekta koja tvoja verzija metode equals smatra jednakima takođe imala i isti heš kôd. Ovo je ključno kod Java kolekcija zasnovanih na hešu, kao što su HashMap i HashSet.
Pročitaj i nastavak:
Besplatni Java kurs - 66. deo - Java konstruktori sa parametrima

No comments:
Post a Comment