접근 제한자와 정보 은닉(캡슐화)

접근 제한자

  • 필드, 메서드의 보안을 위해 접근을 제한하기 위한 수식자
  • 클래스 설계 시 원하는 곳에서 사용할 수 있도록 설계해야 한다.
  • 접근 제한자 종류
    • 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 선언을 통해 외부에서 직접 접근하지 못하게 하고 메서드를 통해 접근하게 함으로써 잘못된 접근, 의도치 않은 값이 삽입되는 것을 막을 수 있다.

좋은 웹페이지 즐겨찾기