getter는 클래스 내부의 멤버 변수 값을 반환하거나 계산된 값을 제공하기 위해 사용되는 메서드입니다. 클래스의 내부 변수에 접근하고 그 값을 반환하는데 사용됩니다. Dart에서는 getter를 정의하는 방법이 간단합니다.
dartCopy code
class MyClass {
int _value = 10; // 언더스코어(_)는 일반적으로 private 변수를 나타내는 컨벤션입니다.
// Getter 메서드 정의
int get getValue => _value
}
void main() {
var obj = MyClass();
print(obj.getValue); // 출력: 10
}
위의 예시에서 getValue
는 _value
라는 private 변수의 값을 반환하는 getter 메서드입니다. getter 메서드는 특별한 키워드인 get
을 사용하여 정의되며, 이름 뒤에는 일반 메서드와 같이 괄호를 사용하지 않고 변수명만 적어줍니다. 그러면 해당 변수의 값을 반환하게 됩니다.
getter를 사용하면 클래스 외부에서 클래스의 내부 변수를 직접적으로 접근하지 않고, getter 메서드를 통해 값을 얻을 수 있으므로 정보 은닉과 캡슐화에 도움이 됩니다. 이를 통해 클래스의 내부 구현을 숨기고 외부에 제공할 값을 제어할 수 있습니다.
setter는 클래스 내부의 멤버 변수에 값을 설정하는 메서드입니다. 클래스의 private 변수에 값을 할당하기 위해 사용됩니다. setter는 단순히 값을 할당하는 것 이상으로 유효성 검사 등의 추가적인 로직을 수행할 수 있습니다.
Dart에서 setter를 정의하는 방법은 다음과 같습니다.
dartCopy code
class MyClass {
int _value = 0; // 언더스코어(_)는 일반적으로 private 변수를 나타내는 컨벤션입니다.
// Setter 메서드 정의
set setValue(int v) {
//set은 내가 데이터를 새로 넣을 때, 좀 . 더신중하게 검수해야할 경우사용한다.
if(v.length < 3){
return;
}
_value = v;
}
}
void main() {
var obj = MyClass();
obj.setValue = 42; // setter 호출을 통해 값 설정
}
위의 예시에서 setValue
는 _value
라는 private 변수에 값을 설정하는 setter 메서드입니다. 이 메서드는 set
키워드를 사용하여 선언되며, 이름 뒤에는 괄호 대신 변수명을 사용합니다. 그리고 이 setter를 호출하여 private 변수에 값을 할당할 수 있습니다.
setter를 사용하면 클래스 외부에서 private 변수에 값을 할당할 때 setter 메서드 내에 추가적인 로직을 수행할 수 있으므로, 객체의 데이터 무결성을 유지하고 데이터에 대한 제어를 할 수 있습니다.