Notice
Recent Posts
Link
Tags
- jpa
- SSL
- @transactional
- 스프링부트
- PYTHON
- Docker
- nginx
- springboot
- DI
- AWS
- spring boot
- 데이터베이스
- string
- hibernate
- java
- 자바
- 프로그래머스
- 1차원 배열
- sql
- select
- 스프링
- mysql
- Django
- spring mvc
- join
- ORM
- 문자열
- static
- spring security 6
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Archives
개발하는 자몽
[Kotlin] 기본 문법 2 본문
if
코틀린의
fun main() {
val a: Int = 100
val b: Int = 200
val c: Int
c = if (a >= b) {
a
} else {
b
}
println(c)
}
fun main() {
val a: Int? = null
if (a == null) {
println("null check true") // print
} else {
println("a = $a") // a에 null이 아닌 값이 담긴 경우, a에 할당된 값이 출력됨. ex) a = 100
}
}
in
fun main() {
val a: Int? = 100
if (a in arrayOf(100, 200, 300)) {
println("contained") // print
} else {
println("not contained") // a에 할당된 값이 배열에 없는 값이면, not contained 가 출력된다.
}
}
when
다음
fun main() {
val a: Int? = 100
when (a) {
100 -> println("1") // print
200 -> println("2")
300 -> println("3")
else -> println("4")
}
if (a == 100) {
println("1") // print
} else if (a == 200) {
println("2")
} else if (a == 300) {
println("3")
} else {
println("4")
}
}
또한
fun main() {
val a: Int = 399
when (a) {
in 100..199 -> println("1") // 100 <= a <= 199
in 200..299 -> println("2") // 200 <= a <= 299
in 300..399 -> println("3") // 300 <= a <= 399
else -> println("4")
}
// 399가 출력됨
}
참고로 nullable 한 변수를 대상으로 실행하면 다음과 같은 에러가 발생한다.
Incompatible types 'kotlin.Int?' and 'kotlin.ranges.IntRange'.
Class / Data class / Enum class
fun main() {
val item1: Item1 = Item1("BOOK", 10_000) // Item1 클래스의 인스턴스 생성
println("Item1 name is ${item1.name}, price is ${item1.price}")
println(item1)
val item2: Item2 = Item2("BOOK", 10_000) // Item2 데이터 클래스의 인스턴스 생성
println("Item2 name is ${item1.name}, price is ${item1.price}")
println(item2)
}
// 기본적으로 생성자가 생성됨
class Item1(val name: String, val price: Int)
// 기본적으로 getter, setter, Equal, hashCode, toString, Copy, Component, and 함수들이 생성됨
data class Item2(val name: String, val price: Int)
enum class Color {
RED,
GREEN,
BLUE,
}
# 위 코드 실행 결과
Item1 name is BOOK, price is 10000
Item1@133314b
Item2 name is BOOK, price is 10000
Item2(name=BOOK, price=10000)
Data class
- 코틀린의
Data class 는 자바의Record 와 유사하게 사용할 수 있는 듯하다. → Ex.DTO 역할 - 위와같이
Data class 를 정의하고 변수를 var로 선언하면setter 가 자동으로 생성된다.val 로 선언한 경우, 특성상 변수를 변경할 수 없기 때문에setter 가 생성되지 않는다.- 실행결과를 보면
Data class 는 클래스 정의 시toString 이 자동 생성되므로, 출력했을 때 초기화한 인스턴스 값이 나오는 것을 확인할 수 있다.
'Java & Kotlin' 카테고리의 다른 글
[Kotlin] 기본 문법 1 (0) | 2025.01.18 |
---|---|
[Java Error] Caused by: java.lang.IllegalArgumentException at PropertyPlaceholderHelper.java:180 (1) | 2024.11.23 |
Java/Spring 테스트 - 2 (0) | 2024.11.04 |
Java/Spring 테스트 - 1 (2) | 2024.10.02 |
[Gradle] gradle build와 gradle bootJar의 차이 (0) | 2024.09.06 |