Spacecraft.dart 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. class Spacecraft {
  2. String name;
  3. DateTime launchDate;
  4. // 构造函数,带有可以直接为成员变量赋值的语法糖。
  5. Spacecraft(this.name, this.launchDate) {
  6. // 这里可以实现初始化代码。
  7. }
  8. // 命名构造函数,转发到默认构造函数。
  9. Spacecraft.unlaunched(String name) : this(name, null);
  10. // 只读的非 final 的属性
  11. // ? ; isnull
  12. int get launchYear => launchDate?.year;
  13. // 方法。
  14. void describe() {
  15. print('宇宙飞船:$name');
  16. if (launchDate != null) {
  17. // ignore: omit_local_variable_types
  18. int years = DateTime.now().difference(launchDate).inDays ~/ 365;
  19. print('发射时间:$launchYear ($years years ago)');
  20. } else {
  21. print('尚未发射');
  22. }
  23. }
  24. }
  25. class Orbiter extends Spacecraft {
  26. //属性
  27. num altitude;
  28. Orbiter.Check(this.altitude) : super(null, null);
  29. Orbiter(String name, DateTime launchDate, this.altitude)
  30. : super(name, launchDate);
  31. //
  32. @override
  33. String toString() {
  34. return 'Orbiter{altitude: $altitude}';
  35. }
  36. }