본문 바로가기

책 정리/Kotlin IN ACTION4

4. 클래스, 객체 인터페이스 1. 코틀린 인터페이스는 디폴트 구현을 포함할 수 있으며, 프로퍼티도 포함할 수 있다. 일반 메소드 디폴트 메소드 무조건 재정의가 필요하다. 선택적으로 재정의 할 수 있다. 재정의 하는 경우, override 변경자는 필수이다. interface Clickable { fun click() fun showOff() = println("I'm clickable!") } // implements 하는 경우에는 ":" 로 할 수 있다. class ClickableImpl : Clickable { // override 변경자는 필수이다. override fun click() { println("I was clicked") } // 선택적으로 재정의 할 수 있다. override fun showOff() { pri.. 2021. 9. 10.
3. 함수 정의와 호출 1. 함수 파라미터에 Defualt 값을 정의하면, 다양한 생성자를 정의할 필요성이 줄어든다, 또한 이름붙인 파라미터를 사용하면 함수 호출의 가독성을 향상시킬 수 있다. 자바와는 다르게, 파라미터에 어떤 인자를 세팅할 것인지 명시할 수 있다. 명시되지 않은 값은 Default 값으로 초기화된다. class Person ( val age: Int = 0, val name: String = "홍길동" ) { } fun main() { val person1 = Person() assertEquals(0, person1.age) assertEquals("홍길동", person1.name) val person2 = Person(age = 10) assertEquals(10, person2.age) assertEq.. 2021. 8. 29.
2. 코틀린 기초 1. val과 var의 차이점 val(value) : 한번만 값을 선언할 수 있으며, 그 이후에 변경할 수 없다. var(varible) : 값을 선언한 후 변경할 수 있다. 클래스 프로퍼티로 val, var 을 정의하면, 코틀린은 아래와 같이 생성한다. val private field getter var private field getter setter class Person( val name: String, // == private String name + getName() var age: Int // == private int age + getAge() + setAge() ) { } fun main() { val person = Person("홍길동", 33) println(person.name) .. 2021. 8. 28.
1. 코틀린이란 무엇이며, 왜 필요한가? 1. 코틀린은 타입 추론을 지원하는 정적 타입 지정 언어다. 정적 타입 지정 언어 : 컴파일러가 컴파일 시점에서 필드나 메소드의 타입을 검증해준다. 타입 추론 : 위의 정적 타입 지정 언어를 기반으로, 컴파일러가 변수의 타입을 결정한다. // 컴파일러가 typeReference 는 String 타입임을 검증해준다. val typeInferenceString = "String Type" val typeInferenceInt = 1 2. 코틀린은 일급 시민 함수를 사용해 추상화가 가능하며, Immutable 하다. 일급 시민 충족요건 함수를 변수에 할당할 수 있어야한다. 파라미터로 함수를 전달할 수 있어야한다. 반환값으로 사용가능해야한다. Immutable 아래 함수의 firstClassFunction(1,.. 2021. 8. 28.