[Java] 접근 제어자(Access Modifier)

chael_lo·2021년 5월 10일
0

Java

목록 보기
16/52

접근 제어자를 사용하면 클래스 멤버(필드와, 메소드) 외부에서의 직접적인 접근을 허용하지 않는 멤버를 설정하여 정보 은닉을 구체화할 수 있다.

접근 제어자의 필요성

접근 제어자는 객체 지향의 개념에서 캡슐화, 추상화, 은닉화와 관련이 있다.

  • 캡슐화: 어떤 변수나 메서드의 접근을 최대한 제한하는 것을 말한다.
  • 추상화: 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것을 말한다.

만약 모든 변수와 메서드의 접근을 허용하고 모든 정보를 표현한다면 다른 개발자가 해당 패키지를 사용하면서 수정하면 안되는 데이터를 수정할 수 있고, 또 모든 정보를 보는 것은 비지니스 로직이 사용자들에게 공개되는 것과 다름 없다.
따라서 적절한 접근 제어자를 이용해 사용자에게 반드시 필요한 변수와 메서드만 공개하는 것이 좋다.

접근 제어자 종류

  1. public: 어디서든 접근 가능
  2. private: 같은 클래스 안에서만 접근 가능
  3. protected: 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근이 가능
  4. default: 같은 패키지 안에서만 접근 가능(접근 제어자를 생략한 경우 자동으로 default)
class OtherClass {//접근 제어자를 생략한 경우 자동으로 default
	 int a = 10;//접근 제어자를 생략한 경우 자동으로 default
	 public int b = 20;
	 protected int c = 30;
	 private int d = 40; //private: 다른 클래스 에서는 접근 불가
}

접근 제어자 사용 가능 범위

  • 클래스: public, default
  • 생성자: public, protected, default, private
  • 전역변수(=멤버변수, 메서드 밖에서 선언된 변수): public, protected, default, private
  • 메서드: public, protected, default, private
  • 지역 변수(메소드 안에 선언된 변수): 접근 지정자 사용 x
profile
천천히 꾸준히

0개의 댓글