☕Java: 접근 제한자

yoondgu·2022년 3월 27일
0

Java 

목록 보기
5/18

강의 수강 중 작성한 노트에서 내용을 발췌, 이응수 강사님 강의 의 노트와 이미지를 참조하고 있습니다.
스스로 이해를 위해 직접 쓴 문장들의 경우 정확성이 떨어질 수 있다는 점 참고 부탁드립니다.

접근제한자


  • 클래스안에 있는 멤버 (필드, 메소드, 생성자)의 접근을 제한한다.

📌 접근제한자의 종류

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 메소드를 제공하기도 한다.

        • Getter 메소드의 형식:
          • 접근 제한자 : public
          • 반환타입 : 해당 변수의 타입
          • 메소드명: get + 해당변수명 / is ~ (불린타입)
          • 매개변수: 없음
          • 구현코드: return 변수명; (대부분의 경우)
      • 멤버변수의 값을 변경하는 Setter 메소드를 제공하기도 한다.

        • Setter 메소드의 형식
          • 접근제한자: public
          • 반환타입: void
          • 메소드명: set + 해당변수명 / is~ (불린타입)
          • 매개변수: 해당 변수의 타입 및 이름과 똑같이 지정
          • 구현코드: this.변수명 = 매개변수명; 변수명과 매개변수명을 서로 같게 적는다.
      • 멤버변수가 private이라 외부 객체에서 . 연산자로 직접 접근할 수 없다.또, 많은 경우 직접 변수에 접근하기보다 이렇게 메소드로 간접적으로 접근하는 것을 선호한다.

        • 기본적으로 private으로 설정하되 Getter, Setter 메소드의 정의를 통해 변수에 대한 접근 여부를 조절하기 쉽기 때문이다.

0개의 댓글