접근 지정자
클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드
접근 지정자 설정은 객채를 사용할때 오류를 줄일 수 있다.
💡 접근 지정자 변수
필드는 private로 선언하는 것이 좋다. (다이렉트로 필드에 접속하는 일은 없도록 , 상수 빼고)
접근 지정자 | 사용방법 | 내용 |
private | private 클래스(..) | 같은 클래스 내부에서만 접근가능 |
(default) | 클래스 (..) | 같은 패키지 내에서 접근가능 |
protected | protected 클래스 (..) | 같은 패키지 내에서 + 상속관계 접근 가능 |
public | public 클래스(..) | 모든 패키지에서 생성자 호출 가능 |
💡 GET / SET 메서드
- private 으로 선언된 멤버 변수 (필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공
- get() 메서드만 제공 되는 경우 read-only 필드
- 이클립스에서 자동으로 생성됨
💡 정보은닉
- private으로 제어한 멤버 변수도 SET/GET 메서드로 접근이 가능하지만 , private 일때 각 변수에 대한 제한을 SET/GET 메서드에서 제어 할 수 있다.
- 객체 지향 프로그램에서 정보 은닉은 필요한 외부에서 접근 가능한 최소한의 정보를 오픈함으로써 객체의 오류를 방지하 클라이언트 객체가 더 효율적으로 객체를 활용할 수 있도록 해준다.
private int day;
private int month;
private int year;
private boolean isValid; //기본은 false
public int getMonth() {
return month;
}
public void setMonth(int month) {
if (month < 1 || month > 12) {
isValid = false;
}else {
isValid = true;
this.month = month;
}
}
캡슐화
- 정보를 감싸서 꼭 필요한 정보와 기능만 외부에 오픈함
- 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현 하게 함
- 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다.
'BackEnd > JavaProgram' 카테고리의 다른 글
[ JAVA ] 객체 간의 협력 / 예제 문제 풀어보기 (0) | 2023.01.30 |
---|---|
[ JAVA ] this 레퍼런스 (0) | 2023.01.30 |
[ JAVA ] 참조 자료형 정의 및 사용해보기 (0) | 2023.01.30 |
[ JAVA ] 오버로딩(Overloading)과 오버라이딩(Overriding) (1) | 2023.01.30 |
[ JAVA ] 인스턴스 생성과 힙 메모리(heap memory) / 생성자 구현 (0) | 2023.01.29 |