# Table Of Contents

# 형 변환

형 변환은 자료형을 다른 자료형으로 변환하는 것을 의미한다.

# 기본자료형의 형변환

기본 자료형을 형변환할 때는 내장된 형변환 함수를 사용한다.

// 실수형 숫자를 정수형 숫자로 형변환
var height: Double = 179.3
var roughHeight: Int = height.toInt()  // 179
// 문자열을 정수형 숫자로 형변환
var string: String = "100"
var number: Int = string.toInt()  // 100
var string: String = "hundred"
var number: Int? = string.toIntOrNull()  // null

# 클래스 인스턴스의 형변환

클래스 인스턴스를 형변환할 때는 키워드 as를 사용한다.

// 부모클래스
open class Person(var name: String) {
    fun printName() {
        println("Name: ${name}")
    }
}

// 자식클래스
class Player(name: String, var team: String): Person(name) {
    fun printTeam() {
        println("Team: ${team}")
    }
}

var player: Player = Player("Messi", "35")

// 자식클래스를 부모클래스로 형변환
var person: Person = player as Person

person.printName()

부모클래스가 Nullable타입이면 키워드 as?를 사용한다.

open class Person(var name: String) {
    fun printName() {
        println("Name: ${name}")
    }
}

class Player(name: String, var team: String): Person(name) {
    fun printTeam() {
        println("Team: ${team}")
    }
}

var player: Player? = Player("Messi", "35")
var person: Person? = player as? Person

person?.printName()