본문 바로가기
IT/Java

자바 접근제어자(Access Modifier)

by flatsun 2019. 1. 30.
반응형

이미지1


자바 접근제어자는

public, default, protected, private

이렇게 네 종류가 있는데


하나하나 알아봐보자


먼저 public은 평소에 많이 써서 별 느낌이 없을텐데


public을 사용하면 아무 패키지 안의 아무 클래스라도 접근이 가능하다

즉 아무데서나 갖다 쓸 수 있다는 말이다


이미지2


이렇게 다른 패키지에서 클래스를 만들어 갖다 쓰는데도

그냥 가져다가 쓸 수 있다


다음에는 default를 한번 알아보자


이미지3


default는 그냥 접근 제어자를 쓰지 않으면

자동적으로 default 처리가 되는데


메소드에는 대부분 public 도배를 하지만

변수 같은 경우에는 귀찮아서 public을 쓰지 않고

 대부분 default로 처리를 하게 된다


default는 동일한 패키지 내에서는 갖다 쓸 수 있는데

패키지가 바뀌면 갖다가 못 쓴다


이미지4

이미지5


같은 first 클래스인 경우에는 잘 갖다가 쓰지만

패키지를 바꾸자 사용하지 못하는 모습을 보여준다


다음은 protected인데


이미지6


protected는 같은 패키지, 다른 패키지만 protected가 위치한 클래스를 상속받았을 경우

에만 갖다가 쓸 수 있다


이미지7


다른 패키지 일 경우에는 extends first.AccessTest 와 같이

 상속을 받아 사용이 가능하다


마지막으로는 private인데

private를 사용했을 경우에는 해당 클래스 외에는 사용을 못한다


하단에 보면 private로 정의를 한 뒤 사용하려 하면


이미지8

이미지9

이미지10



어떠한 경우에도 사용이 안되는데

private는 해당 클래스에서만 사용 가능하다는 것이다


마지막으로 정리를 해 보자면


 public  

 아무데서나 갖다 쓸 수 있음

 default

 같은 패키지에서만 사용 가능

 protectd

 같은 패키지, 상속을 통해서만 사용 가능

 private

 정의한 클래스에서만 사용 가능


대부분은 반사적으로 쓰는 public과 

귀찮아서 안 썼다가 적용되는 default만 쓰게 되지만 


알아두면 언젠가는 쓰지 않겠나

반응형

댓글