자바 접근제어자는
public, default, protected, private
이렇게 네 종류가 있는데
하나하나 알아봐보자
먼저 public은 평소에 많이 써서 별 느낌이 없을텐데
public을 사용하면 아무 패키지 안의 아무 클래스라도 접근이 가능하다
즉 아무데서나 갖다 쓸 수 있다는 말이다
이렇게 다른 패키지에서 클래스를 만들어 갖다 쓰는데도
그냥 가져다가 쓸 수 있다
다음에는 default를 한번 알아보자
default는 그냥 접근 제어자를 쓰지 않으면
자동적으로 default 처리가 되는데
메소드에는 대부분 public 도배를 하지만
변수 같은 경우에는 귀찮아서 public을 쓰지 않고
대부분 default로 처리를 하게 된다
default는 동일한 패키지 내에서는 갖다 쓸 수 있는데
패키지가 바뀌면 갖다가 못 쓴다
같은 first 클래스인 경우에는 잘 갖다가 쓰지만
패키지를 바꾸자 사용하지 못하는 모습을 보여준다
다음은 protected인데
protected는 같은 패키지, 다른 패키지만 protected가 위치한 클래스를 상속받았을 경우
에만 갖다가 쓸 수 있다
다른 패키지 일 경우에는 extends first.AccessTest 와 같이
상속을 받아 사용이 가능하다
마지막으로는 private인데
private를 사용했을 경우에는 해당 클래스 외에는 사용을 못한다
하단에 보면 private로 정의를 한 뒤 사용하려 하면
어떠한 경우에도 사용이 안되는데
private는 해당 클래스에서만 사용 가능하다는 것이다
마지막으로 정리를 해 보자면
public |
아무데서나 갖다 쓸 수 있음 |
default |
같은 패키지에서만 사용 가능 |
protectd |
같은 패키지, 상속을 통해서만 사용 가능 |
private |
정의한 클래스에서만 사용 가능 |
대부분은 반사적으로 쓰는 public과
귀찮아서 안 썼다가 적용되는 default만 쓰게 되지만
알아두면 언젠가는 쓰지 않겠나
'IT > Java' 카테고리의 다른 글
자바 Set(HashSet, TreeSet, LinkedHashSet) (0) | 2019.02.02 |
---|---|
자바 List(ArrayList, LinkedList) (0) | 2019.01.31 |
자바 getter, setter 알아보기 (4) | 2019.01.26 |
자바 예외처리(Exception) 알아보기 (0) | 2019.01.26 |
자바 ==와 equals() 차이 알아보기 (0) | 2019.01.23 |
댓글