Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 둘째마당 (3~5장)
3강 코틀린 시작하기
코틀린의 등장 배경
코틀린은젯브레인스(JetBrains)에서오픈소스그룹을만들어개발한프로그래밍언어 2017년구글에서안드로이드공식언어로지정
JVM에기반을둔언어
코틀린의이점
- 최신 언어 기법을 이용하면 훨씬 간결한 구문으로 프로그램을 작성
- 코틀린은 널 안전성null safety을 지원하는 언어
- 코틀린은 자바와 100% 호환합니다.
- 코루틴coroutines이라는 기법을 이용하면 비동기 프로그래밍을 간소화할 수 있습니다.
변수와 함수
- 변수는 val , var 키워드로 선언
- val은 value 줄임말로 초깃값이 할당되면 바꿀 수 없는 변수를 선언
- var은 variable의 줄임말로 초깃값이 할당된 후에도 값을 바꿀 수 있는 변수를 선언
- lateinit 키워드는 이후에 초깃값을 할당할 것을 명시적으로 선언
- lateinit 는 var 키워드로 선언한 변수에만 사용
- 문자열 템플릿
: String 타입의 데이터에 변숫값이나 어떤 연산식의 결과값을 포함해야할 때는 $ 사용
- Unit ; 반환문이 없는 함수 Nothing - null 이나 예외를 반환하는 함수
함수 선언하기
함수를선언하려면 fun이라는 키워드를이용
반환타입을 선언할 수 있으며 생략하면 자동으로 Unit타입이 적용
함수의 매개변수에는 var나 val키워드를 사용할 수 없으며 val이 자동으로 적용
Array―배열표현
- 배열은 Array 클래스로 표현
- 배열의 데이터에 접근할 때는 대괄호([])를 이용해도 되고 set()이나 get() 함수를 이용
4강 클래스와 생성자
클래스 선언
클래스는 class키워드로 선언
클래스의 본문에 입력하는 내용이 없다면{}를 생략
클래스의 멤버는 생성자,변수,함수,클래스로 구성
생성자는 constructor라는 키워드로 선언하는 함수
접근 제한자 ; 클래스의 멤버를 외부의 어느 범위까지 이용하게 할 것인지를 결정하는 키워드
equals () : 주 생성자에 선언한 멤버 변수의 데이터만 비교 대상으로 삼음
toString() : 데이터클래스를 사용하면서 객체가 가지는 값을 확인해야 할 때 이용
오브젝트 클래스
오브젝트 클래스는 익명클래스를 만들 목적으로 사용
선언과 동시에 객체를 생성한다는 의미에서 object라는 키워드를 사용
5장 코틀린의 유용한 기법
람다 함수 ;
람다함수
람다 함수는 익명 함수 정의 기법
람다함수 선언과 호출
- 람다 함수는 fun 키워드를 이용하지 않으며 함수 이름이 없습니다.
- 람다 함수는 { }로 표현합니다.
- { } 안에 화살표( -> )가 있으며 화살표 왼쪽은 매개변수, 오른쪽은 함수 본문입니다.
- 함수의 반환값은 함수 본문의 마지막 표현식입니다.
고차함수
고차 함수란 함수를 매개변수로 전달받거나 반환하는 함수를 의미
널 안전성
- 널 이란 객체가 선언되었지만 초기화되지 않은 상태
- 널인 상태의 객체를 이용하면 NullPointException 발생
- 널 안정성이란 널 포인트 예외가 발생하지 않도록 코드를 작성하는 것
- 널 안정성을 지원한다는 것은 객체가 널인 상황에서 널 포인터 예외가 발생하지 않도록 연산자를 비솟해 여러 기법을 제공한다는 의미
- 예외발생 !! 연산자 : 객체가 널일 때 예외를 일으키는 연산자