인프런 커뮤니티 질문&답변

euni님의 프로필 이미지
euni

작성한 질문수

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

11강. 코틀린에서 접근 제어를 다루는 방법

선생님 이상한 곳에서 헷갈립니다 ㅜㅜ

작성

·

478

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

코틀린은 자바와 달리 getter setter가 기본적으로 존재하는데

자바와 코틀린을 같이 사용하는 경우면 몰라도, 코틀린만 사용하는 경우 필드에 private을 붙이는 게 의미가 있나요?

어차피 public이던 private이던 getter가 자동으로 붙는데.. 헷갈립니다 ㅜ

답변 1

2

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요, 으뀨뜌님!! 좋은 질문 감사드립니다!! 😊

아유~~ 전혀 이상한 곳 아닙니다!!

 

코틀린만 사용하는 경우 필드에 private을 붙이는게 의미가 있는가?! 에 대한 답변을 드리자면 네네 있습니다!!!

 

결국 private의 목표는 그 클래스 밖으로 변수가 노출되지 않게 하는것이죠!

때문에 private을 붙여서 자동으로 private get이 생기더라도, 해당 변수는 클래스 안에서만 쓸 수 있지 밖에서는 쓸 수 없습니다!! 예를 들어

class A(var num)

이라는 클래스를 만들면 A 클래스 밖에서도 num을 마음껏 바꿔버릴 수 있죠

하지만,

class B(private var num)

이라는 클래스를 만들면 B 클래스 밖에서 num 을 바꿀 수가 없습니다!!

비록 B 클래스 안에서는 num 의 setter / getter가 자동으로 생기니 num 을 바꿀 수 있지만, B 말고 다른 친구들이 바꾸지 못하게 만들었다는데 의미가 있습니다.

 

또 궁금한 점 있으시면 편하게 질문 올려주세요!! 감사합니다! 😊

euni님의 프로필 이미지
euni
질문자

아 감사합니다.. 자바 롬복에서의 @Getter @Setter랑 같은 의미인 걸로 착각했네요!!

euni님의 프로필 이미지
euni

작성한 질문수

질문하기