Android App Track⛺-010

MunkiJeon·2024년 6월 12일

TIL

목록 보기
27/59
post-thumbnail

TIL (Today I Learned)

오늘 공부한거!

  • Kotlin 문법 종합반(4강)-1
    1. 접근제한자 => 관련용어: 캡슐화
      > 내/외부 코드에서 해당 클래스, 메소드, 프로퍼티에 접근(호출) 권한을 나눔
    • 용어 정리
      • 프로젝트: 최상단 개념이고 <모듈, 패키지, 클래스>를 포함
        프로젝트
      • 모듈: 프로젝트 아래의 개념이고 <패키지, 클래스>를 포함
        모듈
      • 패키지: 모듈 아래의 개념이고 <클래스>를 포함
        패키지
    • 종류
      > public: 명시하지 않으면 기본적으로 public 입니다 (어디서나 접근할 수 있어요)
      > private: 동일한 클래스 내부에서만 접근할 수 있습니다
      > internal: 같은 모듈 내부에서만 접근할 수 있습니다
      > protected: 기본적으로 private이지만 상속을 받은경우에 타 모듈에서 접근할 수 있습니다
    1. 예외 처리
      > 코드 실행시 발생할 수 있는(예상되는) 애러 혹은 예외상황 발생시 지정해둔 코드를 실행하게 하는 기능
    • try-catch의 구조
      fun method1() {
      		try {
      			예외가 발생할 가능성이 존재하는 코드
      		} catch(예외종류) {
      			예외가 발생했을때 처리할 코드
      		}
      }
    • throw의 구조
      fun method1(num1:Int) {
      		if(num1 > 10) {
      			throw 예외종류
      		}
      }
    1. 지연초기화
      변수나 상수 선언후 초기화를 나중에 해야할때 => 주로 API 값의 경우
      변수 -> lateinit var 변수명 : 변수타입[생략가능]
      상수 -> val 변수명 : 변수타입[생략가능] by lazy
    2. 널 세이프티
      Kotlin은 언어 차원에서 Null 안정성(Null Safety)을 지원한다
      = 자바 등 다른 언어에서 흔히 발생하는 NPE(Null Pointer Exception)을 방지하도록 설계되어 있어 더욱 안전하고 신뢰성 있는 코드를 작성할수있다.
    • Null Safety 관련 연선자
      1. Nullable("변수명?")과 Non-nullable 타입
      > var nonNullable: String = "Hello, Kotlin!" Non-nullable (null을 허용하지 않음)
      > var nullable: String? = null Nullable (null을 허용함)
    1. Safe Call Operator (?.)
      > null 가능성이 있는 객체의 메소드나 속성에 안전하게 접근할 수 있다.
      객체가 null이 아니면 메소드나 속성에 접근하고, null이면 연산 전체가 null을 리턴한다
      var nullable: String? = null 
      val length: Int? = nullable?.length  // nullable이 null이면 length는 null
    2. Elvis Operator (?:)
      > 왼쪽 피연산자가 null이 아니면 그 값을, null이면 오른쪽 값을 리턴한다.
      이를 통해 null 처리를 간결하게 할 수 있다.
      var nullable: String? = null 
      // nullable이 null이면 safeLength는 0
      val safeLength: Int = if(nullable != null) nullable.length else 0		// if-else
      val safeLength: Int = nullable?.length ?: 0  							// Elvis
    3. Not-null Assertion Operator (!!)
      > 개발자 판단 아래 null이 아님을 확신하는 것.
      만약 변수가 null이면, 이 연산자를 사용했을 때 Null Pointer Exception이 발생한다.(런타임)
      - 정말 필요한 경우가 아니라면 잘 쓰지 않는 것이 좋을 것 같다.
      var nullable: String? = null  
      val unsafeLength: Int = nullable!!.length  // nullable이 null이면 예외 발생
    4. Safe Casts (as?)
      > 타입 캐스팅을 시도하되, 캐스팅이 불가능하면 null을 리턴한다.
      타입 캐스팅 시 예외 발생을 방지할 수 있다.
      *캐스팅 = 데이터 타입 형 변환
      //`String` 타입인 "nullable"을 Int 타인인 "aNumber"로 변경 하려는 코드 
      var nullable: String? = null       
      val aNumber: Int? = nullable as? Int  // 캐스팅 실패 시 aNumber는 null

Today Review

  • 상황에 포기하지말구... 시간을 쪼개서 조금씩이라도 석장 하자구,,,🔥
profile
공장자동화와 웹 개발을 핥아 먹다 앱 개발로 전향한 개발자의 키보드의 낡은 키캡⛑️

0개의 댓글