접근제한자의 종류
- 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 키워드로 구현 가능하다.
.
.
.
.
.
강의 내용이 어렵다 다시 복습 해야겠다
계산기를 마무리 지었다. 예외처리도 기능도 부족하지만 완성했다..ㅠㅠ

내일 피드백 받고 다시 화이팅!
얼른 운동가자😂