🤼♀️/Dart
[Dart] 다트의 Getter와 Setter
eungding
2020. 10. 3. 13:36
728x90
반응형
[1] 문서보기
문서 를 보면
getter와 setter는 object의 프로퍼티들에게 read, write 접근권한을 제공하는 특별한 메소드라고 합니다.
그리고 get, set 키워드를 통해 getter와 setter를 구현할 수 있다고 합니다.
[2] 예제
Getter
이렇게 생긴 User모델과 UserManager가 있다고 해보겠습니다.
UserManager가 user 프로퍼티를 다른 곳에 read-only로 제공하고 싶다!! 할때 getter를 구현해주면 됩니다.
class User {
String id;
String nickname;
User({
this.id,
this.nickname
});
}
class UserManager {
User _user;
User get user => _user;
}
그럼 사용하는 다른 파일에서는 user프로퍼티를 읽을 권한만 가지게 됩니다.
import 'userManager.dart';
void main() {
var manager = UserManager();
print(manager.user);
// 아래는 모두 컴파일에러난다.
print(manager._user);
manager._user = User(id: "", nickname: "");
manager.user = User(id: "", nickname: "");
}
Setter
user가 set될때마다 다른 작업을 해주고 싶어!! 할때 Setter를 구현해주면 됩니다.
저는 마땅한 예제가 안떠올라서 user가 set될때마다 id를 프린트해주겠어! 로 했습니다.
class UserManager {
User _user;
User get user => _user;
set user(User user) {
_user = user;
print(user.id);
}
}
그럼 사용하는 다른 파일에서는 user를 set해줄 권한도 가지게 되고
import 'userManager.dart';
void main() {
var manager = UserManager();
manager.user = User(id: "1", nickname: "죠르디");
print(manager.user);
// 아래는 모두 컴파일에러 난다.
print(manager._user);
manager._user = User(id: "", nickname: "");
}
user를 set해줄 때마다 id가 출력되게 됩니다. (아까 setter지정해준 코드-!!)
반응형