[Android] Kotlin 기본 문법(14)
-
Kotlin 기본 문법 - 컬렉션
# 리스트의 개념- 코틀린에서는 리스트, 맵, 집합(셋) 자료구조를 지원함- 리스트는 읽기 전용 리스트(listOf)와 수정 가능한 리스트(mutableListOf)로 구분됨- 배열(array)와 달리 크기가 정해져있지 않아 동적으로 값 추가 가능 // 읽기전용 리스트입니다// 0번, 1번, 2번 인덱스에 접근해서 값을 변경할 수 없습니다var scores1 = listOf(값1, 값2, 값3)// 수정가능 리스트입니다// 0번, 1번, 2번 인덱스에 접근해서 값을 변경할 수 있습니다var scores2 = mutableListOf(값1, 값2, 값3)scores2.set(인덱스, 값)// 수정가능 리스트입니다// 0번, 1번, 2번 인덱스에 접근해서 값을 변경할 수 있습니다// array로 데이터들을 ..
2024.06.10 -
Kotlin 기본 문법 - 배열
# 배열의 개념- 일반적으로 코틀린은 변수를 선언하면 메모리에 띄엄띄엄 랜덤으로 생성- 변수의 위치 정보가 연속적이지 않아 순서가 없음- 이때, 배열을 통해 변수에 순서를 매겨 연속적으로 활용할 수 있음// arrayOf메소드를 호출하면 배열을 리턴해줍니다// 1,2,3,4,5 각각을 저장한 변수 5개를 배열형태로 arr에 저장합니다var arr = arrayOf(1,2,3,4,5)// 배열요소를 모두 출력합니다println(Arrays.toString(arr))// 배열의 첫번째 요소에 저장된 값을 출력합니다// var num1 = 1의 num1과 arr[0]은 동일합니다// arr[0]은 하나의 변수로 취급할 수 있습니다// arr은 0~4번방(인덱스)까지 접근할 수 있습니다println(arr[0]..
2024.06.10 -
Kotlin 기본 문법 - 널 세이프티
# 널 세이프티의 개념- 코틀린에서 Null 예외는 가용성을 치명적으로 저하시킬 수 있음- 따라서 Null 예외로부터 안전한 설계를 위해 자료형에 Null 여부를 명시할 수 있음- Null 예외로부터 안전한 설계를 위해 ?, !!, ?., ?: 의 키워드를 지원함 (!! 키워드는 최대한 자제 필요) # 널 세이프티 키워드 1) ? : null값을 저장할 수 있음을 명시fun main(){ var s = Student() s.name = "참새" s.address = "서울" s.displayInfo()}class Student { // null을 저장하지 않고 설계하려면 lateinit var로 대체 가능 lateinit var name:String // null을 저장..
2024.06.10 -
Kotlin 기본 문법 - 지연 초기화
# 지연초기화의 개념- 코틀린은 클래스를 설계할 때 안정성을 위해 반드시 변수의 값을 초기화할 것을 권장함- 하지만, 클래스 설계 시 초기에 값을 정의하기 난처한 경우 나중에 값을 대입하기 위한 문법- 지연초기화를 위해 lateinit, lazy 키워드 사용- 저사양 환경에서 효율적으로 메모리 사용 가능 # 변수의 지연초기화fun main(){ var s1 = Student() s1.name = "참새" s1.displayInfo() s1.age = 10 s1.displayInfo()}class Student { // name 변수를 나중에 정의하기 위해 lateinit 사용 lateinit var name:String var age:Int = 0 fun dis..
2024.06.10 -
Kotlin 기본 문법 - 예외처리
# 예외처리의 개념- 프로그램을 실행하기 전에 알 수 있는 컴파일 에러 = 오류- 프로그램을 실행하는 도중에 발생하는 런타임 에러 = 예외- 실행 도중에 예외가 발생하면 프로그램이 비정상적으로 종료됨- 코틀린은 try-catch와 throw로 예외를 처리함 # try-catch: 예외가 발생할 가능성이 존재하는 코드에 대해 어떻게 처리할지에 대해 사전에 처리fun method1() { try { 예외가 발생할 가능성이 존재하는 코드 } catch(예외종류) { 예외가 발생했을때 처리할 코드 }} # throw: 예외가 발생하는 경우에 그 예외를 무시하고 코드를 진행 fun method1(num1:Int) { if(num1 > 10) { throw 예외종류 }} # 예외처리의 필요성- ..
2024.06.10 -
Kotlin 기본 문법 - 접근제한자
# 접근제한자 개념- 변수나 메소드의 접근을 제한할 수 있음- 접근: 객체를 이용해서 변수나 메소드를 호출할 수 있는지의 여부- 용어 정리: 프로젝트(모듈, 패키지, 클래스 포함) > 모듈(패키지, 클래스 포함) > 패키지(클래스 포함) > 클래스public 어디서나 접근 가능(명시하지 않으면 기본적으로 public) private동일 클래스 내부에서만 접근 가능internal같은 모듈 내부에서만 접근 가능protected기본적으로 private이지만 상속을 받은 경우 타 모듈에서 접근 가능 # 접근제한자가 필요한 이유- 데이터에 무분별한 접근을 방지- 클래스 간 접근하면 안되는 상황을 구분해 향후 유지보수에 용이 class AccessTestClass { public var a:Int = 1 ..
2024.06.10