본문 바로가기
Java

[Java] 접근 제어 지시자와 get(), set() 메서드

by 스응 2023. 2. 7.
728x90
728x90

접근 제어 지시자 (Access modifier)

  - 특정 대상에 대해, 클래스 외부로부터의 접근 권한을 부여하는 명령어

      → 대상 : 변수, 메서드, 함수, 클래스 등 대부분

 

// 예시
private int 변수;

 

접근 제어 지시자
private 같은 클래스 (java 파일) 내부에서만 접근 가능
default (기본값) 같은 패키지 내부에서만 접근 가능
protected 같은 패키지 내부에 있거나,
다른 패키지여도 상속 관계의 클래스일 때는 접근 가능
public 같은 프로젝트 내라면 어디에서든지 접근 가능

#  외부에서 멤버변수의 값을 수정하지 못하게 하기

  - 멤버변수에 접근 제어 지시자 'private' 할당

      → 메서드를 이용한 값 수정은 가능하지만, 멤버변수에 직접 값을 수정할 수는 없게 됨

 

  1) 'private'이 할당된 변수에 대한 정보만 읽고 싶다면?

      → get() 메서드

  2) 'private'이 할당된 변수에 대해 수정이 필요하다면?

      → set() 메서드

 

 

반응형
728x90

get() 메서드

  - 'private'로 선언된 멤버변수(필드)에 대해 접근해서 값을 읽을 수 있는 메서드 (read-only)

  - 반드시 'return' 키워드를 필요로 함

 

// 클래스 파일에서 get() 메서드 구현

public 반환자료형 get메서드명() {
    return this.멤버변수;
}

 

  - get() 메서드명에 대한 코딩 컨벤션 

    1) 변수가 boolean 타입일 때

        : is + 변수명을 카멜 노테이션 표기법으로

            ex) 변수명 : abc → 메서드명 : isAbc()

    2) 그 외

        : get + 변수명을 카멜 노테이션 표기법으로

            ex) 변수명 : abc → 메서드명 : getAbc()

 

set() 메서드

  - 'private'로 선언된 멤버변수(필드)에 대해 값을 수정할 수 있는 메서드

  - 기본적으로 'return' 키워드를 필요로 하지 않음 (반환 자료형이 없음)

      → 방어적 코드 작성에는 활용할 수 있음 (메서드를 종료시키는 용도)

 

// 클래스 파일에서 set() 메서드 구현

public void set메서드명(자료형 매개변수) {
    // 방어적 코드 작성 가능
    if (조건식) {
        값이 잘못되었을 때 코드;
        return; // 메서드 종료
    }
    // 멤버변수의 값 수정
    this.멤버변수 = 매개변수;
}

 

  - set() 메서드명에 대한 코딩 컨벤션 

    : set + 변수명을 카멜 노테이션 표기법으로

        ex) 변수명 : abc → 메서드명 : setAbc()

#  get(), set() 메서드 자동 생성 단축키

  - [Shift] + [Alt] + [S] → [Generate Getters and Setters]

 

 


정보 은닉 (Information hiding)

  - 필요한 만큼 최소한의 정보만 외부에서 접근 가능하도록 오픈하며, 나머지 정보들은 숨김

      → 객체의 오류 방지 & 클라이언트가 더 효율적으로 객체를 활용할 수 있도록 함

 

캡슐화 (Encapsulation)

  - 대부분의 멤버변수와 메서드를 감추고, 꼭 필요한 정보와 기능만 외부에 오픈하며 통합된 인터페이스를 제공함

 

 


기타 메모

- 코딩 컨벤션 : 언어별로 가지고 있는 클래스명, 변수명 등 작성 스타일에 대한 규칙
- 방어적 코드 : 값이 잘못 입력되었을 때를 대비한 코드
320x100
반응형

댓글