IT/언어

[Java] setter, getter

개발자 두더지 2023. 2. 11. 10:15
728x90

일본의 블로그 글을 번역한 포스트입니다. 오역 및 의역, 직역이 있을 수 있으며 틀린 내용은 지적해주시면 감사하겠습니다.

 

 

setter, getter이란?


 setter, getter이란 java 개발자들 사이에 널리퍼진 암묵적 코드 규약으로, 클래스 안에 변수를 세팅, 획득하기 위한 전문 메소드를 의미한다.

 즉, 변수를 세팅하기 위한 메소드가 setter 메소드, 변수를 획득하기만 하는 메소드는 getter 메소드이다.

 

 

실제 코드


 작성 방법, 명명 규약에 대해서는 입문 서적에 잘 설명되어 있지만, 다음과 같이 쓰는 것이 setter/getter이다.

public class sample {
  private String name;
  
  // gettter
  public String getName() {
    return name;
  }
  
  // setter
  public void setName(String c) {
    this.name = c;
  }
}

 이 경우는 sample 클래스 내에서 name만을 획득하는 메소드가 getName, sample 클래스 내에서 name만을 세팅하는 메소드가 setName이다.

 

 

setter


setter 작성법

// 필드 변수 정의
private 데이터형 필드명

// getter
public void get필드명() {
    this.필드명 = 필드명;
}

 

setter의 명명규약

setter의 명명규약은 다음과 같다.

  • 필드명의 맨 앞에 "get"을 붙인 카멜케이스로 작성하는 것
  • getter, setter은 외부에서 다뤄야만 하므로 모두 pubilc 으로 기재할 것

 

setter을 데이터 체크용으로 사용하기

 setter 메소드를 사용해 코드를 작성하는 것으로 데이터의 체크를 할 수 있다. 예를 들어 필드에 100이하의 값을 허용하고 싶지 않을 경우, 필드에 직접 값을 대입할 경우는 대입하는 곳에서 체크할 필요가 있다.

 setter 메소드가 있으면 메소드 안에서 체크하도록 하여 대입하는 쪽의 수고를 들이지 않고 안전성이 높은 코드를 작성할 수 있다.

// 필드변수
private int 필드명;

// setter
public void set필드명(int 인수명) {
    if ( 조건식 ){
        this.필드명 = 인수명;
    }
}

 

 

getter


getter의 작성법

//필드 변수를 정의
private 데이터형 필드명

// getter
public 데이터형 get필드명() {
    return this.필드명;
}

 

getter의 명명규약

getter의 명명 규약은 다음과 같다.

  • 필드명의 맨 앞에 "get"을 붙인 카멜케이스로 작성할 것
  • getter, setter은 외부에서 다뤄야만 하므로 모두 pubilc 으로 기재할 것

참고자료

https://qiita.com/takahirocook/items/27828bc8477735612021

https://computer.sarujincanon.com/2022/03/19/javasettergetter/

728x90