Archives
Recent Posts
«   2025/05   »
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 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[12일차 Kotlin] 변수와 자료형 본문

Computer/Kotlin

[12일차 Kotlin] 변수와 자료형

Wise-99 2023. 5. 11. 19:04

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 Literal(리터럴)

  • 코드 작성시 값을 작성하는 문법
    • 정수 : 100, 100L, 1_000_000
    • 실수 : 11.11, 22.22F
    • 문자 : ‘A’, ‘B’
    • 문자열 : “문자열”
    • 불리언 : true, false
    • Raw string : “””문자열”””
    • Nothing : 함수가 정상적으로 끝나지 않는다를 의미
    • Unit : void를 의미한다.

 

📖 예제 코드

fun main() {
    // 정수 리터럴
    println(100)
    
    // 4byte 기억 공간에 담을 만큼의 값이면 뒤에 L을 안붙이고 범위를 넘어가면 자동으로 L을 붙여준다.
    println(10000000000)
    println(938_492_934_823) // _ 가 빠져 저장됨

    // 실수
    println(11.11)
    println(11.11F)

    // 문자 리터럴
    // ''로 묶어주면 char 타입
    println('A')
    println('가')

    // 문자열 리터럴
    println("문자열")

    // 논리 타입
    println(true)
    println(false)

    // RowString
    // 여러 줄의 문자열을 표현할 때 사용한다.
    println("동해물과 백두산이\n마르고 닳도록\n하느님이 보우하사\n우리나라 만세")
    println("""동해물과 백두산이
        |마르고 닳도록
        |하느님이 보우하사
        |우리나라 만세
    """.trimMargin())
}

 


 

📖 자료형

  • 정수 : Long(8), Int(4), Short(2), Byte(1)
  • 부호가 없는 정수형 : ULong(8), UInt(4), UShort(2), UByte(1)
  • 실수 : Double(8), Float(4)
  • 논리 : Boolean(1)
  • 문자 : Char(2)
  • 문자열 : String

 

📖 코틀린의 자료형은 클래스이다.

fun main(){
	var data1: Int = 10
    var data2: Int? = null // null 대입 가능
    
    data1 = data1 + 10
    data2 = data1.plus(10) // 객체의 메서드 이용 가능
}
  • 코틀린의 모든 변수는 객체이다.
  • 따라서 코틀린의 모든 타입은 객체 타입이다.
    • 예) 정수를 다루는 타입인 Int는 기초 데이터 타입이 아닌 클래스이다.
  • 모든 타입이 객체이므로 Null을 대입할 수 있다.
  • 또한 객체의 메서드도 호출할 수 있다.

 

📖 변수 선언

  • var / val 변수명 : 타입 = 값
  • Kotlin은 변수 선언 시 val, var 두 가지 키워드를 사용한다.
    • var : 선언 이후 값을 다시 저장할 수 있다.
    • val : 선언 이후 값을 다시 저장할 수 없다.
  • 타입 생략 시 저장하는 값에 따라 자료형이 자동으로 결정된다.

 

📖 예제 코드

fun main() {

    var a1:Int = 100
    println("a1 : ${a1}")
    println("a1 : $a1") // ${ } 안에 변수를 작성할 때는 { }를 생략해도 된다.

    // 변수를 선언할 때 저장할 값을 지정해주면 클래스 타입을 생략해도 된다.
    // 변수에 저장하는 값을 보고 변수의 타입을 결정한다.
    var a2 = 200
    var a3 = 11.11
    println("a2 : $a2")
    println("a3 : $a3")

    // var : 변수의 값을 계속 저장할 수 있다.
    // val : 선언 시 변수에 값을 저장하고 그 이후에는 값을 저장할 수 없다.
    var a4 = 100
    val a5 = 100
    println("a4 : $a4")
    println("a5 : $a5")

    a4 = 200
    println("a4 : $a4")

    // val 변수에는 값을 다시 저장할 수 없다.
    a5 = 200
    println("a5 : $a5") <<< 오류 발생
}

 


 

📖 Null 허용 변수

  • Kotlin의 특징 중 하나는 Null 안정성이다.
    • 참조 변수에 객체의 ID가 있다면 그 객체에 접근할 수 있지만 null이 있다면 객체의 ID가 없으므로 객체에 접근할 수 없다.
    • null이 있는 상태에서 개발자가 객체에 접근하는 코드를 작성해 실행하면 NullPointerException이 발생한다.
    • 이에, Kotlin에서는 변수에 아에 null을 저장하지 못하게 하여 반드시 변수에 객체의 ID를 담도록 강제할 수 있다.
  • Kotlin은 변수를 선언 할 때 null 허용 여부를 설정할 수 있다.
  • 자료형 뒤에 ?를 붙여 표시한다.
  • var / val 변수명:자료형 = 값 ➡️ null을 허용하지 않는 변수
  • var / val 변수명:자료형? = 값 ➡️ null을 허용하는 변수
  • !! : null을 허용하는 값의 타입을 null을 허용하지 않는 타입으로 변환한다.

 

📖 예제 코드

fun main() {
	// 변수 뒤에 ?를 붙이지 않으면 null값을 담을 수 없으며 반드시 객체의 ID를 넣어줘야 한다.
    var a5:Int = null <<< 오류 발생
    
    // 변수 뒤에 ?를 붙이면 null 값을 담을 수 있다.
    var a6:Int? = null

    // null을 허용하지 않는 변수에 null을 허용하는 변수의 값을 저장한다.
    // !! : null을 허용하는 값의 타입을 null을 허용하지 않는 타입으로 변환한다.
    var a7:Int = a6!!
    println("a7 : $a7") <<< 오류 발생
    
	// 위와 다른 방법으로 null을 확인하여 변환한다.
    if(a6 != null){
        var a8:Int = a6
        println("a8 : $a8")
    }
}

'Computer > Kotlin' 카테고리의 다른 글

[12일차 Kotlin] 반복문(Loop)  (0) 2023.05.12
[12일차 Kotlin] When  (0) 2023.05.12
[12일차 Kotlin] 제어문  (0) 2023.05.12
[12일차 Kotlin] 함수  (0) 2023.05.12
[12일차 Kotlin] 기본 문법  (2) 2023.05.11