미누에요
[Java] instanceof 본문
728x90
    
    
  반응형
    
    
    
  SMALL
    instanceof
다형적 참조를 이용할 때, 여러가지 방법으로 참조를 하게 된다.
이럴 때, 어떤 변수가 어떤 타입의 값을 참조하고 있는지 헷갈릴 수 있다.
그럴 때 확인할 수 있는 방법이 instanceof이다.
instanceof를 사용하는 방법에 대하여 알아보겠다.
우선 사용 형식이다.
(인스턴스 이름) instanceof (타입 이름)
위 형식대로 작성한다면, (인스턴스 이름) 이 (타입 이름)의 인스턴스인지를 확인하여 true , false 로 출력한다.
- (인스턴스 이름) : 인스턴스를 참조한 변수 이름이 들어간다.
- (타입 이름) : 클래스 이름이 들어간다.
예시 코드
package practice.poly;
public class instanceofex {
    public static void main(String[] args) {
        Parent parent1 = new Parent();
        System.out.println("parent1 호출");
        checkInstance(parent1);
        Parent parent2 = new Child();
        System.out.println("parent2 호출");
        checkInstance(parent2);
    }
    private static void checkInstance(Parent parent){
        parent.pMethod();
        if(parent instanceof Child){
            System.out.println("Child 인스턴스임");
            Child child = (Child) parent;
            child.cMthod();
        }
        else {
            System.out.println("Chlid 인스턴스 아님");
        }
        System.out.println();
    }
}
위 코드에서는 Parent 타입의 변수 parent1에 Parent 인스턴스를 참조하였고,
그리고 Parent 타입의 변수 parent2에 Child 인스턴스를 참조하였다.
각 변수별로 Child의 인스턴스인지 확인하는 함수인 checkInstance 함수를 작성하였고, 실행하는 코드이다.
만약 Child의 인스턴스라면(parent instanceof Child == true) , Child 인스턴스라는 말을 출력하고 cMethod를 실행한다.
아니라면, Child 인스턴스가 아니라고 출력한다.

위처럼 클래스의 인스턴스인지를 확인하여 에러 없이 상황에 맞게 코드를 실행할 수 있게된다.
이처럼 다형적 참조와 instanceof를 활용하면 더 좋은 코드를 작성할 수 있다.
728x90
    
    
  반응형
    
    
    
  LIST
    'Java' 카테고리의 다른 글
| [Java] static 메서드 (0) | 2024.05.10 | 
|---|---|
| [Java] 접근 지정자(Access Modifier), Public, Protected, Default, Private (0) | 2024.05.10 | 
| [Java] 다형성 - 다형적 참조, 다운캐스팅(Down Casting), 업캐스팅(Up Casting) (0) | 2024.04.10 | 
| [Java] this (0) | 2024.03.24 | 
| [Java] 클래스와 객체, 객체지향 프로그래밍(OOP) - 예시 (0) | 2024.03.24 | 

 
								 
								 
								