작성
·
12
0
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
예
[질문 내용]
여기에 질문 내용을 남겨주세요.
김영한 자바 중급1의 섹션2에서 equals의 동일성과 동등성에 대한 내용의 퀴즈내용중에서 질문이 있습니다.(이미지 참조)
자바에서는 기본적으로 "=="연산자와 equals()
메소드는 "물리적 동일성"으로 println을 했을때 둘 다 false로 잡히는것으로 이해가 되고 있는데요. 오버라이드를 별도로 생성해야 물리적 동일성과 논리적 동등성에 대한 euqals메소드를 차이점을 갖고 사용할 수 있는것으로 이해했습니다. 맞을까요?
그렇다면, 위의 섹션2 퀴즈 내용에서의 문제같은 경우는 좀더 세부적인 명시가 있어야 하는게 아닌지 아니면 제가 이해를 잘 못하고 있는 부분이 있는지 조언이 필요하여 Q&A에 질문을 남깁니다.
좋은 가르침 항상 감사합니다 ( _ _ )
답변 2
0
그럼 퀴즈의 질문자체에서는 자바에서는 조건에 따라서 무엇을 비교하는지에 대한 안내가 추가적으로 있어야 문제에서의 의도가 혼란이 없을것이라고 생각이 되어지는데 제가 생각한 부분이 잘못된 것인지 판단할 수 있는 조언이 필요합니다. 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. zeler1004님 질문에 답변 드리겠습니다.
자바에서 ==
연산자와 equals()
메서드는 서로 다른 용도로 사용됩니다. ==
연산자는 객체의 물리적 동일성을 비교하는데 사용되며, 두 객체가 메모리 상에서 같은 위치에 있는지를 확인합니다. 반면에 equals()
메서드는 논리적 동등성을 비교하는 데 사용되며, 두 객체가 같은 내용을 가지는지를 확인하도록 설계되어 있습니다.
기본적으로, 모든 자바 객체는 Object
클래스를 상속받습니다. Object
클래스에서 제공하는 기본 equals()
메서드는 ==
연산자와 같은 방식으로 동작하여 물리적 동일성을 비교합니다. 그러나, 이 equals()
메서드는 오버라이드되어 특정한 객체의 상태나 내용을 비교하는 논리적 동등성을 평가하도록 변경할 수 있습니다. 이러한 오버라이드는 String
, Integer
와 같은 기본 클래스에서 이미 구현되어 있습니다.
질문하신 퀴즈 내용에서는 ==
과 equals()
메서드의 기본적인 차이를 설명하고 있으며, 실제로 equals()
를 사용하여 논리적 동등성을 구현하기 위해서는 오버라이딩을 잘 이해하고 있는 것이 중요합니다.
동일한 주제에 대해 더 심도 있는 설명은 다음의 기존 답변들을 참고하실 수 있습니다:
동일성, 동등성 - 여기서는 equals()
메서드를 올바르게 구현하여 객체의 논리적 동등성을 비교하는 방법과 필요성에 대해 설명합니다.
equals 메서드도 - 이 게시글에서는 equals()
메서드 재정의의 중요성을 다루며, 객체 비교의 특성에 대해 공부할 수 있습니다.
이와 같은 자료들을 참고하시면서 실전을 겸한 이해를 넓혀나가신다면, equals()
메서드의 목적과 구현 방법에 대해 더욱 명확한 관점을 가지실 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.