2020. 8. 23. 18:05ㆍJava/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 |