써먹는 웹개발

[Java] 접근 제어자 public, protected, private 본문

웹개발/Java & Jsp

[Java] 접근 제어자 public, protected, private

kmhan 2020. 8. 22. 19:39


728x90
반응형

1. public

 - 모든 클래스에 의해 접근 가능

 

2. protected

 - 동일 패키지와 (동일 패키지가 아니더라도) 하위 클래스 관계에 있는 클래스 접근 가능

 

3. (default)

 - (접근 제어자를 지정하지 않은 경우에 해당되며,) 동일한 패키지에 속하는 클래스만 접근 가능

 예시 : B 클래스와 A1,A2 클래스가 다른 패키지인 경우

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
public class B {
    protected int protectedVariable;
    protected void protectedInstanceMethod_B() { }
    protected static void protectedInstanceMethod_B() { }
}
 
public class A1 extends B {
    void a1_func() {
        A1 a1 = new A1();
        B b = new B();
        a1.protectedInstanceMethod_B(); // OK
        b.protectedInstanceMethod_B(); // 컴파일 에러
    }
}
 
public class A2 extends A1 {
    void a2_func() {
        B b = new B();
        A1 a1 = new A1();
        A2 a2 = new A2();
        a2.protectedInstanceMethod_B(); // OK
        a1.protectedInstanceMethod_B(); // 컴파일 에러
        b.protectedInstanceMethod_B(); // 컴파일 에러
    }
}
 
cs  

  예시 출처 : https://velog.io/@hwhyeons/Java-protected-접근제어자의-실제-접근-가능-범위

 

4. private

 - 자기 자신 클래스 내에서만 접근 가능

 

출처: https://hyeonstorage.tistory.com/176

728x90
반응형


Comments