Sobes.tech
Junior — Middle

Дар кадҳо тавсия дода мешавад, ки усули equals барои муқоиса кардани объектҳо истифода шавад?

sobes.tech AI

Ҷавоб аз AI

Тавсия мешавад, ки барои муқоиса кардани объектҳо, вақте ки лозим аст, ки баробарии мантиқии онҳоро санҷед, на танҳо ишораҳои онҳоро (суроғаҳои дар хотира) истифода баред.

Дар Java, масалан, оператор == санҷиш мекунад, ки оё ду тағирот ба як объект ишора мекунанд, дар ҳоле ки equals мазмуни объектҳоро мувофиқи қоидаҳо муқоиса мекунад.

equals-ро истифода баред, вақте:

  • Мехоҳед объектҳоро ба арзиш муқоиса кунед (масалан, сатрҳо, синфҳои махсус бо equals навиштаи нав).
  • Объектҳо метавонанд маълумоти якхела дошта бошанд, аммо ишораҳои гуногун дошта бошанд.

Масалан:

String a = new String("test");
String b = new String("test");

System.out.println(a == b); // false, объектҳои гуногун
System.out.println(a.equals(b)); // true, мазмуни якхела

Агар синф equals-ро навиштан накунад, он аз рафтор дар Object мерос мегирад, ки дар он ишораҳо муқоиса мешаванд.