instanceof는 객체타입을 확인하는데 사용한다. 속성은 연산자이고 형변환이 가능한 지 해당 여부를 true 또는 false로 가르쳐준다. 객체 타입이라 하니 어려운 개념 같은데, 주로 부모 객체인지 자식 객체인지 확인하는데 쓴다고 생각하면 된다.
현재 참조하고 있는 클래스를 확인할 수 있는 메소드인 getClass를 함께 알아두면 좋다.
관련글보기: - 자바(Java) getClass 메소드 사용방법
instanceof의 사용형식은 ‘객체 + instanceof + 클래스’ 이다.
A를 부모, B를 자식 클래스로 세팅하고 두 클래스 간 형변환이 가능한지 확인해보았다.
class A{}
class B extends A{}
class instanceofEx01 {
public static void main(String[] args) {
A a = new A();
B b = new B();
System.out.println("a instanceof A : " + (a instanceof A));
System.out.println("b instanceof A : " + (b instanceof A));
System.out.println("a instanceof B : " + (a instanceof B));
System.out.println("b instanceof B : " + (b instanceof B));
}
}
<결과>
a instanceof A : true
b instanceof A : true
a instanceof B : false
b instanceof B : true
세 번째 결과가 false인 이유는 간단하다. 부모가 있어야 자식이 있는데, 세 번째는 부모가 자식이 되려 했기 때문이다.
'문돌이의 IT > 자바(Java)' 카테고리의 다른 글
자바(Java) 정적(static)멤버, 정적초기화블럭 (0) | 2016.03.13 |
---|---|
자바(Java) instanceof, getClass 활용예제 (0) | 2016.03.12 |
자바(Java) getClass 메소드 사용방법 (0) | 2016.03.10 |
자바(Java) 상속(Inheritance) super & Override 개념 이해 (0) | 2016.03.09 |
자바(Java) 상속(Inheritance)의 개념과 의미를 파헤치자 (0) | 2016.03.08 |