본문 바로가기
공부/Android

Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 둘째마당 (3~5장)

by 유스베리이 2024. 5. 25.

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 발생

 - 널 안정성이란 널 포인트 예외가 발생하지 않도록 코드를 작성하는 것

- 널 안정성을 지원한다는 것은 객체가 널인 상황에서 널 포인터 예외가 발생하지 않도록 연산자를 비솟해 여러 기법을 제공한다는 의미

 

- 예외발생 !! 연산자  : 객체가 널일 때 예외를 일으키는 연산자