[Java의 정석]Chapter7.객체지향 프로그래밍2(26)

Hello_Wendy·2022년 5월 19일
0

자바의 정석

목록 보기
57/61
post-thumbnail

Chapter 7. 객체지향 프로그래밍 2

26. instanceof 연산자

  • instanceof : 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 사용하는 연산자
  • instanceof의 왼쪽에는 참조변수를, 오른쪽에는 타입(클래스명)이 피연산자로 위치
  • 연산의 결과로 boolean값인 true와 false 중의 하나를 반환
  • instanceo를 이용한 연산결과로 true를 얻었다는 것은 참조변수가 검사한 타입으로 형변환이 가능하다는 것
    +) 값이 null인 참조변수에 대해 instanceof연산을 수행하면 false를 결과로 얻음
void doWork(Car c) {
	if(c instanceof FireEngine) { //1.형변환이 가능한지 확인
    	FireEngine fe = (FireEngine)c; //2.형변환
        fe.water();
        ...
  • 위의 코드는 Car타입의 참조변수 c를 매개변수로 하는 메서드임
  • instanceof 연산자로 참조변수 c가 가리키고 있는 인스턴스의 타입을 체크하고, 적절히 형변환한 다음에 작업해야 함
  • 조상타입의 참조변수로는 실제 인스턴스의 멤버들을 모두 사용할 수 없기 때문에 실제 인스턴스와 같은 타입의 참조변수로 형변환을 해야만 인스턴스의 모든 멤버들을 사용 가능
profile
안녕 나의 새로운 세상

0개의 댓글