인프런 커뮤니티 질문&답변
자바 Private 관련 문의
작성
·
303
1
자바에서 아래 코드가
private Integer age;코틀린으로 변환하면
val age: Int?, // 나이는 null일 수 있지만 불변이라고 하셨는데, 자바에서 private이 불변인가요 ? 클래스 내에서 수정할 수 있다고 알고 있는데 불변인건가요?
답변 1
1
안녕하세요, kimminji0511님!!! 아이고~~ 너무너무 좋은 포인트 질문 남겨주셔서 감사합니다!!! 🙇🙇
우선 저도 강의에서 어떻게 이야기했는지 확인해보니
"나이는 null이지만 (User.java 로직을 살펴보고) 불변이니까~ val age..." 라고 했더라고요!!!
결론부터 말씀드리면, kimminji0511님께서 짚어주신것처럼 private Integer age 를 Kotlin으로 그대로 옮긴다면, var age: Int? 가 맞습니다!!
private final 이 아니고 그냥 private 이기 때문에 원칙적으로 age 는 변경될 수 있고 이를 Kotlin으로 그냥 옮기면 값을 수정할 수 있는 var 이 되어야 하죠!
다만 조금 더 설명드려보자면, 제가 의도한 내용은 이랬습니다! 🥺
age는private Integer age로 값을 바꿀 수는 있으나User의 로직상 실제로age가 바뀌는 로직은 존재하지 않는다.때문에 '비즈니스적으로'
age는 불변이고,가급적 필드를 만들 때에 가변(
var) 보다는 불변(val)으로 만드는게 좋으니 (우선 val로 만들고 꼭 필요한 경우에 var로 여는게 좋으니)val age: Int?로 옮기면 좋겠다!
하지만 이런 설명이 부족했던 점은 분명 맞습니다.
kimminji0511님 덕분에 다른 분들도 부족했던 연결고리를 더 채워나가실 수 있을 것 같습니다!! 🙏🙏
좋은 포인트 짚어주셔서 정말 감사드립니다!!
혹시나 다른 부분도 궁금하신 점 생기시면 언제든지 편하게 질문 남겨주세요!!
새해복 많이 받으세요! 감사합니다!!! 🙇🙇





