Kotlin
-
[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 반환 타입 생략 가능하다. 식이 본문인 함수의 경우, 굳이 사용자가 반환 타입을 적지 않아도 컴파일러가 함수 ..
-
[Kotlin] 코루틴을 이해해보자프로그래밍 언어/kotlin 2021. 7. 4. 00:44
새차원님의 코틀린 코루틴 강좌와 공식문서의 코루틴 부분을 참고하여 정리한 내용입니다. 1. Why Coroutines? 코루틴 : 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴. - 메인스레드가 블로킹될 수 있는 부분에 대해서 도움을 준다. - 비동기 처리 코드를 순차적인 코드로 만들 수 있다. ( by replacing callbacks ) - 코루틴은 이전에 자신의 실행이 마지막으로 중단되었던 지점 다음 장소에서 실행을 재개한다. api를 호출한 후, data로 ui 업데이트 하는 코드 main 스레드에서 api 호출하면 ui 스레드가 블로킹 되어 화면을 그릴 수 없게 되고, 앱은 죽게 된다. 잘 동작하지만 dream code 는 아님 콜백도 없고..