TIL | JAVA instanceof 연산자

김윤희·2022년 8월 1일
0

instanceof 연산자

instanceof 연산자


  • 참조변수의 형변환 가능여부 확인에 사용한다(참조변수 형변환은 조상과 자손간에만 가능하다)
    • 가능하면 true 반환
  • 형변환 전에 반드시 instanceof로 확인해야함
void doWork(Car c){
	 if (c instanceof FireEngine){		// 1. 형변환이 가능한지 확인
     	FireEngine fe = (FireEngine)c	// 2. 형변환
        fe.water();
     }
}

✔ doWork(Car c)에는 아래의 세문장이 모두 가능하다

  • doWork(new Car());
  • doWork(new FireEngine());
  • doWork(new Ambulance());

✔ doWork(new FireEngine());은 아래와 동일
Car c= new FireEngine();
doWork(c)

FireEngine fe = new FireEngine();
System.out.println(fe instanceof Object);		//true
System.out.println(fe instanceof Car);			//true
System.out.println(fe instanceof FireEngine);	//true

object obj = (object)fe;	//ok
Car      c = (Car)fe;		//ok
  • FireEngine < Car < Object(최고 조상)

  • 📚 참조변수의 형변환은 왜 하나❓
    • 참조변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 개수를 조절하기 위해서
  • 📚 instanceof 연산자는 언제 사용하나❓
    • 참조변수를 형변환하기 전에 형변환 가능여부를 확인할 때

0개의 댓글