Java'да overriding equals ыкмасын колдонуу кандай?
Java'да overriding equals ыкмасын колдонуу кандай?

Video: Java'да overriding equals ыкмасын колдонуу кандай?

Video: Java'да overriding equals ыкмасын колдонуу кандай?
Video: Создание аннотации в java [Java Annotations | Reflection api] 2024, Апрель
Anonim

Бара тургандарды жокко чыгаруу жана hashCode in Java

барабар () ыкмасы болуп саналат колдонулган hashCode болгондо теңдик үчүн объекттерди салыштыруу колдонулган ошол объектке туура келген бүтүн кодду түзүү

Бул жерде Java'да барабар ыкмасын колдонуу деген эмне?

The барабар () ыкмасы теңдик үчүн эки объектти салыштырат жана эгер алар чын болсо, аны кайтарат барабар . The барабар () ыкмасы Object классында берилген колдонот эки объектинин бар-жоктугун аныктоо үчүн идентификациялык оператор (==). барабар . Примитивдүү маалымат түрлөрү үчүн бул туура натыйжа берет.

Кошумчалай кетсек, Java'да барабар ыкмасын кантип жокко чыгарасыз? Жогорудагы код классынын бөлүгүндө Person жокко чыгарылган equals() ыкмасына ээ, ал төмөнкү кадам-кадам ыкманы колдонгон:

  1. Эгерде бул объектке шилтеме аргумент объектисине шилтеме менен бирдей болсо, чындыкты кайтарыңыз.
  2. Аргумент нөл болсо, false кайтарыңыз.
  3. Эгер объекттер бир класстан болбосо, false кайтарыңыз.

Демек, эмне үчүн Java'да барабар ыкмасын жокко чыгарышыбыз керек?

Стринг классы жокко чыгарат the ыкмасына барабар ал Object классынан тукум кууп өткөн жана эки String объектинин мүнөзүн белги боюнча салыштыруу үчүн логиканы ишке ашырган. Себеби ыкмасына барабар Object классында теңдикке шилтеме жасайт, анткени ал башка нерсени кантип жасоону билбейт.

Java'да hashCode жана барабар ыкмасын жокко чыгаруу эмнени билдирет?

класс жокко чыгарса барабар , ал керек hashCode жокко чыгаруу . экөө тең болгондо жокко чыгарылган , барабар жана hashCode керек колдонуу талаалардын бирдей топтому. эки объект болсо барабар , анда алардын hashCode баалуулуктар болушу керек барабар ошондой эле. объект өзгөрбөс болсо, анда hashCode кэштөө жана жалкоо баштоо үчүн талапкер болуп саналат.

Сунушталууда: