본문 바로가기

전체 글13

[Kotlin] 데이터 클래스 데이터 클래스는 data 키워드로 선언하며 자주 사용하는 데이터를 객체로 묶어주는 역할을 한다. 또한 데이터 클래스는 Value Object 클래스를 편리하게 이용할 수 있게 해준다. data class DataClass(val name: String, val email: String, val age: Int) equals() 함수 데이터 클래스의 경우 데이터 자체의 보관을 목적으로 하는 클래스이기 때문에 객체의 데이터를 비교하는 equals() 함수를 사용할 때 일반 클래스의 객체와 차이점이 존재한다. class NonData(val name: String) // 일반 클래스 data class Data(val name: String) // 데이터 클래스 fun main(){ val non1 = Non.. 2023. 4. 18.
[Kotlin] 상속, 오버 라이딩, 접근 제한자(Inheritance, Overriding, Modifier) 상속시의 생성자 상속이란 다른 클래스를 참조해서 클래스를 선언하는 것을 의미한다. 코틀린에서 상속이란 선언부에 콜론과 함께 상속받을 클래스의 이름과 괄호를 입력하면된다. 상위 클래스는 하위 클래스에서 참조할 수 있도록 open 키워드를 사용한다. 또한 하위 클래스에서 상위 클래스를 상속할 때는 상위 클래스의 상속자를 같이 호출해주어야 한다. open class SuperClass{ // 다른 클래스가 상속 받을 수 있도록 open 키워드 사용 } class SubClass: SuperClass(){ // SuperClass를 상속받는 SubClass } 만약 하위 생성자에 보조 생성자만 존재한다면 다음과 같이 선언하는 것 또한 가능하다. open class SuperClass(name: String).. 2023. 4. 18.
[Kotlin] 클래스와 생성자(Class, Constructor) 클래스(Class) 코틀린에서 클래스는 class 키워드를 사용하며 클래스 이름, 해더, 바디로 구성되며 다음과 같은 특징을 지닌다. 또한, 클래스의 해더와 바디는 생략이 가능하다. 클래스는 객체를 생성해 사용하지만 코틀린의 클래스는 객체를 생성할 때 new 키워드를 사용하지 않는다. 생성자(Constructor) 코틀린의 클래스는 하나의 주 생성자(primary constructor) 와 하나 이상의 보조 생성자(secondary constructor)를 가질 수 있다. 주 생성자(Primary constructor) 주 생성자는 constructor 키워드를 사용하지만, 이를 생략하고 사용할 수 있다. 또한, 필요하다면 매개변수를 선언할 수도 있다. // constructor 키워드를 사용한 cla.. 2023. 3. 28.
[Android] Jetpack Compose 기초 Jetpack Compose 는 Android 를 위한 현대적인 선언현 UI 도구 키트이다. Jetpack Compose 이전의 Android UI 는 xml로 작성되었는데, xml 파일로 UI 를 작성한 후에 findViewById() 와 같은 함수를 이용하여 트리를 탐색하고 메서드를 호출하여 노드를 변경했다. 즉, xml 파일과 .java(혹은 .kt) 등 여러 위치에서 렌더링하게 되므로 충돌이 일어나거나 두 위치 모두 업데이트 하는 것을 잊어버릴 수 있다. xml 을 사용하여 UI 를 구성하는 방법은 다음과 같다. val releaseButton: Button = findViewById(R.id.releaseInputButton) // findViewById()를 사용하여 xml 파일에서 버튼을 .. 2023. 3. 26.
[Kotlin] 제어문(If, When, For, While) 조건문 if if 문에서 제시한 조건이 맞다면 if 부분을 실행하고 그렇지 않다면 else 부분을 실행한다. 만약 else 부분이 없는 if 문이라면 아무일도 일어나지 않고 지나간다. fun main(){ var condition = true if(condition){ println("true") } else{ println("false") } } 또한 else if 를 통해서 부가적인 조건을 설정할 수 있다. fun main(){ var condition = 2 if(condition > 0){ println("bigger") } else if(condition < 0){ println("smaller") } else{ println("equal") } } 조건문 when when 은 여러개의 브랜치로.. 2023. 3. 16.
[Kotlin] 코틀린의 컬렉션(List, Set, Map) 리스트(List) 순서가 있는 데이터의 모음으로, 불변 리스트와 가변 리스트가 있다. 불변 리스트는 size( ), get( ) 과 같은 함수만 사용이 가능하고, 가변 리스트는 add( ), set( ) 함수 또한 추가로 사용이 가능하다. 불변 리스트(List) : listOf( ) 가변 리스트(MutableList) : mutableListOf( ) var list1 = listOf(10, 20, 30) // 불변 리스트 var list2 = mutableListOf(10, 20, 30) // 가변 리스트 셋(Set) 순서가 없는 데이터의 모음으로 중복을 허용하지 않는다, 불변 셋과 가변 셋이 있다. 불변 셋은 size( ), get( ) 과 같은 함수만 사용이 가능하고, 가변 셋은 add( ), .. 2023. 3. 15.
[Kotlin] 배열(Arrray) 배열의 개요와 선언 코틀린에서 배열은 Array 클래스로 표현하며, Array 클래스의 생성자에서 첫 번째 매개변수는 배열의 크기, 두 번째 매개변수는 초기값을 지정하는 함수이다. 배열의 타입은 제네릭으로 표현한다. (제네릭 : 선언부가 아닌 사용부에서 타입을 지정하는 방법) val array1: Array = Array(3, {0}) // 크기가 3이고 모든 원소가 3인 Int형 배열 배열 내부 데이터 접근 배열 내부의 데이터에 접근하는 방법으로는 인덱스로 직접 접근 [ ] get( ) 함수 이용 : 데이터를 받아올 때 set( ) 함수 이용 : 데이터를 설정할 때 등이 있다. val array1: Array = Array(3, {0}) // 크기가 3이고 모든 원소가 3인 배열 선언 array1[0].. 2023. 3. 14.
[Kotlin] 함수의 선언 코틀린에서의 함수 선언은 fun 키워드를 이용하며 다음과 같이 작성할 수 있다. fun 함수 명(매개변수 명 : 매개변수의 type): 함수의 return type { 함수 내용 } val exampleFun(input: Int): String{ return if(input > 0){ "Input number is bigger than 0" } else{ "Input number is smaller than 0" } } 2023. 3. 13.
[Kotlin] 널 허용과 불허용(Nullable and Non-null) 코틀린의 모든 타입은 객체로 이루어져있으므로 null 값을 대입할 수 있다. 하지만 변수를 선언할 때 null 값의 허용 여부를 결정해 줘야 한다. 이러한 허용 여부는 변수의 타입 뒤에 물음표(?)로 구분한다. 즉, 타입 뒤에 물음표(?)를 추가할 경우 null 값의 할당을 허용하게 된다. val a: String = "string" a = null // 오류 val b: Stirng? = "string" b = null // 성공 2023. 3. 9.