android studio ver. 3.1.2
kotlin_version = 1.2.51


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

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

public class Global_j {

    static int num = 3456;
    static String name = "trip";
}
코틀린으로 변환 하였습니다.

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을 넣기 위해서는 ? 따로 추가해줘야 됩니다

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) } } }

출력


+ Recent posts