-
[자바의 정석] ch7-24 ~ ch7-26 객체지향 개념 정리 (참조변수의 형변환, instanceof 연산자)Programming Language/Java 2021. 8. 10. 00:23
ch7-24,25 참조변수의 형변환
- 사용할 수 있는 멤버의 갯수를 조절하는 것
- [중요!] 조상 자손 관계의 참조변수는 서로 형변환 가능
123456789101112131415class Car { }class FireEngine extends Car { }class Ambulance extends Car { }FireEngine f = new FireEngine();Car c = (Car)f; // OK. 조상인 Car타입으로 형변환(생략가능)FireEngine f2 = (FireEngine)c; // OK. 자손인 FireEngine타입으로 형변환(생략가능)Ambulance a = (Ambulance)f; // 에러! 상속관계가 아닌 클래스 간의 형변환 불가cs ch7-26 instanceof 연산자
- 참조변수의 형변환 가능여부 확인에 사용. 가능하면 true 반환
- [중요!] 형변환 전에 반드시 instanceof 로 확인해야 함
1234567void doWork (Car c) {if (c instanceof FireEngine) {FireEngine fe = (FireEngine) c; // 1. 형변환이 가능한지 확인fe.water(); // 2. 형변환}}cs *instanceof 는 자기자신과 조상에 대하여 true
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
<-------------------------------------------------------------정리------------------------------------------------------------->
Q. 참조변수의 형변환은 왜 하나요?
A. 참조변수(리모콘)을 변경함으로써 사용할 수 있는 멤버의 갯수를 조절하기 위해서
FireEngine f = new FireEngine();
Car c = (Car) f; //OK. 조상인 Car타입으로 형변환 가능(생략가능)
Q. instanceof 연산자는 언제 사용하나요?
A. 참조변수를 형변환하기 전에 형변환 가능여부를 확인할 때
============================================================================
'Programming Language > Java' 카테고리의 다른 글
[암호화] SHA-256 암호화 방법 (알고리즘 소스코드 포함) (0) 2021.09.06 [자바의 정석] ch7-21 ~ ch7-23 객체지향 개념 정리 (접근제어자, 캡슐화, 다형성) (0) 2021.07.24 [자바의 정석] ch7-12 ~ ch7-20 객체지향 개념 정리 (패키지, import문, 제어자, abstract ) (0) 2021.07.22 [자바의 정석] ch7-1 ~ ch7-11 객체지향 개념 정리 (상속, Object클래스, 오버라이딩, 참조변수 super, 생성자super() ) (0) 2021.07.19 [자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화) (0) 2021.07.16