Getter 및 Setter는 특히 클래스를 만들 때 데이터를 보호하는 데 사용됩니다.
각 인스턴스 변수에 대해 getter 메서드는 값을 반환하고 setter 메서드는 값을 설정하거나 업데이트합니다. 이를 감안할 때 getter 및 setter는 각각 접근 자 및 뮤 테이터 라고도 합니다.
관례 상 getter는 "get"이라는 단어로 시작하고 setter는 "set"이라는 단어로 시작하고 그 뒤에 변수 이름이옵니다. 두 경우 모두 변수 이름의 첫 글자는 대문자로 표시됩니다.
public class Vehicle { private String color; // Getter public String getColor() { return color; } // Setter public void setColor(String c) { this.color = c; } }
getter 메서드는 속성 값을 반환합니다. setter 메서드는 매개 변수를 사용하여 특성에 할당합니다.
getter와 setter가 정의되면 메인에서 사용합니다.
public static void main(String[] args) { Vehicle v1 = new Vehicle(); v1.setColor("Red"); System.out.println(v1.getColor()); } // Outputs "Red"
게터와 세터를 사용하면 값을 제어 할 수 있습니다. 실제로 값을 설정하기 전에 setter에서 주어진 값의 유효성을 검사 할 수 있습니다.
게터와 세터를 사용하는 이유는 무엇입니까?
Getter 및 Setter를 사용하면 코드에서 변수에 액세스하고 업데이트하는 방법을 제어 할 수 있습니다. 예를 들어 다음 setter 메서드를 고려하십시오.
public void setNumber(int number) { if (number 10) { throw new IllegalArgumentException(); } this.number = num; }
이 setNumber
방법 을 사용하면 의 값 number
이 항상 1에서 10 사이 임을 확인할 수 있습니다 . 이것은 number
변수를 직접 업데이트하는 것보다 훨씬 낫습니다 .
obj.number = 13;
number
직접 업데이트 하면 코드의 다른 곳에서 의도하지 않은 부작용이 발생할 수 있습니다. 여기서 number
13으로 설정 하면 설정 하려는 1 ~ 10 제약 조건을 위반합니다.
만들기 number
개인 변수를하고 사용하여 setNumber
이를 방지 할 방법을.
반면에의 값을 읽는 유일한 방법 number
은 getter 메서드를 사용하는 것입니다.
public int getNumber() { return this.number; }