Chapter6. 클래스_6

박경희·2023년 6월 6일
0

공부를 해보자

목록 보기
12/38

6-6 접근 제한자

  • public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있도록 한다.

  • protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 한다.

  • private 접근 제한자 : 개인적인 것이라 외부에서 사용될 수 없도록 한다.

  • default 접근 제한자 : 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 한다.

    Getter와 Setter 메소드

    Setter

  • 객체 지향 프로그래망에서는 메소드를 통해서 필드를 변경하는 방법을 선호한다.

  • 필드는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도한다.

  • 이는 메소드는 매개값을 검증해서 유효한 값만 객체의 필드로 저장할 수 있기 때문이다.
    이러한 역할을 하는 메소드가 Setter이다.

void setSpeed(double speed){
	if(speed < 0) {	//매개값이 음수일 경우 speed 필드에 0으로 저장하고, 메소드 실행종료.
       this.speed = 0;
       return;
    }else{
     thins.speed = speed;
    }
}

Getter

  • 외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋다. 왜냐하면 필드값을 직접 사용하면 부적절한 경우도 있기 때문이다.
  • 이런 경우에는 메소드로 필드값을 가공한 후 외부로 전달하면 된다.
  • 이런 메소드가 Getter이다.
double getSpeed(){
	double km = speed*1.6; // 필드값인 마일을 km단위로 환산 후 외부로 리턴
    return km;
}
  • 클래스를 선언할 때 가능하다면 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Setter와 Getter 메소드를 작성해서 필드값을 안전하게 변경/ 사용하는 것이 좋다.

  • 필드 타입이 boolen일 경우에는 Getter는 get으로 시작하지 않고is로 시작하는 것이 관례이다.

  • 만약 외부에서 필드값을 읽을 수만 있고 변경하지 못하도록 하려면(읽기 전용) Getter 메소드만 선언해도 좋고, 아니면 Setter 메소드가 private 접근 제한을 갖도록 선언해도 좋다.

마무리

  • 필드의 값을 외부로 리턴해주는 메소드를 Getter라고 하고 외부에서 값ㅇ르 받아 필드를 변경하는 메소드를 Setter라고 한다.
  • Getter와 Setter는 많이 사용해봐야 알 것 같다. 보다보니 알 것 같기도 하면서도 아직 명확하게 머릿속에 들어온 느낌이 안든다. 이 챕터는 여러번 반복해서 많이 봐야겠다.

    *참고 혼자공부하는자바 신용권 지음 한빛미디어.

0개의 댓글