JAVA/chapter01_JAVA_개념정리
chapter15_access_modifier
GAWON
2023. 5. 31. 18:14
1.1 정보은닉 (Information Hiding)
- 불필요한 내부 정보는 숨기고, 필요한 정보만 노출 시킨다.
- 불필요한 내부 정보는 대표적으로 "필드"이다.
- 노출 시키는 정보는 대표적으로 "생성자", "메소드"이다.
- 노출 여부 결정은 "접근 지시자"를 통해서 한다.
- 접근 지시자(Access Modifier)의 종류
1) public : 누구나 접근 가능 ★
2) protected : 같은 패키지 내에서만 접근 가능 but 상속 관계의 다른 패키지 클래스 접근 가능
3) default : 같은 패키지 내에서만 접근 가능
4) private : 같은 클래스 내에서만 접근 가능 ★
종류 동일 클래스 하위 클래스 동일 패키지 외부 패키지
private O X X X
default O X O X
protected O O O X
public O O O O
- 일반적으로 다음과 같이관리한다.
1) 필드 : private
2) 생성자 : public
3) 메소드 : public
(부모 클래스를 상속받는 자식클래스가 있을때 부모의 접근 지시자보다 자식의 접근 지시자가 더 범위가 커질 수있다.(범위가 좁아지는건 안됨!))
ex) 부모 클래스(default) - 자식 클래스(public) (O)
부모 클래스(public) - 자식 클래스(protected) (X)
1.2 Getters & Setters
- 필드를 private 처리하면 필연적으로 필드에 접근하기 위한 메소드가 필요하다.
- 필드에 값을 저장하는 메소드들을 setter 라고 한다.
- 필드의 값을 읽어오는 메소드들을 getter 라고 한다.
- setter 규칙
1) public void set필드명(매개변수){
this.필드 = 매개변수;
}
boolean isKorean; ★boolean 타입은 예외!! is를 뺴고 만든다.
2) public void setKorean(boolean isKorean){
this.isKorean = isKorean;
- getter 규칙
1) public 리턴타입 get 필드명(){
return 필드명;
}
boolean isKorean; ★boolean 타입에서는 get이 빠진다.
2) public boolean isKorean(){
return isKorean;
}
- 이클립스는 setter 와 getter를 자동완성 해준다. (자동완성을 이용하자~~)
1) 메뉴 - Source - Generate Getters and Setters
2) 우클릭 - Source(Alt+Shift+S) - Generate Getters and Setters