instanceof 연산자
- 참조변수의 형변환 가능여부 확인에 사용. 가능하면 true 반환
- instanceof 연산자를 통해 형변환을 해도 되는지 확인한 이후에 형변환 진행 !
void doWork(Car c) {
if (c instanceof FireEngine) {
FireEngine fe = (FireEngine)c;
fe.water();
}
}
FireEngine fe = new FireEngine();
System.out.println(fe instanceof Object);
System.out.println(fe instanceof Car);
System.out.println(fe instanceof FireEngine);
- Q. 참조변수의 형변환은 왜 하나요?
- A. 참조변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 개수를 조절하기 위해서
FireEngine f = new FireEngine();
Car c (Car)f;
f는 FireEngine의 참조변수 이므로 5개 객체를 사용가능하지만 Car로 형변환을 하고난 이후에 4개만 사용가능 (객체가 잘리거나 변하는 것 x, 참조변수(리모콘)을 변경하여 5개 중 4개만 사용가능하게 한 것)
- Q. instanceof 연산자는 언제 사용하나요?
- A. 참조변수를 형변환하기 전에 형변환 가능여부를 확인할 때