Java - 접근지정자

2020. 8. 23. 18:05Java/Java

반응형

Java에서는 보안등 여러가지 이유로 클래스나 객체, 메서드에 다른 사용자나 객체등이 접근하는 것을 막을 수 있다.

 

이를 접근 지정자라 한다.  

 

자바에서 접근지정자는 public, default, protected, private 네가지 종류가 있다.

 

 

1.public 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O
                              - 다른 패키지에 있는 클래스들끼리 접근 O
                              - 자기 클래스내에서도 접근 O (private)
                              - 상속한 객체로 접근 가능 


2 .private 접근지정자=>   - 같은 패키지에서는 접근X
                                  - 다른 패키지에서도 접근X
                                  - 자기 클래스내에서만 접근 O


3.(default) 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O
                                 - 다른 패키지에 있는 클래스들끼리 접근X
                                 - 자기 클래스내에서도 접근 O (private)
                                 - 다른 패키지에 있는 상속받은 자식클래스의 객체를 통해서도 접근이 불가능 (X)

                                 멤버변수,메서드 앞에 아무것도 접근지정자를 쓰지 않는 경우(default 권한)

 


4.protected 접근지정자=> - 같은 패키지에 있는 클래스들끼리 접근 O
                                   - 다른 패키지에 있는 클래스들끼리 접근X
                                   - 자기 클래스내에서도 접근 O (private)
                                   - 다른 패키지에 있는 상속받은 자식클래스의 객체를 통해서도 접근이 가능 O 

                                     

 

 


사용범위    public > protected > default > private 

 

 

1.public class A 로 클래스를 작성=>외부 패키지에서 접근이 허용

2. class A로 클래스를 작성=>내부 패키지에서 접근이 가능(O)
                                      외부 패키지에서 접근 불가(X)

 

3. 오버라이딩을 할때 접근지정자는 최소 부모의 접근지정자와 같거나 더 넓어야 한다.


오버라이딩을 할때의 지정가능한 접근지정자


   default=>default,protected,public (O)=>자식이 부여가능한 접근지정자
   protected=>protected,public (O)
   public=>자식은 public (O)
   private=>상속이 안되기때문에  private,default,protected,public 다(X)


 

 

캡슐화를 적용시키는 경우

1.상속을 사용하지 않으면 접근지정자를 private 준다
   =>Setter ,Getter Method를 사용

2.상속을 사용하고, 캡슐화도 적용시킬려면  접근지정자를 protected를 줘야된다.

반응형

'Java > Java' 카테고리의 다른 글

Java - static(정적)  (0) 2020.08.23
Java - final  (0) 2020.08.23
Java - 상속(2) - super()  (0) 2020.08.23
Java - 상속(1)  (0) 2020.08.23
Java - 배열  (0) 2020.08.23