Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[Java]객체 타입 확인 instanceof 란??? 본문

코딩/JAVA

[Java]객체 타입 확인 instanceof 란???

코딩거인 2023. 12. 24. 17:24
728x90

객체 타입 확인 instanceof ??
instanceof
  • instanceof 는 객체 타입을 확인하는 연산자이다.
  • 형변환 가능 여부를 확인하여 True / False 의 결과를 반환한다.
  • 주로 상속 관계에서 부모 객체인지 자식 객체인지 확인하는데 사용 
class Parent{}
class Child extends Parent{}

public class InstanceofTest {

    public static void main(String[] args){

        Parent parent = new Parent();
        Child child = new Child();

        System.out.println( parent instanceof Parent );  // true
        System.out.println( child instanceof Parent );   // true
        System.out.println( parent instanceof Child );   // false
        System.out.println( child instanceof Child );   // true
    }

}

 

세번째 예시가 false 가 반환 되었는데 그 이유는??
instanceof 를 객체타입확인, 형 변환 가능여부 확인 이라고 하였는데 더 간단하게 표현한다면
instanceof 해당 클래스가 자기집이 맞는지 확인해 주는것이라고 생각하면 간단하다.
  1. parent instanceof Parent : 부모가 본인 집을 찾았으니 true
  2. child instanceof Parent : 자식이 상속받은 부모 집을 찾았으니 true (상속을 받았으니 자기 집이라 해도 무방하다?)
  3. parent instanceof Child : 부모가 자식 집을 찾았으니 false (자식 집은 자식 집이지 부모 집은 아니니까)
  4. child instanceof Child : 자식이 본인 집을 찾았으니 true

위에서 설명한 것과 마찬가지로 이러나저러나 본인이 이해하기 쉽게 받아들이면 될 것 같다.

누구한테는 하위 클래스니 상위 클래스니 하면서 접근하는 게 이해가 더 잘 될 수 있으니 말이다.

형 변환이 불가능한 즉 타입이 상위 클래스도 하위 클래스도 아닐 경우에는 에러가 난다.

 

참고문헌

 

[JAVA] 자바_instanceof (객체타입 확인)

- 객체 타입 확인 instanceof - instanceof - instanceof는 객체 타입을 확인하는 연산자이다. - 형변환 가능 여부를 확인하며 true / false로 결과를 반환한다. - 주로 상속 관계에서 부모객체인지 자식 객체인

mine-it-record.tistory.com

 

728x90