[JAVA] Object 클래슀


Contents


Object 클래슀

μžλ°”μ˜ λͺ¨λ“  ν΄λž˜μŠ€λŠ” Objectλ₯Ό μƒμ†λ°›λŠ”λ‹€. 즉 ObjectλŠ” λͺ¨λ“  클래슀의 λΆ€λͺ¨μ΄λ‹€.

Java의 λͺ¨λ“  κ°μ²΄λŠ” Object νƒ€μž…μœΌλ‘œ μ—…μΊμŠ€νŒ…ν•΄μ„œ 관리가 κ°€λŠ₯ν•˜λ‹€.


Object class의 λ§€μ„œλ“œ

λ‹€μŒμ€ Object의 λ©”μ„œλ“œλ“€μ΄λ©° μžμ‹ ν΄λž˜μŠ€μ—μ„œ νŽΈμ˜μ— 맞게 μž¬μ •μ˜ν•΄μ„œ μ‚¬μš©ν•œλ‹€.

  • equals() : 객체 λ₯Ό μœ„ν•΄ μž¬μ •μ˜ν•œλ‹€.
  • toString() : 객체의 μ„€λͺ…μ„λ‚΄λΆ€μ˜ κ°’ 비ꡐ μœ„ν•΄ μž¬μ •μ˜ν•œλ‹€.
  • hashCode() : 객체 λ‚΄λΆ€ κ°’μœΌλ‘œ 객체λ₯Ό 식별(같은 객체인지 식별)ν•˜κΈ° μœ„ν•΄ μž¬μ •μ˜ν•œλ‹€.

hashCode()와 equals()

  • equals()
    • 동등성을 ν™•μΈν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.
      • 동등성 : 두 개의 객체가 같은 정보λ₯Ό κ°–κ³  μžˆλŠ” 경우λ₯Ό μ˜λ―Έν•œλ‹€.
  • hashCode()
    • 동일성을 ν™•μΈν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.
      • 동일성 : 두 개의 객체가 μ™„μ „νžˆ 같은 경우λ₯Ό μ˜λ―Έν•œλ‹€.

Setμ—μ„œλŠ” μ€‘λ³΅λ˜λŠ” 값을 넣을 수 μ—†κΈ° λ•Œλ¬Έμ— μƒˆλ‘œμš΄ 값을 넣을 λ•Œ hashCode()λ₯Ό 톡해 λ™μΌν•œ 객체인지 ν™•μΈν•œλ‹€.

λ§Œμ•½ hash codeκ°€ λ™μΌν•œ 객체가 μ‘΄μž¬ν•œλ‹€λ©΄ equalsλ₯Ό 톡해 동등성을 ν™•μΈν•œ ν›„ Set에 λ„£κ±°λ‚˜ λ„£μ§€ μ•ŠλŠ”λ‹€.

νŠΉμ • μ‘°κ±΄μ—μ„œ Set에 객체λ₯Ό μΆ”κ°€ν•˜κ³  싢을 경우 객체의 hashCode()와 equals()λ₯Ό μž¬μ •μ˜ν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λœλ‹€.

equals()λ₯Ό μž¬μ •μ˜ν•˜λŠ” 경우 hashCode() μ—­μ‹œ 객체 자체의 값을 λ°˜ν™˜ν•˜λ„λ‘ μž¬μ •μ˜ν•΄μ•Ό ν•œλ‹€.