본문 바로가기
컴소니/개발

[다시 시작하는 JAVA 개발] 접근 지정자 이해하기

by 금소니 2022. 5. 8.
반응형

#213

1. 접근 지정자란?

대학생 때 JAVA 공부를 하면서 무심코 넘어갔던 파트 중 한 부분입니다.

아직까지 사용하는데 불편함이라던지 문제가 있었던 적은 없지만 이제라도 제대로 알고 사용하는 것이 좋을 것 같아 한 번 알아보기로 했습니다.

크게 어려운 부분이 없어 다들 쉽게 이해하고 넘어가실 수 있을 것이라 생각됩니다.

 

그럼 알아보도록 하겠습니다.

접근 지정자란 주로 클래스명이나 메소드명 앞에서 많이 보셨을텐데요.

필드나 메소드 또는 생성자 앞에 위치하여 해당 요소의 사용 가능한 범위를 지정합니다.

접근 지정자 종류에는 총 4가지가 있는데 알아보도록 하겠습니다.

 

1) public : 속해있는 패키지의 모든 클래스뿐만 아니라 다른 패키지의 모든 클래스에서 사용할 수 있습니다.

2) protected : 속해있는 패키지의 모든 클래스다른 패키지의 자식 클래스에서 사용할 수 있습니다.

                   (상속클래스를 사용할 때 많이 사용합니다.)

3) default : 속해있는 패키지의 모든 클래스에서 사용할 수 있습니다.

                (가장 많이 사용하는 접근 지정자로 별도 선언이 없이 사용합니다.)

4) private : 속해있는 클래스에서만 사용할 수 있습니다.

 

위로 갈수록 사용할 수 있는 범위가 넓어지고 아래로 갈수록 사용할 수 있는 범위가 좁아집니다.

여기서 익숙한 지정자는 default입니다.

예를들어 저희가 변수를 선언할 때 보통 int a; 이렇게 선언하는데 이러한 경우가 default를 사용하는 경우라고 보시면 됩니다.

 

2. 접근 지정자 사용해보기

그럼 어떻게 선언하고 사용하는지 알아보도록 하겠습니다.

 

가볍게 필드에 적용하여 사용해보도록 하겠습니다.

 

1) 같은 패키지 내의 같은 클래스

이 경우에는 모두 사용할 수 있겠죠?

2) 메인 클래스/메소드에서 필드를 호출하여 출력

이 경우 private(변수 d)은 속해있는 클래스에서만 사용가능하므로 메인이더라도 필드를 참조할 수 없습니다.

3) 다른 패키지에 Import하여 출력하기

자식 클래스가 아니라면 다른 패키지에서는 public으로 지정된 변수만 호출이 가능합니다.

public으로 선언된 a만 호출이 가능하도록 되어있죠?

 

우선 샘플로 필드에 대해서만 확인해봤지만 다른 구성요소인 클래스와 메소드도 동일한 방식으로 적용됩니다.

따라서 상황에 맞게 지정자를 지정해준 뒤 사용한다면 가독성이나 기밀성 부분에서 많은 도움이 될 것으로 예상됩니다.

반응형

댓글