본문 바로가기

Programming/Kotlin13

12장. 함수형 프로그래밍과 람다 12.1 함수형 프로그래밍이란? 12.1.1 함수형 프로그래밍 정의 - 프로그래밍 패러다임으로서의 함수형 프로그래밍 : 함수 선언이 최우선. 데이터의 흐름이 아니라 함수의 선언과 선언된 함수의 유기적인 흐름이 주 목적이다. - 데이터의 흐름과 값의 변경에 따라 프로그래밍하지 말고 필요한 로직을 함수로 만들어서 함수들의 흐름에 따라 프로그래밍하자는 개념이다. - 주요 원칙 : 일급 객체(First Class Citizen)로서의 함수, 순수 함수(Pure Function)로 정의되는 함수 - 일급 객체 : 함수가 프로그램의 최상위 구성요소이다. 객체지향에서는 클래스가 최상위 단위이고 함수를 포함하는 개념이다. 즉 클래스를 선언하지 않고도 함수를 정의할 수 있고, 함수내 다른 함수, 클래스를 포함할 수 있다.. 2020. 1. 31.
안드로이드 스튜디오 recyclerView 버전 문제 기존에 공부하던 책은 recyclerView를 사용할 때 Gradle script dependencies에 implements 'com.android.support:recyclerview-v7:28.0.0'로 의존성을 주입했는데 계속 버전이 다르다고 오류가 떴다. 엄청난 구글링을 통해 이전 support library는 androidx로 지원한다는 글을 보고 android 대신 androidx. 으로 의존성을 주입했더니 해결 되었다. 하지만 소스 파일에서 import할때 기존 android 패키지와는 경로가 조금 다르다. recyclerView의 경우 gradle script 에서는 implementation 'androidx.recyclerview:recyclerview:1.1.0' source fil.. 2020. 1. 29.
11장. 다양한 코틀린 클래스 11.1 데이터 클래스 11.1.1 데이터 클래스(data) - 내부에 특별한 로직의 함수 없이 데이터만 포함한 클래스, data 예약어를 통해 data 클래스를 생성할 수 있다. - 주 생성자를 선언해야 하면 주 생성자의 매개변수는 최소 하나 이상이어야 한다. - 모든 주 생성자의 매개변수는 var 혹은 val로 선언해야 한다. - 데이터 클래스는 abstract, open, sealed, inner 등의 예약어를 추가할 수 없다. 11.1.2 데이터 클래스의 함수 - equals() : 객체의 데이터가 같은지 비교하는 함수. 같은 객체 주 생성자의 프로퍼티 값을 비교한다. - toString() : 데이터 클래스의 데이터를 문자열로 반환한다. - componentN() : 데이터 클래스의 프로퍼티 값.. 2020. 1. 23.
10장. 추상 클래스와 인터페이스 10.1 추상 클래스 10.1.1 추상 클래스 선언(abstract) - 추상 함수 : 실행 영역이 없는 함수, 최상위 레벨에 선언된 함수에는 사용할 수 없다. 클래스 내부에 선언된 함수만 가능 - 추상 클래스 : 추상 함수를 포함하고 있는 클래스 - 추상 프로퍼티 : 선언만 있고 초깃값을 대입하지 않은 프로퍼티 10.1.2 추상 클래스 이용 - 추상 클래스는 그 자체로는 객체를 생성할 수 없다. 추상 클래스를 상속받는 하위 클래스를 이용해 객체를 생성한다. - 추상 클래스를 상속받는 하위 클래스는 추상 함수, 추상 프로퍼티를 모두 재정의 해야하며, 그렇지 않다면 하위 클래스도 abstract 키워드를 이용해 추상형으로 선언해야 한다. 10.2 인터페이스 10.2.1 인터페이스 선언 및 구현 - 인터페이.. 2020. 1. 21.
9장. 상속 9.1 코틀린에서 상속 9.1.1 Any 클래스 - 코틀린의 모든 클래스는 Any 클래스의 서브 클래스이다. Java.jang.Object와 다르다. equals, toString 만 제공한다. 9.1.2 상속을 통한 클래스 정의(open) - 상속하려는 상위 클래스를 open으로 명시해야 한다. 상속 허용 여부를 명시하지 않으면 기본으로 final로 적용된다. 9.2 오버라이드 - 상위 클래스에 정의된 프로퍼티나 함수를 하위 클래스에서 재정의하는 것을 말한다. 9.2.1 함수 오버라이드 - 함수를 오버라이드 하기 위해서는 함수 선언에 명시적으로 open 예약어를 추가해야 한다. - 하위 클래스에서 상위 클래스의 함수를 재정의할 때는 함수 앞에 override 예약어를 추가해야 한다. 9.2.2 over.. 2020. 1. 20.
8. 프로퍼티 8.1 코틀린에서 프로퍼티 이용 8.1.1 프로퍼티란? - 코틀린에서는 클래스의 변수를 프로퍼티(Property)라 부른다.(var, val) - 변수처럼 보이지만 함수가 내장된 변수이기 때문에 변수가 아닌 프로퍼티라 부른다. getter, setter 내장 - 프로퍼티를 이용하면 외부에서는 변수를 직접 이용하는 것처럼 보이고, 불필요한 getter/setter 함수를 만들지 않아도 된다. 8.1.2 사용자 정의 프로퍼티 - 기본 getter/setter 함수는 배킹 필드를 이용해 프로퍼티 값을 변경하거나 그대로 전달하는 역할만 한다. - 만약 개발자가 특정 작업(유효성 검증 등)에 프로퍼티 값을 이용하고자 한다면 getter/setter를 직접 정의한다. - get(), set() 함수 내부에서는 프로.. 2020. 1. 17.