728x90
캡슐화
캡슐화란 외부로 부터 클래스에 정의된 속성과 기능들을 보호하고, 필요한 부분만 외부로 노출될 수 있도록 하여 각 객체 고유의 독립성과 책임 영역을 안전하게 지키는 것을 의미합니다.
접근 제어자
자바 객체 지향 프로그래밍에서 캡슐화를 구현하기 위한 방법 중 하나는 접근제어자를 활용하는 것 입니다. 접근제어자는 클래스 또는 클래스 내부의 멤버들에 사용되어 해당 클래스나 멤버들을 외부에서 접근하지 못하도록 접근을 제한하는 역할을 합니다.
접근 제어자 종류
- public
- default
- protected
- private
접근 제어자 | 클래스 내 | 패키지 내 | 다른 패키지의 하위 클래스 | 패키지 외 | 설명 |
private | O | X | X | X | 동일 클래스 내에서만 접근 가능 |
default | O | O | X | X | 동일 패키지 내에서만 접근 가능 |
protected | O | O | O | X | 동일 패키지 + 다른 패키지의 하위클래스에서 접근 가능 |
public | O | O | O | O | 접근 제한 없음 |
접근 제어자의 접근 범위
getter / setter
package class01;
class Student {
private String name;
private int score;
Student(String name, int score) {
this.name = name;
this.score = score;
System.out.println(this.name + "학생 생성완료!");
}
@Override
public String toString() {
return this.name + "학생은 " + this.score + "점 입니다.";
}
// private된 멤버변수에 접근 가능하도록하는 "메서드"를 추가로 생성
// setter : 멤버변수에 값을 설정해줌
// getter : 멤버변수로부터 값을 받아올 수 있도록 해줌
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
위의 예제 코드에서 모든 속성값들이 private 접근 제어자로 선언되어 있고, getter / setter 메서드의 접근제어자만이 public 으로 선언되어 있습니다. 따라서 선택적으로 외부에 접근을 허용할 속성과 그렇지 않을 속성을 getter / setter 메서드를 통해 설정해줄 수 있습니다.
Generate Getter and Setter 선언 방법
GitHub
https://github.com/Qkrwnsgus0522/Java
728x90