티스토리 뷰

LANGUAGE/JAVA

[JAVA] INSTANCEOF

진심스테이크 2018. 4. 15. 11:32

 

Instanceof : 객체 타입 확인

- 부모 타입의 변수가 부모 객체를 참조할 경우, 자식 타입으로 변환할 없다

- 부모 변수가 참조하는 객체가 부모 객체인지 자식 객체인지 확인

 

기본 형태

boolean 변수이름 = parent(객체) instanceof child(타입);

 

- parent 객체가 child 타입이면 true, 아니면 false 반환

#무조건 boolean으로 선언

 


 

 

예제

 

- Parent.class

public class Parent {

}

 

- Parent.class를 상속 받는 Child.class

public class Child extends Parent{

}

 

- Main

public class InstanceofEx {
    public static void method1(Parent parent) {
        // Child 타입으로 변환이 가능한지 확인
        if (parent instanceof Child) {
            Child child = (Child) parent;
            System.out.println("Method1 변환 성공");
        } else {
            System.out.println("Method1 변환 실패");
        }
    }

    public static void method2(Parent parent) {
        Child child = (Child) parent; //ClassCastException 발생
        System.out.println("Method2 변환 성공");
    }

    public static void main(String[] args) {
        // Child 객체를 매개밧으로 전달
        Parent p1 = new Child();
        method1(p1); //Method1 변환성공
        method2(p1); //Method2 변환 성공

        // Parent 객체를 매개값으로 전달
        Parent p2 = new Parent();
        method1(p2); //Method1 변환 실패
        method2(p2); //예외발생 -> 조건 없이 무조건 변환하라고 했기 때문
    }
}

'LANGUAGE > JAVA' 카테고리의 다른 글

[JAVA] ECLIPSE 단축키  (0) 2018.04.15
[JAVA] 경로  (0) 2018.04.15
[JAVA] WRAPPER CLASS  (0) 2018.04.15
[JAVA] GUI를 이용한 성적 처리  (0) 2018.04.14
[JAVA] LINKEDLIST를 이용한 성적 처리  (0) 2018.03.27
댓글