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

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

김영한의 실전 자바 - 기본편

equals method

작성

·

206

0

저는 강의를 듣고 문제를 풀다가 이러한 equals 메서드를 보게 되었습니다.

제가 생각 하기로는 public boolean equals( Date obj){

 

}

로 하는게 다운 캐스팅을 할 필요도 없고, 더 편할 것 같은데 특별한 이유가 있나요 ?

 

답변 2

0

안녕하세요. ghuhan18님, 공식 서포터즈 y2gcoder입니다.

생각하는자님께서도 말씀해주셨듯이 모든 클래스는 Object 클래스를 상속하고, Object 클래스를 상속하기 때문에 equals() 와 toString()을 오버라이딩해서 사용할 수 있습니다. 그리고 equals()는 Object 클래스에 있는 것을 상속하기 때문에 파라미터 타입 또한 Object 가 됩니다!

자세한 내용은 중급 1편 강의 중 섹션 1. Object 클래스 를 참고해주십쇼!

감사합니다.

0

이 내용은 "실전 자바-중급편"에 나오는 내용 아닌가요? 기본편 에 질문을 잘못 올리신 것 같은데..

실전 자바 -중급 ,

챕터 1 - object 클래스

toString(), object와 ocp, equals()1.동일성과 동등성, equals() - 2.구현

이 4편을 보면 알수 있을것 같습니다.

저가 생각 했을 때 object로 받은 이유는 클래스 라는 것들은 전부다 object에 속해 있으니 object라는 틀에 묶어서 비교 하는게 나중에 다른 코드가 추가 됬을 때 관리하기 쉽고, 보기가 쉽다 라고 생각합니다.

 

그리고 여담으로는 object에 toString()이라는 메서드를 쓰면 객체의 주소값을 출력을 합니다.

근데 toString() 메서드를 오버라이딩 하면 value값(주소값이 아닌 값을)을 출력을 합니다.

Date 클래스에 속한 값들(정보)을 쉽게 보기 위해서 object로 했다? 이것도 있을것 같습니다.

ghuhan18님의 프로필 이미지
ghuhan18

작성한 질문수

질문하기