접근 제한자
- 필드, 메서드의 보안을 위해 접근을 제한하기 위한 수식자
- 클래스 설계 시 원하는 곳에서 사용할 수 있도록 설계해야 한다.
- 접근 제한자 종류
- public
- protected
- (default)
- private
 
접근 제한자 종류
            모든 클래스    상속 관계      동일 패키지    동일 클래스
public          O            O             O            O
protected       X            O             O            O
(default)       X            X             O            O                  
private         X            X             X            O
정보은닉
- 만약 grade에 1~4까지만 입력하게 하고싶다면? 5이상이 대입되었을 때 오류가 발생하도록 하고 싶다면?
public class Student {
   
   private int grade;
   
   public int setGrade(int grade) {
      if(grade >= 1 && grade <= 4) {
         this.grade = grade;
      } else {
         System.out.println("학년 오류");
      }
   }
}
- 필드의 private 선언을 통해 외부에서 직접 접근하지 못하게 하고 메서드를 통해 접근하게 함으로써 잘못된 접근, 의도치 않은 값이 삽입되는 것을 막을 수 있다.