본문 바로가기
Develop

[안드로이드 개발자를 위한 Kotlin(코틀린) 제대로 배우기 Part.1_기초2-2

by _dreamgirl 2020. 8. 24.
반응형

[안드로이드 개발자를 위한 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는 함께 사용할 수 없음

  • 상위의 접근제한 범위를 줄여서 하위에서 오버라이드는 없음
반응형

댓글