가. 변수 선언
1. val 과 var
- val : 값이 변경되지 않는 변수
- var : 값이 변경될수 있는 변수
var count: Int = 10
count = 15
☞ 데이터 타입에 따라 Byte, Short, Long, Float, Double을 사용할 수도 있음
2. 유형 추론
val languageName = "Kotlin"
- 초기 값을 할당할 때 할당된 값의 유형을 기반으로 유형을 추론 가능
3. Null 처리
1. null
// Fails to compile
val languageName: String = null
☞ Kotlin 변수는 기본적으로 null 값을 보유할 수 없음(사용할려면 아래와 같이 사용해야 함)
val languageName: String? = null
☞ null 값을 변수에 할당하려면 ?를 기본 유형의 끝에 추가하여 null을 허용하는 변수 유형을 선언
2. lateinit 초기화
lateinit var a:String //OK
- 나중에 초기화 할 때 사용(특정 타이밍에 객체를 초기화할 때 사용)
- var 변수에서만 사용 가능
- null 값으로 초기화 할 수 없음
- 초기화 전에는 변수 사용 못함
- int, long, bouble, float에은 사용 못함
3. lazy 초기화
val str:String by lazy{
println("초기화")
"hello"
}
- val 변수에서만 사용 가능
나. 조건문
1. if
val answerString: String = if (count == 42) {
"I have the answer."
} else if (count > 35) {
"The answer is close."
} else {
"The answer eludes me."
}
println(answerString)
2. when
val answerString = when {
count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me."
}
println(answerString)
다. 함수
☞ 함수를 선언하려면 fun 키워드 뒤에 함수 이름이 오도록 사용
☞ 함수에 사용되는 입력 유형(있는 경우)을 정의하고 함수에서 반환하는 출력 유형을 선언
1. 입력값 없는 함수
- 사용법
fun generateAnswerString(): String {
val answerString = if (count == 42) {
"I have the answer."
} else {
"The answer eludes me"
}
return answerString
}
- 호출방법
val answerString = generateAnswerString()
2. 인수값 있는 함수
- 사용법
fun generateAnswerString(countThreshold: Int): String {
val answerString = if (count > countThreshold) {
"I have the answer."
} else {
"The answer eludes me."
}
return answerString
}
- 호출방법
val answerString = generateAnswerString(42)
3. 익명 함수
- 사용법
val stringLengthFunc: (String) -> Int = { input ->
input.length}
- 호출방법
val stringLength: Int = stringLengthFunc("Android")
println(stringLength)
☞ 함수명이 없음, 변수에 함수기능을 추가
☞ 입력을 String, 출력을 Int
☞ (String) -> Int
라. 클래스
class Car
1. 속성
class Car {
val wheels = listOf<Wheel>()
}
- 클래스는 속성을 사용하여 상태를 나타냄
- getter, setter 및 backing 필드를 포함할 수 있는 클래스 수준 변수
- wheels는 public val입니다. 즉, Car 클래스 외부에서 wheels에 액세스할 수 있지만 재할당할 수는 없음
class Car(val wheels: List<Wheel>)
- List<Wheel>을 생성자 인수로 취하고 인수를 사용하여 wheels 속성을 초기화
마. 접근 제한자
1. 변수나 함수를 공개하는 데 사용하는 키워드
- public (생략가능) : 전체 공개. 기본적으로 public
- private : 현재 파일 내부에서만 사용할 수 있음
- internal : 같은 모듈 내에서만 사용할 수 있음
- protected :상속받은 클래스에서 사용할 수 있음
출처:developer.android.com/kotlin/learn
'언어 > Kotlin' 카테고리의 다른 글
코틀린 Kotlin - 변수, 조건문, 함수, 클래스, 접근제한자 (0) | 2021.10.11 |
---|---|
코틀린 (0) | 2020.06.09 |