캡슐화(encapsulation)란?
1. 접근 제어자를 사용하는 이유는 클래스 내부의 데이터를 보호하기 위해서이다. 이런 데이터 감추기를 캡슐화라고 한다.
2. 클래스 내부 작업을 위해 임시로 사용되는 멤버변수나 부분작업을 처리하기 위한 메서드등을 클래스 내부에 감추기 위해서
3. 외부에서 접근할 필요가 없는 멤버들을 private 으로 지정하여 외부에 노출시키지 않음으로서 복잡성을 줄임
접근 제어자를 사용하는 이유
- 외부로부터 데이터를 보호하기 위해서
- 외부에는 불필요한, 내부적으로 사용되는 부분을 감추기 위해서
public class Time {
public int hour;
public int minute;
public int second;
}
Time t = new Time();
t.hour = 25; //삐ㅣ삐
시간은 0-24까지 인데 위의 코드는 t.hour = 25 로 잘못된 값을 지정했지만 막을 방법이 없다.
접근제어자가 public 이라서;;;
이런 경우 접근 제어자를 public 이 아닌 private 또는 protected로 바꾸고 간접적으로 멤버변수 값을 다룰 수 있도록 하자
public class Time{
private int hour;
private int minute;
private int second;
public int getHour(){
return hour;
}
public void setHour(int hour){
if(hour < 0 || hour > 23) return;
this.hour = hour;
}
}
class의 멤버변수 접근제어자를 private로 지정하고, getter 와 setter를 만들어주기!!
getter는 값을 읽어올 수있게! setter 는 조건 만족시 값을 변경해줄 수 있게!
'JAVA' 카테고리의 다른 글
[자바의 정석 기초편 chapter 7] 참조변수의 형변환 (2) | 2022.12.09 |
---|---|
[자바의 정석 기초편 chapter7] 다형성(polymorphism) (0) | 2022.12.09 |
[자바의 정석 기초편 chapter 7] 접근 제어자(access modifier) (0) | 2022.12.08 |
[자바의 정석 기초편 chapter 7] abstract (0) | 2022.12.08 |
[자바의 정석 기초편 chapder 7] 제어자(modifier)/ static/final (0) | 2022.12.08 |