강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

zeler1004님의 프로필 이미지
zeler1004

작성한 질문수

김영한의 실전 자바 - 중급 1편

섹션 2 퀴즈

자바 equals() 메소드에 대한 물리적 동일성, 논리적 동등성 질문

작성

·

6

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)


2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)


3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

김영한 자바 중급1의 섹션2에서 equals의 동일성과 동등성에 대한 내용의 퀴즈내용중에서 질문이 있습니다.(이미지 참조)

스크린샷 2025-10-21 오전 12.57.57.png

 

자바에서는 기본적으로 "=="연산자와 equals()메소드는 "물리적 동일성"으로 println을 했을때 둘 다 false로 잡히는것으로 이해가 되고 있는데요. 오버라이드를 별도로 생성해야 물리적 동일성과 논리적 동등성에 대한 euqals메소드를 차이점을 갖고 사용할 수 있는것으로 이해했습니다. 맞을까요?

그렇다면, 위의 섹션2 퀴즈 내용에서의 문제같은 경우는 좀더 세부적인 명시가 있어야 하는게 아닌지 아니면 제가 이해를 잘 못하고 있는 부분이 있는지 조언이 필요하여 Q&A에 질문을 남깁니다.

 

좋은 가르침 항상 감사합니다 ( _ _ )

 

답변 2

0

zeler1004님의 프로필 이미지
zeler1004
질문자

그럼 퀴즈의 질문자체에서는 자바에서는 조건에 따라서 무엇을 비교하는지에 대한 안내가 추가적으로 있어야 문제에서의 의도가 혼란이 없을것이라고 생각이 되어지는데 제가 생각한 부분이 잘못된 것인지 판단할 수 있는 조언이 필요합니다. 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. zeler1004님 질문에 답변 드리겠습니다.

자바에서 == 연산자와 equals() 메서드는 서로 다른 용도로 사용됩니다. == 연산자는 객체의 물리적 동일성을 비교하는데 사용되며, 두 객체가 메모리 상에서 같은 위치에 있는지를 확인합니다. 반면에 equals() 메서드는 논리적 동등성을 비교하는 데 사용되며, 두 객체가 같은 내용을 가지는지를 확인하도록 설계되어 있습니다.

기본적으로, 모든 자바 객체는 Object 클래스를 상속받습니다. Object 클래스에서 제공하는 기본 equals() 메서드는 == 연산자와 같은 방식으로 동작하여 물리적 동일성을 비교합니다. 그러나, 이 equals() 메서드는 오버라이드되어 특정한 객체의 상태나 내용을 비교하는 논리적 동등성을 평가하도록 변경할 수 있습니다. 이러한 오버라이드는 String, Integer와 같은 기본 클래스에서 이미 구현되어 있습니다.

질문하신 퀴즈 내용에서는 ==equals() 메서드의 기본적인 차이를 설명하고 있으며, 실제로 equals()를 사용하여 논리적 동등성을 구현하기 위해서는 오버라이딩을 잘 이해하고 있는 것이 중요합니다.

동일한 주제에 대해 더 심도 있는 설명은 다음의 기존 답변들을 참고하실 수 있습니다:

  • 동일성, 동등성 - 여기서는 equals() 메서드를 올바르게 구현하여 객체의 논리적 동등성을 비교하는 방법과 필요성에 대해 설명합니다.

  • equals 메서드도 - 이 게시글에서는 equals() 메서드 재정의의 중요성을 다루며, 객체 비교의 특성에 대해 공부할 수 있습니다.

이와 같은 자료들을 참고하시면서 실전을 겸한 이해를 넓혀나가신다면, equals() 메서드의 목적과 구현 방법에 대해 더욱 명확한 관점을 가지실 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

zeler1004님의 프로필 이미지
zeler1004

작성한 질문수

질문하기