[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2-2
[11장에서 20장까지]
예외처리
- Try catch finally~
- 사용자가 고의로 예외를 발생시켜 던짐
- Throw Throwable 타입 표현식
Nothing
- 함수의 반환 타입이 Nothing이면 컴파일러가 정상 종료 되지 않는 함수임을 미리 알 수 있음
Nullable 타입
- 자바는 모든 참조타입에 null을 지정할 수 있음
코틀린은 nullable 타입이 아니면 null을 지정할 수 없음
(?는 Nullable 타입 연산자)
- Nullable 타입은 힙 영역에 저장됨
엘비스 연산자 활용하기
- ?.(safe call opeerator) : 안전한 호출 연산자
일반적인 프로그래밍에서는 if else문으로 null 확인을 함
코틀린에서는 손쉽게 null을 확인하기 위한 연산자를 제공함
객체의 연결구조에도 ?. 연산자를 사용할 수 있음
- !!(Not null 단정 연산자)
Nullable 타입을 Not Null타입으로 강제로 형변환 캐스팅한다.
Null 객체인데 !! 연산자로 사용시 실행 중에 예외가 발생한다.(KotlinNullPointException)
- ?:(Elvis Operator) : 엘비스 연산자
엘비스 연산자 왼족의 피연산자가 null.이면 그 값을 그대로 스고
null이면 오른족 피연산자로 사용하도록 연산자
스마트 캐스팅의 이해
- equals 함수, 연산자 ==와 같다.
- is 연산자(타입을 확인하는 연산자) : java의 경우에는 instanceof와 비슷함
as 연산자 이용하기
- as 연산자를 이용한 다운캐스팅(u pcasting의 반대)
as를 이용한 캐스팅은 상속 관계에 있는 클래스끼리만 가능
upcasting 했던 객체를 다시 원래 타입으로 변환할 때만 사용할 수 있음
as? 캐스팅할 객체가 Nullable 타입인 경우 null 값이 들어가고 아니면 객체를 캐스팅함
접근제한자의 이해
- 외부에서 클래스, 생성자, 프로퍼티, 함수들을 이용할 때 접근의 범위를 지정하고자 사용 : Public, internal, protected, private protected는 자식 클래스에서 접근 가능, private는 접근 불가
프로퍼티와 접근제한자
- 코틀린에서 변수가 프로퍼티이다. 즉 변수는 get/set 함수를 포함
- get함수는 프로퍼티의 접근제한자와 같음. Set 함수는 다르게 설정 가능, 더 넓게는 불가
주생성자, 보조 생성자에도 접근 제한자를 사용할 수 있음
상속관계에서 open과 private는 함께 사용할 수 없음
- 상위의 접근제한 범위를 줄여서 하위에서 오버라이드는 할 수 없음
'Develop' 카테고리의 다른 글
카카오코딩테스트 3번 (0) | 2020.10.02 |
---|---|
카카오코딩테스트 1번 (0) | 2020.10.02 |
[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2 (0) | 2020.08.09 |
RxJava 프로그래밍3 (0) | 2020.07.20 |
[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초1 (0) | 2020.05.16 |
댓글