본문 바로가기

Kotlin27

[깡샘의 코틀린 프로그래밍] 정리 19 - SAM 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 19장. 코틀린의 다양한 기법 19.2.2. 코틀린에서 SAM 활용 코틀린 프로그래밍을 하다 보면 많은 자바 API를 활용하게 됩니다. 자바 서버 측 응용프로그램을 코틀린으로 개발하거나 안드로이드 앱을 코틀린으로 개발하다 보면 자바의 많은A PI를 사용해야 합니다. 코틀린에서 사용하는 API 중 자바 인터페이스가 있고 그 인터페이스를 등록하는 자바 setter 함수를 활용하는 방법을 설명하려고 합니다. 위에서 자바로 설명한 JavaInterface1 이름의 인터페이스와SAMTest 클래스에서 제공하는 setInterface ( ) 함수를 활.. 2018. 3. 2.
[깡샘의 코틀린 프로그래밍] 정리 18 - 리플렉션 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 18장. 리플렉션과 어노테이션 18.1.1. 리플렉션 이해 리플렉션이란? 리플렉션(Reflection)은 사전적 의미로 투영, 반사라는 뜻입니다. 프로그램에서 리플렉션은 런타임 때 프로그램의 구조(객체, 함수, 프로퍼티)를 분석해 내는 기법을 이야기합니다. 예를 들어 어떤 함수를 정의하는데 함수의 매개변수로 클래스 타입을 선언하고 런타임 때 매개변수로 전달된 클래스의 이름, 클래스의 함수나 프로퍼티를 동적으로 판단하는 작업을 리플렉션이라고 합니다. 코틀린에서 리플렉션을 위해서는 라이브러리가 필요합니다. kotlin-reflect.jar라는 .. 2018. 3. 2.
[깡샘의 코틀린 프로그래밍] 정리 17 - Variance 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 17장. 제네릭 17.3.1. Variance란? 제네릭에서 Variance (가변, 공변 등으로 해석되지만 이 책에서는 Variance로 칭하겠습니다)란 타입과 관련된 이야기입니다. 상하위 관계에서 타입 변형과 관련 있습니다. 우선 제네릭의 Variance를 이해하기 위해 클래스의 상하위 관계에 대해 살펴보겠습니다. Super라는 클래스가 있고 이 클래스를 상속받아 Sub 클래스를 선언했다고 가정해 보겠습니다. 그러면 Sub 타입의 객체를 Super 타입에 대입하고 다시 Super 타입으로 캐스팅할 수 있습니다 01 package seve.. 2018. 3. 2.
[깡샘의 코틀린 프로그래밍] 정리 16 - Extension 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 16장. 클래스 Extension 16.1.1. 확장이란? 클래스 내에 함수와 프로퍼티를 선언합니다. 그런데 때로는 클래스의 확장(Extension)이 필요합니다. 확장이라는 것은 클래스 내부에 선언한 함수와 프로퍼티 이외에 다른 함수나 프로퍼티를 추가해서 이용하는 것입니다. 객체지향 프로그래밍에서 일반적으로 클래스 확장을 위해 사용하는 방법은 상속 기법입니다. 그러나 이 책에서는 용어의 혼동을 피하고자 확장이라는 단어는 상속을 통하지 않고 기능을 추가하는 방법에만 사용하겠습니다. 상속은 객체지향 프로그래밍의 핵심입니다. 상위 클래스를 정의.. 2018. 3. 2.