android studio ver. 3.1.2
kotlin_version = 1.2.51


변수 정의에 대해 알아보겠습니다.

먼저 java로 다음과 같이 int, String 변수를 만들었습니다.

1
2
3
4
5
public class Global_j {
 
    static int num = 3456;
    static String name = "trip";
}
코틀린으로 변환 하였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
object Global {
    internal var num = 3456
    internal var name = "trip"
}
 
// 실행 코드
override fun onClick(v: View?) {
        when(v?.id) {
            R.id.iv -> {
                Log.d("trip_", "java num : "+ Global_j.num + " , name : "+ Global_j.name)
                Log.i("trip_", "kotlin num : "+ Global.num + " , name : "+Global.name)
 
            }
        }
    }
결과 화면은 다음과 같습니다.



internal 은 접근 제어자 이며, 이외에 public, private, protected 로 쓸수 있습니다. 아무것도 없으면 public 으로 인식합니다.

이외에 변수 앞에 var, val 의 차이는 아래의 이미지 처럼
var 는 수정 가능 (변수로 사용)
val 은 수정 불가 (상수로 사용) 다른 값을 넣어보려고 시도 하면 에러가 발생합니다.




val 만 적었을 경우, 원하는 동작은 하지만 warring 메시지가 나오게 됩니다.




java 호환 어쩌구 저쩌구 ...

그래서 const 를 붙여주라네요.


아래는 추가적인 부분을 출력해보았어요
var name4 에서 보면 null을 넣기 위해서는 ? 따로 추가해줘야 됩니다

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
32
33
34
35
<p>object Global {
    internal val num = 3456
    internal val name = "trip"
 
    val num2 = 5678
    val name2 = "store"
 
    const val name3:String = "ts"
    const val num3:Int = 8888
    const val num3f:Float = 1.0F
    const val num3d:Double = 2.0
    const val type:Boolean = true
 
    //var name4:String = null
    var name4:String? = null
}
 
 
// 실행
override fun onClick(v: View?) {
        when(v?.id) {
            R.id.iv -> {
                Log.d("trip_", "java num : "+ Global_j.num + " , name : "+ Global_j.name)
                Log.i("trip_", "kotlin num : "+ Global.num + " , name : "+Global.name)
                Log.i("trip_", "kotlin2 num : "+ Global.num2 + " , name : "+Global.name2)
 
                //Global.num = 9999
                //Global.name2 = "trip_store"
 
                Log.i("trip_", "kotlin3 num : "+ Global.num3 + " , name : "+Global.name3)
                Log.i("trip_", "kotlin3 num3f : "+ Global.num3f + " , num3d : "+Global.num3d)
                Log.i("trip_", "kotlin3 type : "+ Global.type+ " , name4 : "+Global.name4)
            }
        }
    }</p>

출력


+ Recent posts