01. 접근 제어자(access modifier)
변수, 메서드, 생성자에 대한 접근 권한 지정
private | private가 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능합니다. |
default(기본 접근 제어자) | 접근 제어자가 없는 변수, 메소드는 default 접근 제어자가 되어 해당 패키지 내에서만 접근이 가능합니다. |
protected | protected가 붙은 변수, 메소드는 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능합니다. |
public | public이 붙은 변수, 메소드는 모든 곳에서 접근이 가능합니다. |
※ 밑에 있을 수록 많은 접근을 허용합니다.
private 변수를 외부에서 접근하게 하려면 public 메서드로 접근합니다. (getData, setData)
package hiding;
public class MyDate {
private int day; // private access modifier
private int month;
private int year;
public void setDay(int day) {
this.day = day;
}
public int getDay() {
return day;
}
}
02. Eclipse에서 자동으로 get, set 메소드 생성
body에 오른쪽클릭해서 Source → Generate Getters and Setters를 클릭합니다.
get, set 메소드가 필요한 변수를 체크한 후 하단의 Generate 버튼을 클릭합니다.
03. 변수를 private으로 설정하는 이유
- get과 set 메소드를 통해 데이터를 핸들링을 할 수 있기 때문에 오류를 막을 수 있습니다.
- 직접 변수를 접근하는 것이 아니기 때문에 정보가 보호됩니다.
package hiding;
public class MyDate {
private int day; // private access modifier
private int month;
private int year;
private boolean isValid;
public int getMonth() {
return month;
}
public void setMonth(int month) {
if (month < 1 || month > 12) {
isValid = false;
} else {
this.month = month;
}
}
…
public void showDate() {
if (isValid) {
System.out.println( year + "년 " + month + "월 " + day + "일입니다.");
} else {
System.out.println("유효하지 않은 날짜입니다.");
}
}
}
참고
패스트캠퍼스 : 객체지향 프로그래밍 강좌
'Java' 카테고리의 다른 글
[Java] static 변수, 메서드 (0) | 2021.06.10 |
---|---|
[Java] this에 대하여 (0) | 2021.06.10 |
[Java] 자바 용어 정리 (0) | 2021.06.08 |