toString
Object 클래스는 java.lang 패키지 소속이며, 컴파일시 자동 import 됩니다.
또한 모든 클래스는 이 Object 클래스를 자동으로 상속합니다.
명시하지 않아도 아래의 import 와 extends 를 사용한 것과 같습니다.
import java.lang.* class DataObject extends Object { }
여기에 더불어 Object 정보를 출력했을 때 default 로 표시되는 메소드는 toString() 입니다.
Object 정보는 클래스이름@고유번호(참조값) 으로 출력됩니다.
getClass().getName() + '@' + Integer.toHexString(hashCode())
보다시피 hashCode()는 객체의 고유번호를 10진수로 가져오고 toHexString 이 그 값을 16진수화 합니다.
class School { } public class t1 { public static void main( String[] args ) { School s = new School(); System.out.println(s); System.out.println(s.toString()); } } /* School@785d65 School@785d65 */
toString() 메소드는 결과를 알아보기 쉽게 재정의(Overriding)하여 사용하기도 합니다.
equals
new 생성자로 생성된 객체의 참조값을 비교할 때 Object 클래스의 equals()를 사용할 수 있습니다.
equals()는 == 연산자와 동일한 결과를 나타냅니다.
toString() 메소드처럼 주로 사용자가 재정의(Overriding)하여 사용합니다.
이것이 == 연산자와의 차이점입니다.
School s1 = new School(); School s2 = new School(); System.out.println( s1 ); // School@785d65 System.out.println( s2 ); // School@3bc257 System.out.println( s1 == s2 ); // false System.out.println( s1.equals(s2) ); // false
하지만 이 외에도 미리 equals()를 재정의한 클래스도 있습니다.
String : 문자열 비교
Wrapper : 데이터 타입의 값 비교
Date : 날짜와 시간 비교
File : 경로 비교
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,