Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- g1gc
- springboot
- GarbageCollector
- 프로세스
- 그리디
- 회고
- deque
- 분할정복
- 마크다운
- Python
- 정수론
- 문제풀이
- 구현
- 빌더패턴
- 이진탐색
- 몬티홀
- BFS
- 그래프 탐색
- GC
- Greedy
- 백준
- Markdown
- 브루트포스
- 그래프탐색
- DP
- 면접복기
- 적정 스레드
- 배열 돌리기1
- github
- Stack
Archives
- Today
- Total
FeelingXD
[Java] Java에서 접근제어자를 안쓴다면 .. 본문
Java package-private
문득 Junit으로 테스트를 작성할때 다른 클래스를 작성할때처럼 메소드에 지정자 없이 테스트를 작성하고 있었는데 접근제어자를 지정하지 않았을때 어떤 접근제어자가 설정 될지 궁금해졌다.
@Test
void test(){ // 접근제어자가 없는 메서드나 클래스는 어떤 접근제어를 할까 🤔
//given
//when
//then
}
Java의 접근제어자
접근제어자는 객체 지향적 설계에서 클래스의 노출을 최소화 하는데 도움을 준다.
자바에서는 이러한 정보 은닉을 위해 접근 제어자를 사용한다.
클래스나 메서드 앞에 작성하여 접근제어자를 명시한다.
class Main{
private void privateMethod(){ // private 접근
}
public void publicMethod(){ // public 접근
}
protected void protectedMethod(){ // protect 접근
}
void defaultMethod(){// package-private , default 접근
}
}
접근제어자의 종류는 다음과 같다.
- public (어디서든 접근가능)
- private(선언한 클래스 에서만 접근가능)
- protected(선언한 클래스, 같은 패키지, 상속받은 자식 클래스, 에서접근가능)
- default(package-private, 선언한 클래스, 같은 패키지 에서만 접근가능)
package-private (default)
명시적으로 package-private 를 접근제어자로 표시하려면 default
키워드를 사용하면된다.
default 는 접근제어자중 상당히 마이너하고 사용하면안된다 vs 사용하기어렵다. 등 대립이나 논란도 어느정도 있는 편이다.
결론
- 기본적으로 접근제어자 없이 작성되는 메소드나 클래스, 변수등은 모두 default(package-private) 접근제어자가 설정된다.
참조 및 더 읽어볼글
'프로그래밍 > Java' 카테고리의 다른 글
[Java] Stack 대신 Deque를 사용하자 📃 (0) | 2024.03.16 |
---|---|
[JAVA] 자바의 다양한 버전들! (0) | 2024.03.06 |
[Java] Java 8 의 Stream 간단하게 알아보기 (0) | 2024.02.15 |
[Java] - Java.lang 에 대해서 몰랏던 것들 😅 (0) | 2024.02.06 |
[Java] G1GC 알아보기 (0) | 2024.01.19 |