도토리 줍는 개발자 김지무

Kotlin 코틀린 Any란? - jimoo 본문

코틀린(Kotlin)공부

Kotlin 코틀린 Any란? - jimoo

지무 2021. 10. 22. 17:25
728x90
반응형

(아직 작성중이빈다...)

Any class에 대해 설명하도록 하겠습니다!

Any 클래스는 코틀린 클래스 계층의 루트입니다. 즉, Any 클래스는 모든 코틀린 클래스의 superclass입니다. 

(The root of the Kotlin class hierarchy. Every Kotlin class has Any as a superclass.)

 

Any class는 세 가지 함수를 제공합니다. 

1. equals() -> public open operator fun equals(other: Any?): Boolean

2. hashCode() -> public open fun hashCode(): Int

3. toString() -> public open fun toString(): String

 

1. equals() -> public open operator fun equals(other: Any?): Boolean 란?

equals의 매개변수로 Any class 나 null이 들어갈 수 있고 return값으로 boolean 값인 true 나 false를 리턴합니다.

equals()는 == 와 동일하다.  

a.equals(b) 과  a==b는 같은 의미이다.

Any Class의 function equals()

equals 함수는 other object가 이 개체와 동일한지 여부를 나타냅니다. 예를 들어 A.equals(B) 로 표현했을 때 B가 other object입니다. 

equals 를 사용하려면 다음 요구사항을 충족해야 합니다.

- Reflexive: non-null인 x 값에 대해, x.equals(x) 은 true로 return 된다.

- Symmetric: non-null인 x, y 값에 대해, y.equals(x)이 true를 return한다면 x.equals(y)도 true를 return 한다.

- Transitive: non-null인 x, y, z 값에 대해, x.equals(y)이 true를 return하고 y.equals(z)도 true를 return한다면 x.equals(z)도 true를 return 한다.

- Consistent: non-null인 x, y 값에 대해, x.equals(y)의 다중호출은 비교에 사용되는 object 정보가 수정되지 않는다면 일관되게 true 혹은 일관되게 false를 반환한다. 

- Never equal to null: non-null인 x 값에 대해, x.equals(null) 은 false로 return 된다.

 

https://kotlinlang.org/docs/equality.html

 

2. hashCode() -> public open fun hashCode(): Int 란?

 

Any Class의 function hashCode()

object의 hash code value를 return 한다. hashCode의 일반적인 조약은 다음과 같다.

- 동일한 객체에서 hashCode() 메소드가 여러 번 호출될 때,  hashCode() 메소드는 equals 비교에 사용된 객체의 정보가 수정되지 않으면 일관되게 같은 integer 값을 return 해야 한다.

- 만약 두 개의 객체가 equals() 메소드의 결과에 따라 같다면, 두 객체 각각에 대해 hashCode()메소드를 호출했을 때 같은 integer 결과가 나와야 한다.

 

3. toString() -> public open fun toString(): String 란?

객체의 정보를 출력하는 function 입니다.

Any Class의 function toString()

 

 

 

 

 

728x90
반응형
Comments