inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

코틀린에서 프로퍼티 가시성 범위에 관련돼서 질문이 있습니다.

280

이지훈

작성한 질문수 7

0

8분 50초 쯤에 말씀하신 내용이 이해가 안가는데 확인 한 번만 부탁드립니다.

위 내용에서 노란색 밑줄에 대한 내용이 이해가 안가는데 제가 잘못 알고 있었던거지 질문드립니다.

 

코틀린에서는 필드만 만들면 getter와 setter를 자동으로 만들어준다.  라고 9강에서 말씀하셨는데 이번꺼는 setter가 왜 owner와 price에 한정지어서 말씀하신건지 궁금합니다.

 

바이트 코드도 디컴파일 해봤을 때도 getter3개 setter3개가 존재해서 헷갈리게 돼서 정확히 알고 싶습니다!

kotlin java oop

답변 1

1

최태현

안녕하세요! 지훈님~~!! 반갑습니다 ㅎㅎㅎㅎㅎ

 

아하~ 넵넵! 질문 주신 내용에서 이 부분이 핵심인 것 같아요!!

"코틀린에서는 필드만 만들면 getter와 setter를 자동으로 만들어준다.  라고 9강에서 말씀하셨는데 이번꺼는 setter가 왜 owner와 price에 한정지어서 말씀하신건지 궁금합니다."

의문을 해결하시기 위해 Decompile 까지 해보시다니 너무 좋습니다!!!

 

그 이유를 말씀드리면, 제가 8분 50초 쯤에 다룬 Car 클래스에서 name은 val 이기 때문입니다!!!

owner와 price만이 var이죠! 때문에 name은 불변이라 setter 자체가 존재하지 않습니다~!

 

아마 Decompile 전 Kotlin 클래스를 보시면 Car 클래스에 name이 var로 되어 있으실거에요!! val 프로퍼티가 Decompile되면 getter만 있을 겁니다!!

 

혹시 더 설명이 필요하신 부분이 있으면 편하게 알려주세요~~ 감사합니다 ㅎㅎㅎ

 

0

이지훈

아 정말 죄송합니다. 제가 해당 코드를 제대로 작성을 안했던거였군요.

바로 이해가 갔습니다 val 즉 상수로 선언돼 있기 때문에(생성자에서 초기화 후 변경 불가능) set 함수를 만들지도 않는거였군요.

늦은시간에도 답변 감사합니다!!

0

최태현

아이고 아닙니다 ㅎㅎㅎ 이번 강의는 자료가 없고 화면으로만 코드가 제공되어 실습하시는데 약간 어려움이 있으셨을 것 같아요!! 오히려 의문을 가지고 Decompile까지 직접 해보신게 대단하십니다!!

다음 강의부터는 자료도 잘 준비해보려고 합니다~ 🙏

감사합니다!! 언제든 또 질문 주셔요~!!!

0

이지훈

넵 기초편 정말 잘 보고 있고, 심화편도 나오면 바로 보고 싶네요!

수업노트

0

52

1

싱글톤과 스프링

0

71

2

get() = 3

0

49

2

강사님

0

74

1

강의 복습하면서 생긴 질문

1

93

1

Kotlin과 Java의 현업에서의 활용

0

121

2

data class와 자바의 Lombok을 이용한 DTO 클래스 차이 질문

0

72

1

코틀린에서 상속 시, 주의점에 대한 질문

1

95

3

내용 이해 질문

0

56

1

자바와 코틀린의 함수형 프로그래밍,

1

91

1

플랫폼 타입 설명 문의

2

73

2

널 아님 단언 관련 질문

0

83

1

강의 중 질문

0

79

2

범위 비교 질문

1

91

2

타입캐스팅 궁금한점 질문드립니다.

1

239

2

코틀린 val 질문

0

166

2

완강 후 Kotlin 이런저런 질문 드려봅니다!

3

408

2

확장함수 스타일 질문

0

138

2

확장 프로퍼티 질문

1

156

1

update 함수를 만든다는게 어떤 의미인지 예시가 궁금합니다!

1

283

1

java class의 NotNull 어노테이션 인식

1

260

1

[16강] 확장함수 관련 질문입니다!

1

130

2

리턴타입 사용시 any를 사용해도 괜찮은가요?

1

138

1

안녕하세요 scope function 에 receiver 가 없는 경우

1

168

1