본문 바로가기

코틀린6

12장. 함수형 프로그래밍과 람다 12.1 함수형 프로그래밍이란? 12.1.1 함수형 프로그래밍 정의 - 프로그래밍 패러다임으로서의 함수형 프로그래밍 : 함수 선언이 최우선. 데이터의 흐름이 아니라 함수의 선언과 선언된 함수의 유기적인 흐름이 주 목적이다. - 데이터의 흐름과 값의 변경에 따라 프로그래밍하지 말고 필요한 로직을 함수로 만들어서 함수들의 흐름에 따라 프로그래밍하자는 개념이다. - 주요 원칙 : 일급 객체(First Class Citizen)로서의 함수, 순수 함수(Pure Function)로 정의되는 함수 - 일급 객체 : 함수가 프로그램의 최상위 구성요소이다. 객체지향에서는 클래스가 최상위 단위이고 함수를 포함하는 개념이다. 즉 클래스를 선언하지 않고도 함수를 정의할 수 있고, 함수내 다른 함수, 클래스를 포함할 수 있다.. 2020. 1. 31.
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.
7. 클래스 7.1 클래스 선언 및 생성 7.1.1 클래스 선언 - class MyClass{ } - 일반적으로는 파일 안에 파일명과 같은 이름의 클래스를 정의해 사용한다. 하지만 이는 강제 규칙이 아니며 코틀린 파일에 파일명과 같은 이름의 클래스가 없어도 상관은 없다. - 클래스 내에 클래스를 선언해서 이용할 수도 있다. - 클래스에는 프로퍼티, 메서드, 생성자, 클래스 등을 선언할 수 있다. 7.1.2 객체 생성 - 객체 생성은 클래스를 이용하기 위해 메모리를 할당하는 작업이며, 할당된 메모리를 객체명으로 참조하는 개념이다. 7.2 생성자 7.2.1 주 생성자(constructor) - 하나의 클래스에 하나만 정의할 수 있다. - 꼭 작성해야 하는 건 아니며 보조 생성자가 있다면 작성하지 않을 수 있음 - 주 생.. 2020. 1. 16.
6. 흐름 제어 구문과 연산자 6.1 조건문 6.1.1 if 표현식 - 일반적인 if 문과 차이점이 있는데 바로 코틀린에서 if 문은 표현식(expression)이라는 점이다. - if 문을 표현식으로 사용한다는 것은 if문에 의해 특정 값이 발생한다는 의미이다. - if 문을 표현식으로 사용할 때 else 문이 꼭 있어야 한다. 생략하면 컴파일 에러가 발생한다. - if 문에 중괄호{}를 명시하여 여러 줄로 작성할 때 if 표현식으로 발생하는 데이터는 맨 마지막에 작성한다. * 표현식 : 변수, 상수, 연산자, 함수로 구성되어 무언가 값을 만드는 문장을 의미한다. * 구문(문장) : 단어나 기호의 조합으로 무언가가 실행되도록 명령을 지시하는 문장을 의미한다. 6.1.2 when 표현식 - switch-case 구문과 비슷하지만, 기.. 2020. 1. 13.
3. 코틀린 기본 작성법 3.1 코틀린 파일 정의 3.1.1 일반 파일과 클래스 파일 - 개발 편의상 나눈 것일뿐, 일반 파일(.kt)에 클래스만 작성해도 되고, 클래스 파일에 클래스 없이 코드를 작성하여도 된다. 3.1.2 파일의 구성 요소 - 패키지, 임포트, 클래스, 변수, 함수 등이 파일에 포함된다. - 코틀린 파일은 클래스를 사용하지 않고 변수와 함수로만 구성할 수도 있다. 3.2 패키지 3.2.1 패키지 기본 개념 - 패키지(package)란 관련된 클래스들을 묶기 위한 물리적인 개념이다. 3.2.2 가상 패키지 - 코틀린 파일에 실제 파일 위치와 다른 패키지명을 사용하면, 컴파일 때 클래스 파일의 위치는 코드에 선언한 패키지명의 폴더가 된다. 결국, 코드를 작성하는 코틀린 파일의 위치만 패키지명과 다른 것이지, 컴파.. 2020. 1. 8.