강의 수강 중 작성한 노트에서 내용을 발췌, 이응수 강사님 강의 의 노트와 이미지를 참조하고 있습니다.
스스로 이해를 위해 직접 쓴 문장들의 경우 정확성이 떨어질 수 있다는 점 참고 부탁드립니다.
protected는 상속관계가 아니면 다른 패키지에서 접근할 수 없다.
구분 | 객체 내부 | 같은 패키지 | 서로 다른 패키지 | 공개 성격 |
---|---|---|---|---|
public | 접근가능 | 접근가능 | 접근가능 | 전체공개 |
protected | 접근가능 | 접근가능 | 하위 클래스만 접근가능 | 같은 패키지, 또는 상속관계일 때만 공개 |
접근가능 | 접근가능 | 접근불가 | 같은 패키지에만 공개 | |
private | 접근가능 | 접근불가 | 접근불가 | 같은 클래스에만 공개 |
클래스 앞, 변수 등의 앞에서 접근제한을 정의할 때 사용 가능한 것을 말하는 것임.
접근제한자가 무엇이든지간에 정의된 클래스 내부에서는 언제나 사용 가능하다.
사용 불가능한 접근제한자를 붙일 경우 이클립스에서 오류가 뜬다.
구분 | 사용가능한 접근제한자 | 사용 관례 |
---|---|---|
클래스 | public, default | 대부분 전체공개 |
멤버 변수 | public, protected, default, private | 멤버 변수 대부분은 private 접근제한자를 지정하여 은닉화시킨다. |
정적 변수 | public, protected, default, private | 클래스 변수 대부분은 상수로 사용하기 때문에 pulic 접근제한자를 지정한다. |
생성자 | public, protected, default, private | 대부분 전체공개 |
멤버 메소드 | public, protected, default, private | 대부분 전체공개 |
정적 메소드 | public, protected, default, private | 대부분 전체공개 |
매개변수, 지역변수 | 사용불가 |
VO (Value Object)
DTO (Data Transfer Object)
Entity 라고 부른다. 이러한 클래스들에서는
모든 멤버변수는 private 접근제한으로 하여 은닉화시킨다.
멤버변수의 값을 조회하는 Getter 메소드를 제공하기도 한다.
public
해당 변수의 타입
get
+ 해당변수명
/ is ~
(불린타입)없음
return 변수명;
(대부분의 경우)멤버변수의 값을 변경하는 Setter 메소드를 제공하기도 한다.
public
void
set
+ 해당변수명
/ is~
(불린타입)this.변수명 = 매개변수명;
변수명과 매개변수명을 서로 같게 적는다.멤버변수가 private이라 외부 객체에서 . 연산자
로 직접 접근할 수 없다.또, 많은 경우 직접 변수에 접근하기보다 이렇게 메소드로 간접적으로 접근하는 것을 선호한다.