코틀린/코틀린 문법

코틀린문법 4주차 강의 [심화]

정혜현 2024. 6. 10. 18:01

접근제한자

무분별한 접근을 막아 데이터를 보호하고 유지보수에 용이

 

public : 기본. 어디서나 접근 가능
internal : 같은 모듈만 접근 가능

private : 같은 클래스만 접근 가능
protected : 상속받은 경우만 접근 가능 (기본적으로 private)

 

프로젝트 > 모듈(app) > 패키지(클래스)

 

 

 

 

 

 

예외처리

오류 : 프로그램에서 발생하는 예외

컴파일 에러 : 실행 전

런타임 에러 : 실행 중(비정상적으로 종료)

 

try-catch : 예외를 잡아주는 코드. try{예외 발생 가능성이 존재하는 코드} catch{예외가 발생했을 때 처리할 코드}

예외가 발생하면 catch부문의 코드가 실행된다. finally{항상 실행하는 코드}를 추가하여 예외처리와 관계없이 주의를 줄 수 있다.

throw : 예외를 던지는 코드. throw 예외종류

 

 

 

 

 

 

지연초기화

메모리를 효율적으로 관리하고 초기값을 정하기 난처할 때 사용

변수 : lateinit

상수 : lazy

 

 

 

 

 

 

널 세이프티 Null Safety

Null예외 : 프로그램의 가용성을 저하시키는 치명적인 오류

타입 의미 Null 처리
!! Non-null Assert Null 절대 아님!!  
?  Nullable Null일수도?   
?. Safe Call 안전호출 Null일수도? Null 아닐 때만 실행할게. Null 반환
?: Elvis Operator 엘비스연산자 Null일수도? Null 대신 원하는대로 해줄게 :  대체값 반환

 

 

 

 

 

 

배열 Array 

변수에 순서를 매겨 연속적으로 활용 가능하게 저장하는 형태. 크기가 고정되어 있고 한 번 생성되면 변경할 수 없다.

var 배열명 = arrayOf()

배열명[인덱스 번호]

 

 

 

 

 

 

 

컬렉션 Collection

기본은 읽기전용. mutable을 붙여 수정가능하게 만들 수 있다. 크기가 고정되어있지 않은 동적배열.

 

List 리스트 : 순서가 있는 모임. 인덱스로 접근가능. 중복가능. 

 

Map 맵 : 키와 값 쌍의 모임. 인덱스와 키로 접근가능. 값은 중복가능하나 키는 불가능. 

 

Set 셋, 집합 : 순서가 없는 모임. 인덱스 없음. 요소의 존재여부를 확인. 중복불가능(고유)

 

제네릭Generic <>

매번 Any 타입으로 받으면 타입 안정성을 저하시킬 수 있다.

클래스 내부에서 사용할 자료형을 인스턴스를 생성할 때 고정한다.
컴파일시 자료형을 검색해 적당한 자료형을 선택할 수 있도록 한다.
객체 자료형의 안정성을 높이고, 형 변환의 번거로움이 줄어든다.

 

 

 

 

 

 

 

 

Single-expression function

람다식 { 매개변수 -> 코드 }

fun 함수명(매개변수) = 코드  를   var 변수명 = { 파라미터 -> 실행 코드 }로 메소드 선언없이 쓸 수 있다.

 

 

 

 

 

 

 

 

 

 

싱글턴

companion, object

키워드를 사용해 메모리 전역에서 유일한 객체임을 보장

 

 

 

 

내장메소드 : 코틀린 안에 있는 메소드. 반드시 import하고 불러와야 쓸 수 있다. 

생성자가 있다면 초기화하지 않아도 된다. 생성될 때 초기화되기 때문.