kotlin
3 posts
코틀린3 - 클래스, 객체, 인터페이스

4장. 클래스, 객체, 인터페이스 4.1 클래스 계층 정의 4.1.1 코틀린 인터페이스 코틀린 인터페이스 안에는 추상 메소드뿐 아니라 구현이 있는 메소드도 정의할 수 있다. 다만 인터페이스에는 아무런 필드도 들어갈 수 없다. 이 인터페이스를 구현하려면 override 변경자 반드시 필요 디폴트 구현할 때 특별한 키워드 필요없이 그냥 구현하면 됨 다른 인터페이스가 showOff 메소드를 함께 구현하면?? 어느 쪽도 선택되지 않는다. 클래스가 구현하는 두 상위 인터페이스에 정의된 showOff구현을 대체할 오버라이딩 메소드를 직접 제공하지 않으면 다음과 같은 컴파일러 오류가 발생한다. 코틀린 컴파일러는 두 메소드를 아우르는 구현을 하위 클래스에 직접 구현하게 강제한다. 상속한 인터페이스의 메소드 구현 호출하기 이 클래스의 인스턴스를 만들고 showOff()가 구현대로 상속한 모든 메소드를 호출하는지 검증해볼 수 있다. Button 클래스는 Focusable 인터페이스 안에 선언된 se…

코틀린1 - 코틀린 기초

1장. 코틀린이란 더 적은 코드로 더 편하게 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것 안드로이드 공식언어 서버, 모바일, 웹, 프론트엔드까지 코틀린언어 하나로 작성가능 컴파일 과정 Kotlin Tutorials 코틀린 - *.kt -> 코틀린 컴파일러 -> *.class -> *.jar -> (코틀린 런타임)애플리케이션 자바 - *.java -> 자바 컴파일러 -> *.class -> *.jar -> 애플리케이션 코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존 런타임 라이브러리에는 코틀린 자체 표준 라이브러리 클래스와 코틀린에서 자바 API의 기능을 확장한 내용이 들어있다. 코틀린으로 컴파일한 애플리케이션을 배포할 때는 런타임 라이브러리도 함께 배포해야 한다. 2장. 코틀린 기초 Hello World 함수를 최상위 수준에 정의할 수 있다! 꼭 클래스 안에 함수를 넣어야 할 필요가…

코틀린2 - 함수 정의와 호출,

3장. 함수 정의와 호출 컬렉션 만들기 to는 특별한 키워드가 아니라 일반함수다. (중위 호출 infix) (중요) 코틀린은 자신만의 컬렉션 기능을 제공하지 않는다. 자바 코드와 상호작용하기 쉽다. 하지만 코틀린에서는 자바보다 더 많은 기능을 쓸 수 있다. (자바에 없는) last와 max함수는 어디에 정의되어 있는걸까? 함수를 호출하기 쉽게 만들기 joinToString 구현하기 잘동작한다. 하지만 어떻게 하면 이 함수를 호출하는 문장을 덜 번잡하게 만들 수 있을까? 호출할 때마다 매번 네 인자를 모두 전달하는 것은 불필요하다. 이름 붙인 인자 함수 호출 부분의 가독성 개선 함수에 전달하는 인자 중 일부의 이름을 명시할 수 있다. 호;출 시 인자 중 어느 하나라도 이름을 명시하고 나면 혼동을 막기위해 그 뒤에 오는 모든 인자는 이름을 꼭 명시해야 한다. 디폴트 파라미터 값 이제 함수를 호출할 때 모든 인자를 쓸 수도 있고, 일부를 생략할 수도 있다. 최상위 함수와 프로퍼티 함수를…