분류 전체보기556 Kotlin] 21. 다운캐스팅 자바에서의 다운 캐스팅은 객체 앞에 (다운캐스팅 될 서브 클래스 타입)을 붙이면 다운 캐스팅이 됐다. 그럼 코틀린은? 코틀린은 as를 붙인다. 슈퍼클래스 as 서브클래스 로 다운 캐스팅을 한다. 예시를 보자. package downCastingEx import `object`.Person import `object`.Student fun main() { val person : Person = Student("John", 21, 20201209) val person2 : Person = Person("Kahn", 21) var person3 : Student = person as Student } 현재 Student는 Person의 서브 클래스 형태이다. Person3는 Person 성격을 가지는 pers.. 2020. 12. 9. Kotlin] 20. is 자바에는 instanceOf 함수가 있듯, 코틀린에는 is가 있다. 이것은 객체의 타입의 일치여부를 Boolean 타입으로 반환한다. 앞서 예시에서 Student는 Person을 상속했었다. 이제 예시를 보자. package isExample import `object`.Person import `object`.Student class Professor(name : String, age : Int) : Person(name, age) fun main(args : Array) { val person : Person = Student("Rose", 21, 20201209) println("${person is Person}") println("${person is Student}") println("${pe.. 2020. 12. 9. Kotlin] 19. Nullable? import `object`.Person fun main(args: Array): Unit { println("start") var person : Person ? = Person("K", 30) var num : Int? = null num = 10 } (아니 나 진짜 코틀린 너무 어려워 ㅠ 자바랑 똑같이 생긴줄 알았는데 아님) 자바는 기본적으로 nullable이다. 그런데 코틀린은 non - nullable이다(이런거 보면 자바보다 규칙이 빡빡한거 같은데) 함수가 다른 곳에서 값을 받아올 때, 우리는 이 함수 내부의 값이 null인지 null이 아닌지 알 수 없다. 코틀린에서 nullable이 아닌 변수에 값을 넣으면 컴파일 에러가 난다. 그러나 선언하는 타입 뒤에 ? 를 붙여주면 그 객체는 null.. 2020. 12. 9. Kotlin] 18. Nothing Nothing은 실행 흐름이 도달할 수 없는 구역을 나타내기 위한 특수타입이다. 예시를 보자. import java.lang.Exception fun main(args: Array): Unit { println("start") val i : Int = throwing() println(i) } fun throwing() : Nothing = throw Exception() Nothing은 어느 타입에도 대입할 수 있는 장점이 있다. 이 함수가 호출되면 바로 예외가 호출된다. 결과 : 2020. 12. 9. 이전 1 ··· 71 72 73 74 75 76 77 ··· 139 다음 반응형