반응형
접근 제어자 | 설명 |
public | 외부 클래스 어디에서나 접근 |
protected | 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 있고 그 외 클래스에서는 접근 불가 |
아무것도 없는 경우 | default이며 같은 패키지 내부에서만 접근 가능 |
private | 같은 클래스 내부에서만 접근 |
정보 은닉
클래스 내부에서 사용할 변수나 메서드를 private로 선언해서 외부 접근을 차단
사용 이유
외부 클래스에서 접근이 자유로울 시 값을 마음대로 넣게 되어 정보 오류가 발생할 수 있기 때문
사용 방법
get(), set()을 이용해 클래스 내부의 public 메서드를 통해서만 값에 접근할 수 있도록 함
package first_project;
public class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if(age < 20) {
System.out.println("미성년자입니다.");
this.age = -1;
}else {
System.out.println("성인입니다.");
this.age = age;
}
}
}
package first_project;
public class Hellojava {
public static void main(String[] args) {
Person person = new Person();
person.setAge(19);
System.out.println(person.getAge());
Person person2 = new Person();
person2.setAge(27);
System.out.println(person2.getAge());
}
}
댓글