Sobes.tech
Junior — Middle

Кадом арзиши методи equals баро такрор кардани даъват барои объектҳои якхела бармегардад?

sobes.tech AI

Ҷавоб аз AI

Методи equals дар Java, вақте ки барои як объектҳо чанд маротиба даъват карда мешавад, бояд ҳар вақт true баргардонад, агар объектҳо мувофиқи логикаи иҷрои ин метод баробар ҳисобида шаванд. Тибқи шартномаи equals, даъвати a.equals(b) бояд:

  • Инъикосӣ бошад: a.equals(a) ҳамеша true.
  • Симметрӣ бошад: a.equals(b) баробар аст бо b.equals(a).
  • Транситивӣ бошад: агар a.equals(b) ва b.equals(c), пас a.equals(c).
  • Мустаҳкам бошад: даъватҳои такрорӣ ба a.equals(b) натиҷаи якхеларо медиҳанд, агар объектҳо тағир наёбанд.

Масалан:

String s1 = "test";
String s2 = new String("test");
System.out.println(s1.equals(s2)); // true
System.out.println(s1.equals(s2)); // дар даъвати такрорӣ низ true

Аз ин рӯ, барои объектҳои баробар, методи equals боэътимод true бармегардонад.