Java

Java - 접근제어자

장진혁 2023. 1. 27. 15:19

1. 접근제어자

  • private - 같은 클래스 내에서만 접근 가능 
  • default - 같은 패키지 내에서만 접근 가능
  • protected - 같은 패키지 내에서, 다른 패키지 자손클래스에서는 접근 가능
  • public - 접근 제한 없음

 

2. 접근제어자를 통한 캡슐화

  • 외부로부터 데이터를 보호를 하기위해
  • 외부에는 불필요한 부분, 내부적으로만 사용되는 부분을 감추기 위해
  • 멤버 변수를 private로 직접 접근을 막고 public 메서드를 통해서 접근 할 수 있도록 함
public class TimeTest { 
      public static void main(String[] args) 
      { 
            Time t = new Time(12, 35, 30); 
            System.out.println(t); 
//          t.hour = 13;
            t.setHour(t.getHour()+1);   // 현재시간보다 1시간 후로 변경한다. 
            System.out.println(t);      // System.out.println(t.toString());과 같다.
      } 
}

class Time { 
      private int hour; 
      private int minute; 
      private int second; 

      Time(int hour, int minute, int second) { 
            setHour(hour); 
            setMinute(minute); 
            setSecond(second); 
      } 

      public int getHour() { return hour; } 
      public void setHour(int hour) { 
            if (hour < 0 || hour > 23) return; 
            this.hour = hour; 
      } 
      public int getMinute() { return minute; } 
      public void setMinute(int minute) { 
            if (minute < 0 || minute > 59) return; 
            this.minute = minute; 
      } 
      public int getSecond() { return second; } 
      public void setSecond(int second) { 
            if (second < 0 || second > 59) return; 
            this.second = second; 
      } 
      public String toString() { 
            return hour + ":" + minute + ":" + second; 
      } 
}