* 클래스
?, !, ?.등 각각이 의미하는 바를 파악하지 못해서 너무 헤맸지만 의미를 알고나니 코드가 이해가 갔다...
class Spacecraft {
// ? : 개체가 null일 수 있음
String? name;
DateTime? launchDate;
//Constructor, with syntactic sugar for assignment to members.
Spacecraft(this.name, this.launchDate) {
//Initialization code goes here.
}
Spacecraft.origin() {
name = "무탈리스크";
launchDate = DateTime.now();
}
//Named contructor that forwards to the default one.
Spacecraft.unlaunched(String name) : this(name, null);
// ?. : 개체가 null인지 확실하지 않은 경우 사용. null이면 null, 그렇지 않으면 year
// Getter, Setter : get, set 키워드로 사용
int? get launchYear => launchDate?.year; //read-only non-final property
//Method
void describe() {
print('Spacecraft: $name');
if (launchDate != null) {
// ! : null 허용 여부 제거
int years = DateTime.now().difference(launchDate!).inDays ~/ 365;
print('Launched: $launchYear ($years years ago)');
} else {
print('Unlaunched');
}
}
}
void main() {
Spacecraft sc = Spacecraft("스카우트", DateTime.now());
print(sc.name);
print(sc.launchDate);
print("\n");
Spacecraft sc2 = Spacecraft.origin();
print(sc2.name);
print(sc2.launchDate);
print("\n");
Spacecraft sc3 = Spacecraft.unlaunched("캐리어");
print(sc3.name);
print(sc3.launchDate);
print("\n");
Spacecraft sc4 = Spacecraft("배틀크루저", DateTime.now());
sc4.describe(); // ~/ : 실수가 나올 때 정수 리턴
}
//결과
스카우트
2021-03-15 15:14:37.202094
무탈리스크
2021-03-15 15:14:37.205085
캐리어
null
Spacecraft: 배틀크루저
Launched: 2021 (0 years ago)
320x100
'프로그래밍 > Flutter-Dart' 카테고리의 다른 글
[Flutter] Dart 문법 (async, Future, await, then) (0) | 2021.03.15 |
---|---|
[Flutter] Dart 문법 (abstract, implement) (0) | 2021.03.15 |
[Flutter] Dart 문법 (상속) (0) | 2021.03.15 |
[Flutter] Dart 문법 (변수, 함수, 화살표 함수, 조건문, 반복문) (0) | 2021.03.15 |
[Flutter] flutter 윈도우 설치 (0) | 2021.03.15 |
댓글