자바 동영상 강좌를 들으면서 자바 개념을 학습중이다.
"intanceof 연산자가 이거다"라고 쏙 머리속에 들어오지 않지만 블로깅하고 요약해서 적어둔다.
instanceof 연산자
- 프로그램 실행시 참조 데이터형을 검사하기 위해 사용되는 연산자이다.
- 형변환이 가능한지 묻는 연산자이다.
- 형변환이 가능하면 true, 가능하지 않으면 false를 반환한다.
A instanceof B
- A : Object
- B : Class or Interface
- B가 클래스일 경우에는 A가 반드시 B 클래스와 상속관계에 있어야먄 유효하다.
B 클래스 상속관계 : A가 B클래스의 객체이거나 하위 클래스의 객체
A와 B가 상속관계가 없을 경우 캐스팅이 불가능하기에 컴파일 타임에 에러를 발생시킨다.
- B가 인터페이스일 경우에는 컴파일 에러는 발생하지 않는다. 런타임 에러가 발생한다.
if(animal instanceof Dog){
System.out.println("멍멍이 짖는 소리");
} else if(animal instance of Duck){
System.out.println("오리가 우는 소리");
}
stackoverflow 에 나온 Answer 예제
public class Animal{ float age; } |
'안드로이드 > Java 문법' 카테고리의 다른 글
Java BubbleSort (0) | 2019.05.13 |
---|---|
java Singleton Design Pattern (0) | 2018.09.24 |
Java static 변수 이해하기 (0) | 2017.10.20 |
[Java] 정보은닉과 캡슐화 (0) | 2017.10.16 |
자바 기본 데이터형과 크기 (0) | 2017.10.11 |