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하게 만들어야 한다.