-
동일성과 동등성CS(ComputerScience) 2021. 7. 21. 19:42
안녕하세요. 그린입니다🟢
이번 포스팅에서는 동일성과 동등성에 대해 알아보겠습니다💁🏻
동일성과 동등성 그냥 알아보기전 뜻풀이부터 나름대로 추측해볼까요?
동일성은 A와 B가 전부 같은 즉 동일할때 쓰인다고 보이고,
동등성은 A와 B가 완전히 같진 않지만 같은 부분들이 있어 동등하게 볼 수 있다? 라고 느껴집니다.
그럼 조금 더 자세히 객체지향을 생각하며 알아보겠습니다.
객체지향에서는 두개의 A와 B 객체가 있다고 가정합시다!
그럼 A와 B의 객체는 서로 다른 주소값을 같습니다.
이 경우에는 A와 B가 같은 주소값을 가르키기 않기에 완전히 같다고 할 수 없습니다.
즉 위의 개념으로 동일성과 동등성을 간략히 정리해보겠습니다.
- 동일성: A와 B의 객체가 완전히 같은 경우를 의미
- 동등성: A와 B의 객체가 같은 정보를 가질 경우를 의미
조금은 감이 오시나요?
우리는 == 연산자로 같은지를 파악할때 자주 사용합니다.
이는 원시타입 자료형에서 같은지를 파악할때 자주 사용하는데 객체에서는 ==가 해당 객체의 주소값을 비교하는것입니다.
즉, 동일성을 비교한다고 볼 수 있습니다.
그렇다면 동등성은 어떻게 비교할까요?
equal 연산자를 이용해 같은 정보를 가진 객체인지 비교해줄 수 있습니다.
즉 코딩을 하다 동일성과 동등성이 헷갈려 조건의 비교가 안되는 상황이 많았습니다.
예를들어, 객체간 id 값을 비교해줘야하는 부분에서
A.id == B.id 로 비교하지 않고
A == B를 하게되어 발생한 문제도 있습니다.
이 두 차이를 잘 인지하여 즐거운 코딩을..💁🏻
'CS(ComputerScience)' 카테고리의 다른 글
Turing machine (튜링 머신) (46) 2023.09.21 Uniform Resource의 세가지 그림자 (URI & URL & URN) (0) 2022.01.30 연결 리스트 (2) 2021.05.20 큐 (Queue) (0) 2021.05.19 스택 (0) 2021.05.18