[Java/Kotlin] 코틀린 const ⁉️

Jay·2021년 1월 18일
0

Java&Kotlin

목록 보기
7/30
post-thumbnail

Intro

val은 상수, var은 변수 (맞자나🙋‍♂️)
근데 다르다고 한다. (약간😅)
val은 값 자체를 바꿀 수 없지만 특정 클래스의 객체가 들어가면 해당 값의 속성은 바꿀 수 있다. (뭐라고?🤷)

val color1 ➡️ val color2 <-이렇게는 못 바꾸는데
color1 객체 내의 속성 ex) blue는 바꿀 수 있다는거.

근데 이렇게 내부 속성 마저 변하게 하고 싶지 않다면?
그때 나오는게 const인 것이다.


🤣 이게 무슨 말이지?

음.. 그니까 kotlin을 사용하여 코드를 작성할 때,

val BLUE = "blue"

이렇게 val로 BLUE를 선언하면 다른 곳에서 BLUE를 상수처럼 쓸 수 있다.
getter()를 사용해서 가져오게 될 것이다.

그럼 java에선?

public static final String BLUE = "blue"

이걸 보면 느끼겠지만 코틀린 코드가 static final이 되어야 한다.
const를 추가하여 속성을 static final하게 만들어야 한다.


const

  • val 앞에 const를 붙이면 해당 변수에 원시 타입과 String만 넣을 수 있는 완전 상수 된다.
  • const는 클래스의 속성이나 지역 변수로는 사용 할 수 없다.
  • 반드시 companion object / object 안에 있어야 한다.
  • 대문자와 _만을 사용하는 컨벤션.
  • 굳이 상수를 사용하는 이유? 변수는 메모리를 다양하게 사용하여 메모리가 차지가 많아진다.
    -> 심지어 초기화시에도 많아진다. 그래서 상수를 사용하면 성능이 좋아진다.
profile
developer

0개의 댓글