instanceof 연산자

essential·2023년 8월 21일

객체 지향

목록 보기
29/40

instanceof 연산자**

  • 참조 변수의 형변환 가능 여부 확인에 사용. 가능하면 true 반환
    • 형변환 해도 되는지(instance of 연산자 사용) → 형변환
  • 형변환 전에 반드시 instanceof 로 확인 해야 함
void doWork(Car c) {
	if (c instanceof FireEngine) { // 1. 형변환이 가능한지 확인
			FireEngine fe = (FireEngine)c; // 2. 형변
			fe.water();

FireEngine fe = new FireEngine();
System.out.prinln(fe intanceof Object); //true (조상)
System.out.prinln(fe intanceof Car); //true (조상)
System.out.prinln(fe intanceof FireEngine); //true (자신)

Object obj = (Object)fe; //ok
Car c = (Car)fe; //ok

Q. 참조 변수의 형변환은 왜 하나요?

A. 참조 변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 개수를 조절하기 위해서(주소 값도 동일, 객체도 동일)

Q. instanceof 연산자는 언제 사용하나요?

A. 참조 변수를 형변환 하기 전에 형변환 가능 여부를 확인 할 때

profile
essential

0개의 댓글