접근 제어자
자바에서 접근 제어자는 클래스, 변수, 메서드 및 생성자에 대한 접근을 제한하는 데 사용된다. 이를 통해 객체 지향 프로그래밍의 캡슐화 원칙을 구현할 수 있다. 주요 접근 제어자로는 public, private, protected, 그리고 기본 접근 제어자(명시하지 않은 경우)가 있다.

Private
- 선언한 클래스에서만 접근이 가능.
- getter, setter로 읽고 씀.
- 보통 멤버변수의 값을 읽는 메서드 이름을 '
get멤버변수이름'으로 하고, 멤버변수의 값을 변경하는 메서드의 이름을 'set멤버변수이름'으로 함.
- 메서드, 멤버 변수에서 사용.

Default
- 같은 패키지 내에서만 접근이 가능.
- default를 붙이지 않고 주로 생략함.
- 클래스, 메서드, 멤버 변수에 사용.

Protected
- 같은 패키지 내에서 또는 상속관계에 있는 자식 클래스에서만 접근 가능.
- 메서드, 멤버변수에 사용됨

Public
- 접근 제한이 없음.
- 하나의 소스파일 .(*java) 에는 public클래스가 단 하나만 존재할 수 있으며. 소스파일의 이름은 반드시 public클래스 의 이름과 같아야 함.

접근 제어자 사용 이유
접근 제어자는 객체의 데이터를 보호하고, 외부에서의 불필요한 접근을 막기 위해 사용된다. 이를 통해 데이터의 무결성을 유지하고, 객체 지향 프로그래밍의 캡슐화 원칙을 실현할 수 있다.