[Kotlin].ch1. java 배우고 나서 배우는 kotlin (기초편)
이때까지 자바를 공부해왔는데 안드로이드 앱 개발을 하려니 코틀린을 해야 한다네요.
그래도 자바와 완전 다른 언어도 아니고 더 어렵지도 않아서 빠르게 공부해보려 합니다.
오히려 kotlin의 문법이 더 간단하고 개선된 점도 많아서 익숙해 지면 더 쉬울것 같습니다.
그래서 이미 자바를 배운 사람을 기준으로 Kotlin공부 한 내용을 정리해봤습니다.
혹시 자바를 안배우셨으면 이것이 자바다 공부 내용을 보고 오시면 좋겠습니다.
1. Main 함수와 화면 출력
자바는 무조건 class 안에 public static void main을 넣어야 하지만 코틀린은 그냥 파일에 함수만 써도 돌아갑니다.
// Hello.kt 파일
fun main() {
println("Hello, Kotlin")
}
fun키워드: 함수(Function) 줄임말입니다.- 클래스도 필요 없습니다.
- 세미콜론(;) 없음: 귀찮은게 줄었죠.
2. 변수 선언: val, var
코틀린은 변수 앞에 타입을 안 쓰고 val이나 var를 씁니다.
val(Value): 값 변경 불가능한 읽기전용 (Java의final, 상수).var(Variable): 값 변경 가능한 변수.
val name = "Kotlin"
// name = "Java" // 컴파일 에러 > 변경을 하려함
var age = 10
age = 11 // 가능
타입 추론
- 타입 추론: 선언 시에 타입을 안 적어도 대입되는 값을 보고 자동 추론 합니다.
- 선언 시 타입 명시:
var 변수명: 타입 = 초기값/val 변수명: 타입 = 초기값const val: 진짜 상수 val: 재할당 불가능 읽기 전용 변수const val: 컴파일 시점에 값이 결정되는 진짜 상수
자바의public static final과 가장 유사const val 상수명 = 값
주로 파일 최상단이나 companion object 내 선언
3. 타입 시스템과 문자열
형 변환 (Type Casting)
- 암시적 형 변환을 미허용하고, 모든 형 변환을 명시 해야합니다.
val i: Int = 100 val l: Long = i.toLong() // to타입() 메서드를 명시적으로 호출해야 함 - 주요 변환
toByte(),toShort(),toInt(),toLong(),toFloat(),toDouble(),toChar(),toString()문자열 (String)
$문자열 템플릿
자바의+연산자나String.format()대체하는 편리한 기능입니다. 너무 편해서 역체감을 느낄수있습니다.val name = "코틀린" val num = 10 val text = "이름: $name, 숫자: $num" val text2 = "다음 숫자는 ${num + 1}"$변수명
변수 앞에 표시해 변수 삽입${수식}/${객체.속성}}
수식이나 객체 속성 삽입- 인덱스 접근 가능
배열처럼[]사용합니다.
4. 기본 함수 및 입력
max,min함수val max = maxOf(10, 20, 30) // 30 val min = minOf(10, 20, 30) // 10random: 범위 내에서 랜덤 숫자val randomNumber = (1..100).random() // 1부터 100 사이의 랜덤 정수- 키보드 입력: 자바의
Scanner와 거의 유사합니다import java.util.Scanner
val scanner = Scanner(System.in)
// in이 코틀린 예약어라 로 감싸줌
val input = scanner.nextInt()
// 또는 간단하게
val name = readLine() ?: "Unknown" // null 안전성
## 5. 제어 흐름
* 가장 큰 차이는 조건문이 단순한 구문이 아닌 결과 값을 반환할 수 있는 표현식이라는 겁니다.
#### if 문 (3항 연산자가 없는 이유)
자바의 3항 연산자 (`조건 ? 참 : 거짓`)가 코틀린엔 없습니다.
대신 `if` 문 자체가 값을 반환합니다.
```kotlin
// 자바: int max = (a > b) ? a : b;
val max = if (a > b) a else b이렇게 if 결과가 변수에 바로 꽂힙니다.
when 문 (Switch의 개선형)
코틀린 when은 훨씬 직관적입니다.
val score = 85
val grade = when (score) {
in 90..100 -> "A" // 90~100 범위 체크
in 80..89 -> "B"
else -> "F"
}
반복문: 범위(Range)
for문
자바의 for-each와 유사합니다.
for (아이템 in 컬렉션_또는_범위) { ... }.. (범위 연산자)를 씁니다.
// 1. 요소 반복 (for-each)
for (item in collection) { /* ... */ }
// 2. 인덱스 반복
for (i in collection.indices) {
println("$i: ${collection[i]}")
}
// 3. 인덱스와 값 동시 순회
for ((index, item) in collection.withIndex()) {
println("$index: $item")
}
// 4. 범위 반복
for (i in 1..5) { ... } // 1부터 5까지
for (i in 1 until 5) { ... } // 1부터 4까지 (5는 미포함)
for (i in 10 downTo 1) { ... } // 10부터 1까지 감소
for (i in 1..10 step 2) { ... } // 1부터 10까지 2씩 증가
while= 자바와 동일
다음편에서는 코틀린을 쓰는 진짜 이유인 Null 처리랑 클래스에대해 정리 해보겠습니다.
감사합니다.
'Language > Kotlin' 카테고리의 다른 글
| [Kotlin].ch3.코틀린 고급 문법 (0) | 2026.01.09 |
|---|---|
| [Kotlin].ch2. Null 안정성과 클래스 (0) | 2026.01.09 |