내일배움캠프 8일차

김재현·2024년 3월 7일

접근제한자

  • 접근제한자는 데이터의 무분별한 접근과 클래스간에 접근하면 안되는 상황을 구분해주기 때문에
    향후 유지보수를 용이하게 해줍니다.

접근제한자의 종류

  • public : 기본형으로 어디서나 접근 가능합니다. (외부 접근 가능)
  • private : 동일한 클래스 내부에서만 접근 가능합니다.
  • internal : 같은 모듈 내부에서만 접근 가능합니다. (외부 접근 가능)
  • protected : 기본적으로 private이지만 상속을 받은 경우 타 모듈에서 접근 가능합니다.

예외처리

  • 프로그램을 실행하는 도중에 발생하는 런타임 에러인 예외를 처리합니다.

  • 실행도중 예외가 발생하면 프로그램이 비정상적으로 종료됩니다.

  • 사용성을 해치지않고 안정성을 높인 프로그램으로 만들기 위해 예외처리를 합니다.

Kotlin의 예외처리 방법

  • try-catch 구조
fun method1() {
	try {
		예외가 발생할 가능성이 존재하는 코드
	} catch(예외종류) {
		예외가 발생했을때 처리할 코드
	}
} 
  • throw 구조
fun method1(num1:Int) {
	if(num1 > 10) {
		throw 예외종류
	}
}

(try-catch 구조는 봤지만 throw 구조는 처음 보는 것 같다.)

지연초기화

  • 코틀린은 클래스 설계시 안정성을 위해 변수의 값 초기화를 권장합니다.

  • 클래스를 설계할 때 초기의 값을 정의하기 난처할 때 나중에 대입하기 위한 문법이다.

  • 변수의 지연초기화 = lateinit
  • 상수의 지연초기화 = lazy

널 세이프티

  • null 예외는 프로그램의 가용성을 저하시키는 치명적인 오류로 안전한 설계를 위해 자료형에

    null 여부를 명시할 수 있다.

!! = 강제로 null이 아니라고 합니다.
?. = null인지 확인하고 null이 아닐때만 참조할 때 실행.(안전 호출연산자)
?: = null 대신에 다른 문자열을 출력할 수 있다.(엘비스 연산자)

배열

  • 변수를 선언하면 위치정보가 연속적이지 않아 순서가 없지만 배열을 통해 순서를 매길 수 있다.

  • kotlin은 arrayOf 메소드(키워드)를 제공한다.

ex)

var arr = arrayOf(1,2,3,4,5)

컬렉션

  • 컬렉션에는 리스트, 맵, 집합 자료구조가 있다.

List

  • 리스트는 읽기전용(list of)과 수정가능한 종류(mutableListOf)로 나눠져있다.

  • 배열(array)와 달리 크기가 정해져있지 않아 동적으로 값을 추가할 수 있습니다.

Map

  • 맵은 키와 값의 쌍으로 이루어진 자료형이다.

  • 맵도 읽기전용(mapOf)과 수정가능한 종류(mutableMapOf)로 구분 가능하다.

Set

  • 셋은 순서가 존재하지 않고 중복없이 데이터를 관리하는 집합 자료형이다.

  • 셋도 읽기전용(setOf)와 수정가능한 종류(mutableSetOf)가 있고 컬렉션 안의 요소보다는 요

    소의 존재 유무가 중요하다.

제네릭(Generic)

  • 코드를 작성하다보면 다양한 타입에 동일한 로직을 적용할 때가 많아요.

  • 매번 Any타입으로 받는것은 타입 안정성을 저하시킬 수 있어요.

  • 클래스 내부에서 사용할 자료형을 인스턴스를 생성할 때 고정해요.

  • 컴파일 시간에 자료형을 검색 해 적당한 자료형을 선택할 수 있도록 해요.

  • 객체 자료형의 안정성을 높이고, 형 변환의 번거로움이 줄어요.

Single-expression function

  • 람다식을 이용해서 메소드를 간결하게 정의할 수 있다.

  • 하나의 메소드를 간결하게 표현할 수 있는 방법이다.

ex)

fun add(num1:Int, num2:Int, num3:Int) = (num1+num2+num3)/3

싱글턴 - 다시 공부!

  • 각각의 객체는 상이한 위치정보를 가지고 있어서 저장하는 값도 객체마다 고유하다.

  • 싱글턴을 활용하면 해당 객체는 메모리 전역에서 유일함을 보장하고 위치정보가 고정이다.

  • 프로그램이 실행되는 시점에 메모리에 바로 로드해서 위치를 잡는다.

  • kotlin은 companion과 object 키워드로 구현 가능하다.
    .
    .
    .
    .
    .
    강의 내용이 어렵다 다시 복습 해야겠다

계산기를 마무리 지었다. 예외처리도 기능도 부족하지만 완성했다..ㅠㅠ

하루의 마무리

내일 피드백 받고 다시 화이팅!

얼른 운동가자😂

0개의 댓글