본문 바로가기

2학년 2학기/모바일 소프트웨어 - 코틀린31

Class(1) - 클래스 선언과 생성자 클래스 및 객체 // 클랙스 선언 - 캡슐화class Person { // 프로퍼티 val name: String = "Kim" var age: Int = 24 var isMarried: Boolean = false //메서드 fun getName() = println("Your name is ${this.name}")}fun main() { val p = Person() //기본 생성자 호출 //dot-notation println(p.name) //Kim} 이렇게 클래스를 선언하고 main함수에서 클래스의 객체를 선언해서 해당 클래스에 있는 요소들에 접근할 수 있다.   하지만 클래스를 사용하는 이유는 커스텀 타입을 만들기 위해서이다. 즉, 여러 데이터.. 2024. 9. 30.
Kotlin_Basic03 - when(2) when을 사용할 때 우리는 꼭 필수적으로 사용한 코드가 있다. 바로 else이다.하지만 변수의 범위를 명확하게 만들면 else는 필요없다. (물론 사용해도 됨) 그 예시로는 enum과 sealed classe가 있다.enum과 sealed class를 각각 사용한 예시1. enum class 사용 예시enum class는 상수들을 정의할 때 사용되며, 상태나 값을 구분할 때 매우 유용하다.enum class Direction { NORTH, SOUTH, EAST, WEST}fun describeDirection(direction: Direction): String { return when (direction) { Direction.NORTH -> "You are heading N.. 2024. 9. 20.
Kotlin_Basic03 - when(1) 코틀린에서 when 문법은 조건에 따라 여러 분기처리를 할 수 있는 강력한 제어 구조이다.when은 switch 문과 비슷하지만 더 유연하고 강력하게 사용할 수 있다. 주로 값을 매칭하거나 조건을 검사할 때 사용된다.기본 형태val value = 2val result = when (value) { 1 -> "One" 2 -> "Two" 3 -> "Three" else -> "Unknown"}print(result) // Twovalue가 1일 경우 "One", 2일 경우 "Two", 3일 경우 "Three"를 반환하고, 그 외의 값은 "Unknown"을 반환한다.else는 기본적인 값을 처리할 때 사용되며, 반드시 포함해야 한다(모든 경우의 수를 처리하지 않을 경우). 여러 조건 처.. 2024. 9. 20.
Kotlin_Basic03 - null 처리 우리는 변수에 값이 null일수도 있고 아닐 수도 있는 경우를 위해서 nullable 타입을 사용해왔다. 다만 이 타입을 사용한 변수를 사용할 때는 늘 이 변수가 null 값을 가질 수 있다는 생각에 안전조치를 해야했다. val str1: Any = "hello"val str2: Any = nullfun checkTypecast(s: Any?): Sting? { val newStr = s as? String ?: return null if(newStr.isNotEmpty()){ return newStr.lowercase() } return ""} 이렇게 위와 같이 as 연산자를 이용하든, 변수를 사용하든 ?를 붙여줘야 했다. 하지만 이런 수고를 덜어줄 수 있는 방법이 있다. .. 2024. 9. 20.
Kotlin_Basic03 - if 식 if문은 흔히 많이 들어본 분기문이다.  그러면 if 식은 뭘까? if식은 if문과 마찬가지로 조건에 따라 블록 내부의 코드가 실행되는 것은 같다. 다만, 코드 블록 값이 어떤 변수에 저장된다는 점이 다르다 val a = 9val b = 8val max = if(a >= b) a else b 이런 식으로 진행하면 a가 b보다 크거나 같을 경우 a가 max에 입력되고 아니면 b가 입력된다. 위 처럼 간단하면 블록 없이 해도 괜찮지만, 복잡하다면 블록을 만들어서 진행하면된다.val a = 9val b = 8val max = if(a >= b) { a } else { b}  하지만 여기서 주의할 점은 블록 내부 마지막 코드가 변수에 저장되기 때문에 마지막 코드는 꼭 저장할 변수 또는 수를 작성해야한.. 2024. 9. 20.
Kotlin_Basic03 - 연산자 오버로딩 연산자 오버로딩을 사용하는 이유: 기본적으로 코틀린은 기본 타입(int, float, double, ...)에 대해서만 연산자가 적용되어 있기 때문에 커스텀 타입에 연산자를 사용하기 위해서 사용한다.: 🚨 유의할 점은 operator 키워드는 꼭 붙여줘야한다. 🚨 예시1 - times(곱셈)커스텀 타입 생성하기class Point(val x: Int, val y: Int) {}  커스텀 타입에서 곱셈 오버로딩하기//[방법 1 - 클래스 내부]class Point(val x: Int, val y: Int) { operator fun times(p: Point): Point { return Point(this.x * p.x, this.y * p.y) // [설명] .. 2024. 9. 20.