미누에요
[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 |