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) } } }
출력
'Android Kotlin' 카테고리의 다른 글
Android Kotlin - SwitchCompat example (0) | 2018.08.17 |
---|---|
Android Kotlin - static method (0) | 2018.07.27 |
Android Kotlin - list, for 예제 (0) | 2018.07.23 |
Android Kotlin - Method, if 예제 (1) | 2018.07.23 |
Android Kotlin - findViewById , onClickListener 예제 (0) | 2018.07.23 |