instanceof는 객체타입을 확인하는데 사용한다. 속성은 연산자이고 형변환이 가능한 지 해당 여부를 true 또는 false로 가르쳐준다. 객체 타입이라 하니 어려운 개념 같은데, 주로 부모 객체인지 자식 객체인지 확인하는데 쓴다고 생각하면 된다.

 

현재 참조하고 있는 클래스를 확인할 수 있는 메소드인 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인 이유는 간단하다. 부모가 있어야 자식이 있는데, 세 번째는 부모가 자식이 되려 했기 때문이다.

 


+ Recent posts