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

메모장님의 프로필 이미지
메모장

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

프론트 컨트롤러 도입 - v1

접근지정자의 범위가 궁금합니다.

작성

·

185

0

기본적인 접근지정자의 범위개념은 인지하고있습니다.

예를들어 protected는 해당 패키지외에 상속받은 다른 클레스가 범위인데, 현재 13분 50분경 service 가 protected로 되었습니다. 이때 꼭 저걸 써야되나? 싶은 의문이 들더라구요

그래서 실무에서의 각 접근지정자의 대략적인 범위? 예를들어 private라면 대략 생성자같은 클라이언트가 건들면 안되는곳을 지정한다 처럼요. 부탁드립니다.

답변 1

4

안녕하세요, 메모장 님. 공식 서포터즈 codesweaver 입니다.
.
클래스의 멤버변수는 기본적으로 private을 기본으로 합니다.

.

생성자는 public을 기본으로 하지만 간혹 protected를 쓰는 경우가 있습니다.

이 경우에는 '이 객체는 new 키워드를 써서 인스턴스화 하지 말라'는 의미인 경우가 많습니다.

보통 싱글톤 패턴에서 자주 보이며, 생성자는 protected, private 으로 설정한고, instanceof() 메서드를 public 으로 설정하여, 이 메서드로만 인스턴스를 받아서 사용하는 식입니다..

.

메서드의 경우 외부에서 사용할 수 있는 기능은 public

외부에 노출하지 않고 내부에서만 사용하는 기능은 private을 씁니다.

.
감사합니다.

메모장님의 프로필 이미지
메모장

작성한 질문수

질문하기