반응형
getter는 데이터를 가져올 때
setter는 데이터를 설정할 때 사용
get
getter 선언
class내에서
반환타입 get 이름 {
return 반환인자
}
**() 을 사용하지 않는다. {}만 사용한다.
getter 사용
.을 이용하여 사용가능
ex
void main() {
Hansoom hansoom1 = Hansoom(
'한숨팟',
['차', '밍', '똥', '똥철']
);
Hansoom hansoom2 = Hansoom(
'한숨팟2',
['김', '정', '차', '오']
);
print(hansoom1.firstMemeber); // .을 이용하여 사용
}
class Hansoom {
String name;
List<String> members;
Hansoom(this.name, this.members);
Hansoom.fromList(List values)
: this.members = values[0],
this.name = values[1];
//getter
String get firstMemeber {
return this.members[0];
}
}
setter의 선언
class에 값을 세팅해주는 것이라고 쉽게 생각
class내에서
set 이름() {
class내에서 세팅할
}
**() 을 사용한다.. 파라미터는 오직 1개만 받을 수 있다.
setter의 사용
=을 이용하여 세팅 가능
ex
void main() {
Hansoom hansoom1 = Hansoom(
'한숨팟',
['차', '밍', '똥', '똥철']
);
Hansoom hansoom2 = Hansoom(
'한숨팟2',
['김', '정', '차', '오']
);
//getter
print(hansoom1.firstMember);
//setter
hansoom1.firstMember = '용'; // =으로 새로운 값으로 세팅
print(hansoom1.members);
}
class Hansoom {
String name;
List<String> members;
Hansoom(this.name, this.members);
Hansoom.fromList(List values)
: this.members = values[0],
this.name = values[1];
void sayHello() {
print('안녕하세요 ${this.name}입니다.');
}
void introduce() {
print('저희는 ${this.members} 입니다.');
}
//getter
String get firstMember {
return this.members[0];
}
//setter
set firstMember(String name) {
this.members[0] = name;
}
}
실재로 firstMember의 값이 변경됨
Q1 함수를 사용할 수도 있는데 왜 getter를 사용하나
간단한 데이터의 가공할 때 getter를 사용
복잡한 로직일 때 함수를 사용
Q2 final 키워드를 사용할 때 setter를 사용하지 못하는데 언제 쓰나????
현대 프로그래밍 추세 상 setter는 잘 안쓰는 건 맞다.
반응형
'Flutter > Dart 문법' 카테고리의 다른 글
[Dart] 오버라이딩 (0) | 2023.03.22 |
---|---|
[Dart] 상속 (0) | 2023.03.22 |
[Dart] 생성자(constructor) (0) | 2023.03.22 |
[Dart] 함수의 선언 (parameter에 관하여) (0) | 2023.03.21 |
[Dart] enum의 선언 (0) | 2023.03.21 |