티스토리 뷰
Goal
- 접근 제어자의 정의에 대해 알아본다
- 정보은닉에 대해 알아보고, 코드 예제를 살펴본다.
1. 접근 제어자 (access modifier)
- 변수, 메서드, 생성자에 대한 접근 권한 지정
- public, private, protected, 아무것도 안 쓰는 경우(기본 접근 제어자)
- private를 사용하면 클래스 외부에서는 접근 할 수 없음.
2. 정보은닉
- 접근 제어자를 적절하게 사용하여, 데이터의 접근 권한을 설정하여 정보를 은닉하는 방법.
- 주로 private 접근 제어자와 get, set 메서드를 활용하여, ID나 패스워드 등의 중요한 정보의 접근을 제어한다.
- get, set 메서드를 통해 정보를 관리하면, 정보를 입력하거나 출력할 때, 불필요한 정보들을 조건문을 통해 걸러낼 수 있다.
3. 정보은닉 예제
3-1 MyData.java
- day, month, year를 private로 선언하여, 데이터 수정을 제어한다.
- 데이터를 수정하거나 사용하고 싶을 경우, get, set 메서드를 사용하여 관리한다.
- get 메서드를 통해 불필요한 데이터가 오는 것을 제어할 수 있다. (1월부터 12월에 포함하지 않는 숫자)
public class MyDate {
private int day;
private int month;
private int year;
private boolean isValid = true;
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 == false) {
System.out.println("유효하지 않은 날짜 입니다.");
}
else {
System.out.println( year + "년 " + month + "월 " + day + "일 ");
}
}
}
3-2 MyDateTest.java
- set메서드를 통해 데이터에 값을 넣고 date를 출력한다.
package hiding;
public class MyDateTest {
public static void main(String[] args) {
MyDate date = new MyDate();
date.setDay(14);
date.setMonth(10);
date.setYear(2020);
date.showDate();
}
}
'Java > Java 올인원 패키지' 카테고리의 다른 글
7. 객체 간 협력 (0) | 2020.03.14 |
---|---|
6. This (Java) (0) | 2020.03.14 |
4. 참조 자료형 (reference data type) (0) | 2020.03.14 |
3. 생성자 (Java) (0) | 2020.03.14 |
2. 함수와 메서드 (0) | 2020.03.13 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- 20200421
- 20200804
- 20200317
- 20200427
- 20200403
- 20200503
- 20200330
- 20200512
- 20200406
- 20200417
- chapter7
- 20200504
- 20201204
- likelion
- 20200425
- 생활코딩리눅스
- 20200423
- 20200415
- 20200413
- 20200624
- 20200429
- 20200319
- 20200622
- 20200424
- 20200502
- 20200510
- 백준
- 20200428
- 20200420
- chapter8
- Total
- Today
- Yesterday