밤빵's 개발일지
[TIL]20241005 자바와 코틀린의 변수 선언 방식 차이 본문
자바를 공부하다가 코틀린이라는 언어를 처음 접하게 되면서 두 언어의 문법적인 차이점이 많이 보였다. 그 중에서도 변수 선언 방식이 코틀린과 자바 사이에서 가장 큰 차이 중 하나로 느껴졌다. 코틀린은 자바보다 더 간결하고 명확하게 변수를 선언할 수 있는 장점을 가지고 있고, 이러한 차이를 이해하면 코틀린의 효율성을 극대화할 수 있다.
▶자바의 변수 선언 방식
자바에서 변수를 선언할 때는 타입을 명시적으로 지정해 주어야 한다. 자바는 강타입 언어이므로, 변수를 선언할 때 그 변수에 저장될 데이터의 타입을 명시해야 하고, 이후에는 해당 타입의 값만 저장할 수 있다.
int age = 25; // 정수형 변수 선언
String name = "John"; // 문자열 변수 선언
boolean isActive = true; // 불리언 변수 선언
→ 자바에서는 변수 선언 시에 타입을 명시하고, 그 타입에 맞는 값을 대입해야 한다. 한 번 선언된 변수의 타입은 변경할 수 없으며, 선언된 타입과 다른 타입의 데이터를 저장하려고 하면 컴파일 에러가 발생한다.
또한, 자바에서는 final 키워드를 사용하여 불변(immutable) 변수를 선언할 수 있다. final 키워드를 사용하면 변수에 한 번 할당된 값을 이후에 변경할 수 없다. → 코틀린의 val과 유사한 개념
final int age = 25; // 불변 변수 선언
age = 30; // 컴파일 에러: 값을 변경할 수 없음
→ 자바에서는 final로 변수를 선언함으로써 불변성을 유지할 수 있으며, 코드의 안전성과 예측 가능성을 높여준다.
▶코틀린의 변수 선언 방식
코틀린은 자바와 달리 타입 추론을 지원하므로, 변수를 선언할 때 명시적으로 타입을 지정하지 않아도 된다. 코틀린 컴파일러는 변수에 할당된 값을 바탕으로 자동으로 타입을 추론하여 설정한다. 코틀린에서는 두 가지 방식으로 변수를 선언할 수 있는데, var와 val을 사용하여 가변 변수와 불변 변수를 구분한다.
var age = 25 // 가변 변수 (타입 추론: Int)
val name = "John" // 불변 변수 (타입 추론: String)
→ 코틀린은 자바처럼 타입을 명시할 수 있지만, 대부분의 경우 타입을 생략해도 된다. var 키워드를 사용하면 변수를 선언한 후에 값을 변경할 수 있고, val 키워드를 사용하면 한 번 선언된 값을 변경할 수 없다.
▶자바와 코틀린 변수 선언 차이 비교
구분 | 자바 변수 선언 방식 | 코틀린 변수 선언 방식 |
가변 변수 | int age = 25; | var age = 25 |
불변 변수 | final int age = 25; | val age = 25 |
타입 명시 여부 | 반드시 타입을 명시해야 함 | 타입 추론을 통해 명시하지 않아도 됨 |
불변 변수 지원 | final 키워드를 사용해야 불변성 유지 가능 | val 키워드로 쉽게 불변 변수 선언 가능 |
▶자바와 코틀린의 변수 선언 방식 차이점
→ 타입 추론
자바에서는 항상 타입을 명시해야 하는 반면, 코틀린에서는 컴파일러가 변수에 할당된 값을 바탕으로 타입을 추론하므로, 코드의 가독성을 높이고, 불필요한 코드 작성을 줄이는 데 도움이 된다. 하지만, 타입을 명시해야 하는 경우에는 코틀린에서도 명시적으로 타입을 선언할 수 있다.
var age: Int = 25 // 타입을 명시적으로 선언
val name: String = "John"
→ 가변과 불변의 구분
자바에서는 final 키워드를 사용해야 변수를 불변으로 만들 수 있지만, 코틀린에서는 val 키워드를 통해 더 직관적으로 불변 변수를 선언할 수 있다. 코틀린의 val은 자바의 final과 비슷한 역할을 한다. var은 자바에서 기본적으로 사용되는 가변 변수와 동일하다.
→ 변수 재할당
코틀린의 val은 값을 한 번 할당하면 변경할 수 없기 때문에 불변성을 보장한다. 자바에서 final 키워드를 사용해 불변 변수를 만드는 것과 동일한 개념이다. 하지만 코틀린의 경우 변수 선언 시 좀 더 직관적인 방식으로 val을 사용하여 불변 변수를 명확히 나타낼 수 있다.
→ 코드 간결성
코틀린은 타입 추론 덕분에 코드가 자바에 비해 훨씬 더 간결해진다. 예를 들어, 자바에서의 변수를 선언할 때는 타입을 항상 명시해야 하기 때문에 코드가 길어지지만, 코틀린은 타입을 생략할 수 있어 선언하는 코드가 짧고 직관적이다.
자바는 강타입 언어로서 변수를 선언할 때 타입을 명시해야 하며, 불변 변수를 만들기 위해서는 final 키워드를 사용해야 한다. 코틀린은 타입 추론을 지원하여 더 간결한 코드를 작성할 수 있으며, var과 val을 사용해 가변성과 불변성을 직관적으로 구분할 수 있다.
'Kotlin' 카테고리의 다른 글
[TIL]20241007 Safe Call(?.), Elvis 연산자(?:), Not-null Assertion(!!) 활용 (0) | 2024.10.07 |
---|---|
[TIL]20241006 Nullable과 Non-Nullable 타입: 코틀린의 null 안전성 (0) | 2024.10.06 |
[TIL]20241004 var과 val 의 차이? (0) | 2024.10.04 |
[TIL]20241002 Coroutines② (0) | 2024.10.02 |
[TIL]20241001 Coroutines (0) | 2024.10.01 |