반응형
09. 클래스와 객체 - 09-10. 정보 은닉 - 1,2
| 접근제어자
변수 , 메서드, 생성자에 대한 접근 권한의 지정
public , private, protected , 아무것도 안쓰는 경우( 기본 접근 제어자 => 같은 package 내에서만 접근 가능)
private 를 사용하면 클래스 외부에서는 접근할 수 없음.
| 정보 은닉
외부에서 클래스 내부의 정보에 접근하지 못하도록 함.
private 키워드를 활용
private 변수를 외부에서 접근하게 하려면 public 메서드를 제공함.
클래스 내부 데이터를 잘못사용하는 오류를 방지할 수 있음.
package hiding;
public class MyDate {
private int day;
private int month;
private int year;
private boolean isValid;
public void setDay(int day) {
this.day = day;
}
public int getDay() {
return day;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
if ( month < 1 || month > 12) {
isValid = false;
}
else
this.month = month;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public void showDate() {
if ( isValid) {
System.out.println( year + "년 " + month + "월 " + day + "일 입니다." );
}
else {
System.out.println("유효하지 않은 날짜 입니다");
}
}
}
package hiding;
public class MyDateTest {
public static void main(String[] args) {
MyDate date = new MyDate();
date.setYear(2019);
date.setMonth(77);
date.setDay(100);
date.showDate();
MyDate date2 = new MyDate();
date2.setYear(2020);
}
}
- get 만 가능하고 set 못하게 -> readonly
- 넣어지는 값에 대한 validation
자바 인강이 듣고 싶다면 => https://bit.ly/3ilMbIO
반응형
'스프링, 자바' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 17회차 미션 (0) | 2020.08.26 |
---|---|
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 16회차 미션 (0) | 2020.08.25 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 14회차 미션 (0) | 2020.08.23 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 13회차 미션 (0) | 2020.08.22 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 12회차 미션 (0) | 2020.08.21 |