반응형
접근제어자/접근제한자
modifier
- private
현재 class 내 에서만 접근 가능. - (default)
- 현재 package 내에서만 접근 가능.
- 접근 제어자를 안 붙였을 때 자동으로 default가 됨.
(특이점이 있는데 밑에 설명 해두겠습니다)
- ptotected
- 같은 package 내.
- 그리고 (다른 package여도) 자손 class 에서 접근 가능.
- public
제한 X.
쓰이는 곳
- 전역변수 맨 앞.
- 메소드 선언 맨 앞.
- 메소드 안 지역 변수에서는 사용 못 합니다.
public class는
해당 파일명과 일치하는 1개만 존재
class에는
public과 (defulat)만
default
약간 혼돈 스러울 수 있지만
지금까지 위에서 설명한 default는 범위를 얘기합니다.
접근제어자를 적지 않으면 default 또는 pakage private이라고 합니다.
실제로 적는 default라고 적어서 default를 명시하는 경우는 하나입니다.
사용 이유
- 외부로부터 데이터를 보호하기 위해서
- 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서
- 그래서 접근제어자 범위를 좁힐 수 있다면 되도록 좁히는 게 좋다.(특히 변수)
예시
example
접근제어자 기본규칙
- 웬만하면 접근제어자를 명시하는 것이 좋습니다.
→ 여기서 말하는 건 전역변수와 메서드를 말합니다(메서드 안에서는 접근제한자가 필요없으니까요). - 전역변수(클래스에서 method밖에 선언된 변수)는 private을 사용합니다.
- 메서드는 생성자를 포함해서 public을 사용하는 게 일반적입니다.
※ 예외적인 경우
상속 클래스, Singletone, 프로젝트의 유틸리티(java.util과 비슷한)를 만드는 경우는
생성자를 포함한 메서드의 접근제어자가 protected나 private등 다르게 사용됩니다.
반응형
'☕ 자바 JAVA > ☕ 클래스와 함수 Class & Method' 카테고리의 다른 글
[JAVA]참조변수의 형변환 (0) | 2024.04.04 |
---|---|
[JAVA]다형성 polymorphism (1) | 2024.04.04 |
[JAVA]예약어 static, final, abstract (0) | 2024.03.31 |
[JAVA]import문 (0) | 2024.03.31 |
[JAVA]package & class path. cmd로 java file실행과 환경변수 설정. (0) | 2024.03.30 |