자바 Java/문법
접근 제한자와 Getter Setter
하나비 HANABI
2022. 1. 14. 23:48
접근 제한자
: 클래스 및 클래스의 구성 멤버에 대한 접근을 제한
1. 다른 패키지에서 클래스를 사용하지 못하도록 - 클래스 제한
2. 클래스로부터 객체를 생성하지 못하도록 - 생성자 제한
3. 특정 필드와 메소드를 숨김 처리 - 필드와 메소드 제한
public
적용대상: 클래스, 필드, 생성자, 메소드
접근할 수 없는 클래스: 없음. 외부 클래스가 자유롭게 사용
protected
적용대상: 필드, 생성자, 메소드
접근할 수 없는 클래스: 자식클래스가 아닌 다른 패키지에 소속된 클래스
default
적용대상: 클래스, 필드, 생성자, 메소드
접근할 수 없는 클래스: 다른 패키지에 속한 클래스
private
적용대상: 필드, 생성자, 메소드
접근할 수 없는 클래스: 모든 외부 클래스
public > protected > default > private
Getter Setter
: 객체의 무결성을 위해 외부에서 직접적으로 접근하는 것을 막기 위해 메소드를 통해서 필드를 변경
왼쪽 상단 source -> generate Getters and Setters
class Student {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class accessModifier {
public static void main(String[] args) {
Student s1 = new Student();
s1.setAge(20);
s1.setName("홍길동");
Student s2 = new Student();
s2.setAge(21);
s2.setName("이몽룡");
System.out.println(s1.getAge()); // 20
System.out.println(s2.getName()); // 이몽룡
}
}
20
이몽룡