Named Constructor
Dart 에서 한 class 는 여러 constructor 를 가질 수 있는데, 특이한 점은 각 constructor 에 이름을 붙인다는 것이다.
명명된 생성자를 사용하여 클래스에 대해 여러 생성자를 구현하거나 추가 명확성을 제공한다.
class MyPoints {
final int accumulatedPoint;
final int usedPoint;
final int expirePoint;
MyPoints({
required this.accumulatedPoint,
required this.usedPoint,
required this.expirePoint,
});
MyPoints.initial({
this.accumulatedPoint = 0,
this.usedPoint = 0,
this.expirePoint = 0,
});
factory MyPoints.fromJson(Map<String, dynamic> json) {
return MyPoints(
accumulatedPoint: json['accumulatedPoint'],
usedPoint: json['usedPoint'],
expirePoint: json['expirePoint'],
);
}
int get total => accumulatedPoint - usedPoint - expirePoint;
MyPoints copyWith({
int? accumulatedPoint,
int? usedPoint,
int? expirePoint,
}) {
return MyPoints(
accumulatedPoint: accumulatedPoint ?? this.accumulatedPoint,
usedPoint: usedPoint ?? this.usedPoint,
expirePoint: expirePoint ?? this.expirePoint,
);
}
}
아래는 내가 간단히 테스트해본 예시이다.
void main() {
var person = Person.ko();
print(person.name);
print(person.age);
}
class Person {
String name;
int? age;
Person(this.name, this.age);
Person.old(this.name) {
this.age = 100;
}
Person.ko({this.name = 'dj', this.age = 10});
}
'🐦 Flutter' 카테고리의 다른 글
[Flutter] part 와 import 차이를 알아보자 (0) | 2022.08.20 |
---|---|
[Flutter] 자동 생성 JSON 직렬화 코드와 비교 (0) | 2022.08.20 |
Flutter 생명주기 (0) | 2022.07.05 |
[Flutter] json 파싱 정보글 모음 (0) | 2022.06.24 |
dart 비동기 프로그래밍 (0) | 2022.06.02 |