Junior — Middle
Чӣ гуна бояд муқоиса кардани объектҳо дар барномасозӣ анҷом дода шавад?
sobes.tech AI
Ҷавоб аз AI
Дар Java, муқоисаи объектҳо вобаста аст, ки чӣ тавр бояд муқоиса карда шаванд:
-
Муқоисаи ишораҳо (объектҳо) барои баробарӣ:
- Бо оператори
==истифода мешавад. - Мегӯяд, ки оё ду тағйирёбанда ба як объект дар хотира ишора мекунанд.
- Бо оператори
-
Муқоисаи мазмуни объектҳо:
- Бо методи
.equals()истифода мешавад. - Дар асоси (дар синфи Object) ишораҳоро муқоиса мекунад, аммо бисёре аз синфҳо (масалан, String, Integer) ин методро барои муқоисаи мазмун такмил медиҳанд.
- Бо методи
Масал:
String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false, объектҳои гуногун
System.out.println(a.equals(b)); // true, мазмуни якхела
Тавсияҳо:
- Барои муқоисаи мазмун ҳамеша
.equals()-ро истифода баред, агар синф онро дуруст иҷро кунад. - Барои санҷиши он ки оё ин ҳамон объект аст (ҳақиқӣ),
==-ро истифода баред. - Вақте ки синфҳои худро месозед, тавсия дода мешавад, ки методи
equals()(ваhashCode())-ро такмил диҳед барои муқоисаи дуруст ба мазмуни объектҳо.