Getter
: class 내부의 값을 가져올 때 사용한다.
Setter
: class 내부의 값을 변경할 때 사용한다.
Q 함수를 사용해도 값을 읽거나 변경할 수 있는데 getter와 setter를 사용하는 이유는 무엇일까?
. 함수를 사용하면 사용시 () barcket이 추가되는 것 외에 getter, setter 사용법의 차이는 없다.
. 다만, 일반적으로 private 변수를 변경할 때는 getter, setter를 사용하기로 약속한 것이다.
void main() {
//Getter and Setter
Idol seulgi = new Idol(name: '슬기', group: '레드벨벳');
seulgi.sayName();
print(seulgi._name); //private variable 읽음
print(seulgi.name); //getter를 통해 private variable을 읽음
seulgi.name = '코드팩토리'; //setter를 통해 값을 변경함
print(seulgi.name); //setter로 변경한 private variable을 getter를 통해 읽음
}
class Idol {
//변수 이름 앞에 _를 붙이면 private variable로 쓸 수 있다.
//보통의 전통적인 class는 private 변수는 같은 class 안에서만 가져올 수 있다.
//dart는 같은 파일일 경우에 private 변수를 가져올 수 있다.
String _name;
String _group;
Idol({name, group}) : this._name = name, this._group = group;
void sayName() {
print('제 이름은 ${this._name}입니다.');
}
//getter
String get name{
return this._name;
}
//setter
//한가지 변수만 받아서 수정할 수 있다.
set name(String name) {
this._name = name;
}
}
출처:YOUTUBE-코드팩토리