코틀린인액션
-
[Kotlin in action] 클래스, 객체, 인터페이스프로그래밍 언어/kotlin 2021. 7. 25. 16:03
인터페이스 [자바와 다른 점] 코틀린은 인터페이스에 프로퍼티를 선언할 수 있다. 코틀린 인터페이스 선언은 기본적으로 final, public 이다. 코틀린 중첩 클래스는 내부클래스가 아니어서 외부클래스에 대한 참조가 없다. 4.1 클래스 계층의 정의 자바는 final로 명시적으로 상속을 금지하는 클래스 외에, 모든 클래스는 다른 클래스가 상속할 수 있다. 그래서 문제가 발생할 여지가 있다. 취약 기반 클래스: 하위 클래스가 기반 클래스에 대해 가졌던 가정이 기반 클래스를 변경함으로써 깨져버린 경우. 기반 클래스를 변경하는 경우 하위 클래스의 동작이 예기치 않게 바뀔 수 있다. 따라서, 코틀린에서는 기본적으로 클래스와 메소드는 final 이다. 어떤 클래스에 대해 상속을 허용하려면 앞에 open 변경자를 ..
-
[코틀린 인 액션] 코틀린 기초프로그래밍 언어/kotlin 2021. 7. 6. 14:35
2.1 코틀린 맛보기 함수 자바와 달리 함수를 최상위 수준에 정의할 수 있다. 배열도 일반적인 클래스와 마찬가지로 사용 가능하다. println 과 같이 자바 표준 라이브러리 함수를 간결하게 사용할 수 있게 감싼 래퍼를 제공한다. 함수 기본 구조 블록이 본문인 함수 블록이 본문인 함수가 값을 반환할 때는, 반드시 변환 타입을 지정하고 return문을 사용해 반환 값을 명시해야 한다. fun max(a: Int, b: Int): Int { return if (a > b) a else b } 식이 본문인 함수 fun max(a: Int, b: Int): Int = if (a > b) a else b 반환 타입 생략 가능하다. 식이 본문인 함수의 경우, 굳이 사용자가 반환 타입을 적지 않아도 컴파일러가 함수 ..