Search
📗

30강. 형변환

무단 도용 및 복제, 사용 저작권 안내 수업 목적 외에 모든 교안 자료를 무단으로 도용 (URL 연결, 복제, 공유), 불법으로 복사하여 배포하는 것을 금지합니다. 꼭 지켜주세요!

1. 형변환

변수에 담긴 값이나 객체를 다른 형태로 변환하는 것을 의미한다.
Kotlin은 모든 값을 객체로 관리하기 때문에 Kotlin에서의 형변환은 다른 클래스 타입의 객체로 변환하는 것을 의미한다.
자식 클래스 타입으로의 변환
부모 클래스 타입으로의 변환
다른 자료형 타입으로의 변환
null 허용과 null 불허용 간의 변환

2. 스마트 캐스팅

특정 조건을 만족하면 자동으로 형변환이 발생하는 개념이다.
스마트 캐스팅 기능 덕분에 형변환에 대해 개발자가 크게 신경을 쓰지 않아도 된다.
형 변환은 객체의 클래스 타입이 아닌 객체의 주소 값을 가지고 있는 참조 변수의 타입이 변경되는 것이다.

3. 객체 타입 변환

객체의 타입 변환은 상속관계나 구현한 인터페이스 타입에 해당한다.
부모 클래스 타입으로의 형 변환
자식 클래스 타입으로의 형 변환
구현한 인터페이스 타입으로의 형 변환
인터페이스를 구현한 클래스 타입으로의 형 변환

4. as 연산자

객체를 지정된 클래스 타입으로 변환하는 연산자이다.
참조변수 as 클래스타입
만약 객체가 지정된 클래스타입과 관계가 없을 경우 오류가 발생한다.
형 변환이 발생한 참조 변수는 변환된 타입을 유지한다.

5. is 연산자

형 변환이 가능하면 변환을 하고 true를 반환한다.
if 문으로 구성하여 사용하며 if 문 내에서만 변환된 타입을 사용하고 if 문을 나가게 되면 변환되기 전의 타입으로 다시 변경된다.

6. Any 타입

Kotlin은 모든 클래스가 직접 혹은 간접적으로 Any 클래스를 상속받는다.
따라서 모든 객체의 주소 값은 Any 타입 참조 변수에 담을 수 있다.
Any 타입과 is 연산자를 활용하여 다양한 타입의 객체에 대응할 수 있는 코드를 만들 수 있다.

7. 기본 타입의 형 변환

Kotlin 에서는 기본 타입을 관리하는 객체의 타입을 변경하는 메서드를 제공한다.
참조 변수의 타입이 변경되는 것이 아닌 새로운 객체가 생성되어 반환된다.
toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()

8. 학습 정리

정리
Kotlin은 상황에 따라 자동으로 타입을 변경할 수 있는 스마트 캐스팅을 지원한다.