ch12 : Object
λͺ©μ°¨
Object
λͺ¨λ ν΄λμ€λ Object ν΄λμ€λ₯Ό μμλ°λλ€.
μ¦, λͺ¨λ ν΄λμ€λ Object ν΄λ μ€μ μλ λ©μλλ€μ μ¬μ© κ°λ₯ν¨ (toString, equals, hashCode λ±)
μ£Όλ‘ μ¬μ©νλ λ©μλλ toString, equals, hashCodeμ΄κ³ , νμμ μ€λ²λΌμ΄λ©νμ¬ μ¬μ©νλ€.
μ°Έκ³ λ‘ μλ°λ λ€μ€ μμμ λ°μ μλ μμ§λ§, μ¬λ¬ λ¨κ³λ‘ μμ λ°μ μλ μλ€. (μμ. Obect β Parent β Child)
toString
μ΄λ€ κ°μ²΄μΈμ§ λνλΌ μ μλ€.
toString()μ΄ μλμΌλ‘ νΈμΆλλ κ²½μ°
System.out.println()
κ°μ²΄(Stringμ μ μΈ)μ λνκΈ° μ°μ°νλ κ²½μ°
toString() λ΄λΆ
System.out.println(obj); // μλ obj.toString() νΈμΆ! System.out.println(obj.toString()); // κΈ°λ³Έ toString() λ΄λΆ getClass().getName() + '@' + Integer.toHexString(hashcode()); // μΆλ ₯ // ν¨ν€μ§,ν΄λμ€λͺ + '@' + κ°μ²΄μ ν΄μμ½λμ€λ²λΌμ΄λ©
DTO ν΄λμ€μμ λ΄λΆ νλ λ°μ΄ν°λ₯Ό νμΈνκ³ μΆμ κ²½μ°, μ€λ²λΌμ΄λ©νμ¬ μ¬μ©ν κ² β IDE νμ©ν΄μ μ€λ²λΌμ΄λ©νλ©΄ κ°λ¨!
public clas DTO { // μ€λ²λΌμ΄λ© public String toString() { return "name = " + name + "phone" + phone; } }
equals
μ°Έμ‘°μλ£νμ κ°λΉκ΅
==: μ£Όμκ°μ λΉκ΅ν¨.equals(): μ€λ²λΌμ΄λ©ν΄μ κ°μ²΄μ κ° λΉκ΅ν μ μμ.μ€λ²λΌμ΄λ© μνλ©΄ κΈ°λ³Έμ μΌλ‘ hashCode()κ°(κ°μ²΄μ μ£Όμκ°)μ λΉκ΅νκΈ°μ, λ ν΄λμ€μ μΈμ€ν΄μ€λ³μκ° κ°μλ λ€λ₯΄λ€κ³ λμ΄!
λ¨, equals() μ€λ²λΌμ΄λ©ν λ, hashCode()λ κ°μ΄ μ€λ²λΌμ΄λ© ν΄μ€μΌνλ€.
hashCode
κ°μ²΄μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό 리ν΄νλ€. (16μ§μ)
equals(), hashCode() μ€λ²λΌμ΄λ©μ ν΄μ μλμμ±μ μ΄μ©ν κ²!
Last updated