본문 바로가기

Java

캡슐화와 접근 제어자

반응형
class Time {
	private int hour;	//0~23값을 가져야함. 손대면 안됨.
	private int minute;
	private int second;
}	

public class TimeTest {
	public static void main(String[] args) {
		TimeTest t = new TimeTest();
		t.hour = 100;
		System.out.println(t.hour);
	}
}

//Time 클래스에서 private로 캡슐화를 했기 때문에 다른 클래스에서 변경 불가

만약 private가 아니라 public으로 멤버변수를 선언하면, 다른 객체에서 멤버 변수에 직접 접근하여 값을 변경할 수 있다.

hour은 0보다는 같거나 크고 24보다는 작은 범위의 값을 가져야 한다. hour 값을 위 식처럼 범위를 벗어난 값을 넣어도 막을 수 없다. 이를 막기 위해 private 접근 제어자를 쓰는 것이다. 외부로부터 클래스 내부에 선언된 데이터를 보호하기 위해서 private 접근 제어자를 쓰는 것이다. 

 

 

반응형