강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của zeler1004
zeler1004

câu hỏi đã được viết

Thực chiến Java của Kim Young-han - Trung cấp phần 1

Quiz Phần 2

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

Viết

·

85

0

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


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


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

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

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

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

 

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

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

 

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

 

java객체지향equals물리적동일성논리적동등성-

Câu trả lời 3

0

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. zeler1004님

AI 퀴즈를 인프런 플랫폼에서 AI를 통해서 자동화해서 제공하고 있는 기능인데요.

기능이 아직 완벽하지는 않은 것 같아요.

자바의 경우 기본적으로 ==은 물리적 비교, equals()는 논리적 비교로 보는 것이 맞습니다.

다만 equals()를 구현하지 않으면 Object가 제공하는 기본 equals()를 사용하게 되고, 해당 구현의 기본 기능은 ==와 같은 물리적 비교입니다.

감사합니다.

zeler1004님의 프로필 이미지
zeler1004
Người đặt câu hỏi

구현하지 않는 다는 전제에도 기본적으로 자바는 ==는 물리적 비교인 동일성, equals()는 논리적 비교인 동등성으로 보는거군요!

감사합니다 !

0

zeler1004님의 프로필 이미지
zeler1004
Người đặt câu hỏi

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

0

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

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

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

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

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

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

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

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

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

Hình ảnh hồ sơ của zeler1004
zeler1004

câu hỏi đã được viết

Đặt câu hỏi