ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 동일성과 동등성
    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
Designed by Tistory.