TIL_180429 Object class, API
Object class
모든 클래스의 조상, 따로 지정하지 않아도 사용자가 지정한 클래스는 object 클래스를 기본적으로 상속 하게됨
Object method - 1) toString
- 부모클래스에서 상속되는 것이므로 오버라이딩 가능
- super.toString() / instance.toString() 다른결과 나오게 가능
- System.out.println()을 하면, 자바는 암시적으로 .toString()메소드로 호출됨
Object method - 2) equals
- 객체와 객체가 같은 것인지를 비교하는 API (오버라이딩 이용)
- boolean타입의 리턴값을 갖음
- hashcode()도 함께 알고있어야 제대로 된 API구현이 가능
- primitive 데이터 형에는 비교연산자를 통해 비교연산이 가능 (equals 필요X)
|
|
[다형성 형변환]
자식 데이터타입은 부모 데이터타입에 할당될 수 있음 (매개변수 obj) - 다형성
Object 데이터타입에는 name이라는 멤버가 없기에 부모데이터타입으로 변환된(s2->obj) 변수를 다시 Student 데이터타입으로 전환해야함
그러나, 자식이 부모행세를 하는것은 가능하나, 부모가 자식행세를 하는 것은 불가능하기 때문에 앞에 강제로 (형번환데이터타입)을 명시해주어야함
Object method - 3) clone
- 객체를 똑같이 복사해주는 메소드
- 단, 복제가능한 객체라는 사실을 자바 vm에게 알려주어야함
- 이를 위해 Cloneable 인터페이스를 구현 (implements Clonable)
- 접근제어자 protected(같은 패키지안에서만 접근 가능) -> 즉, object에 내장되어있는 API로 자동접근은 불가 -> protected는 상속은 가능하기에, 상속을 통한 접근으로 클론해야함 (이때 접근제어자를 public으로)
- clone은 예외가 강제되어 있기 때문에 throws 해주어야함
- 따라서, 메인 메소드에서 사용자가 그 예외를 어떻게 처리할 것인지 적어주어야함
|
|