본문 바로가기

java

은근 모르는 자바 접근 제어자 4종 꿀팁

객체 지향 프로그램에서는 예약어를 이용해 클래스 내부의 변수나 메서드 생성자에 대한 접근 권한을 지정할 수 있는데 이러한 예약어를 접근 제어 자라고 말을 합니다. 보통 public의 예약어를 두고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻인데 처음 공부를 할 때 많이 사용을 하는 접근제어자입니다.

보통 접근제어 자라고 하면 3종으로 앞서 말씀드린 public, private, protected을 주로 생각하기 마련인데 default까지 포함하여 총 4종의 접근제어자가 있습니다. 하나씩 간단하게 설명을 해 드려 보겠습니다.

 

 

우선 public은 접근 제한이 전혀 없는 것으로 우리가 학교를 예시로 들면 운동장과 공터 등 학생이 아니라도 모두가 이용이 가능한 공간이라 생각을 해주시면 될 것 같습니다. 우리가 이러한 공간에 지갑을 두고 올 수는 없는 노릇이니 이러한 곳에는 중요한 데이터를 담기에는 걱정이 되겠죠?

그다음 protected가 접근의 범위를 많이 허용해주는데요.

동일하게 학교를 비유로 해서 표현을 한다면 같은 학교에 화장실 혹은 강당 및 독서실이 될 것 같습니다. 그래도 넓은 접근 범위를 허용해주고 있는데 이러한 곳에는 학교 급식표 공지사항 등 내부에서만 확인이 가능한 정보를 담는 것이 아무래도 좋겠죠?

모두가 알면서도 깜박하는 default입니다.

프로그램에서 아무런 접근제어자를 명시하지 않을 경우 default 예약어가 자동으로 할당이 되게 됩니다. 자동으로 할당되다 보니 은근히 깜빡하는 경우가 많은데요. 같은 패키지 내에서만 접근이 가능합니다. 마치 같은 학년이 모 여사 용한 층을 생각하시면 편하지 않을까 생각합니다. 학급 게시판 3학년 공지사항 이러한 것과 같은 소수의 공유 게시판 같은 부분입니다.

마지막으로 가장 강력한 접근의 권한을 가진 private는 학교의 시간표와 비슷하지 않은가? 생각이 됩니다.

같은 클래스에서 접근이 가능하며 중요한 데이터를 저장할 때 사용을 하게 될 것입니다. 같은 학교에서 우리가 칭찬합니다. 혹은 3-1반 시간표와 같이 같은 클래스에서 사용이 가능하고 수정이 가능한 곳이죠.

 

간단한 비유를 통해 접근제어자를 소개해보았는데 저도 부족한 상황이라 제가 부족한 부분이 있더라도 질타보다는 피드백을 통해서 발전될 수 있도록 도와주시면 정말 감사드릴 것 같습니다!!