작성
·
124
1
강의 늘 잘보고 있습니다. 다름이아니고. 제가 중급 1편까지 자바로 하다가 제목표인 안드로이드 앱 개발을 위해서 중급 2편은 코틀린으로 해보고 있습니다. 코틀린 문법을 찾아보면서 하는중인데 코틀린에는 getter와 setter가 없더라고요. 그래서 변수에 직접 접근을해서 set과 get을 하고있습니다(dogHospital.animal = dog 이런식으로요.) 이렇게 코틀린은 그냥 변수에 직접 접근하는 수밖에 없는지 궁금하구요. 또하나 의문은 자바에서 캡슐화를 위해 필드를 private으로 하고 getter setter로 변수에 접근을 하는데 getter와 setter가 어차피 public 이면 캡슐화에 의미가 있는지 궁금합니다. 현업에서는 어떻게 쓰나요??
답변 1
1
안녕하세요.준호님, 공식 서포터즈 코즈위버입니다.
코틀린에서는 객체의 getter/setter를 기본적으로 제공합니다. 그래서 {인스턴스.필드} 코드는 기본 getter 를 호출하게 되며, {인스턴스.필드 = 값} 은 기본 setter 를 호출합니다.
자바 실무에서는 DTO 객체일 경우 getter/setter를 모두 제공하나 엔터티의 경우는 getter/setter 를 모두 제공하지 않고 생성자를 통해 초기화를 제공하는 경우가 일반적입니다. 또 Controller/Service/Repository 등의 컴포넌트도 getter 혹은 setter를 제공하지 않는게 일반적입니다.
감사합니다.