2021-12-15 Dart语言知识点

1、静态变量(类变量和全局变量)是延迟初始化的。

class Cat {}

class DeadCat extends Cat {
  DeadCat() {
    print("Now I am dead.");
  }
}

class LiveCat extends Cat {
  // 类变量
  static DeadCat? afterDie = DeadCat();

  LiveCat() {
    print("I am alive!");
  }
}

// 全局变量
Cat cat = LiveCat();

main() {
  LiveCat.afterDie = null;
  cat = Cat();
  print("Hello world!");
}

日志输出:

flutter: Hello world!

上述 DeadCat 和 LiveCat 的构造方法都没有执行,只有真正访问静态变量时,才会执行对应代码。

main() {
  LiveCat.afterDie;
  cat;
  print("Hello world!");
}

日志输出:

flutter: Now i am dead.
flutter: I am alive!
flutter: Hello world!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 6,454评论 0 9
  • 1.OC的类可以多重继承吗?可以实现多个接口吗?要想实现类似多重继承如何实现?答:OC不可以实现多重继承。可以实现...
    欧辰_OSR阅读 6,218评论 0 30
  • 操作系统基本概念 操作系统是计算机科学研究基石之一。 功能 管理硬件(如设备驱动:实现用户提出的I/O操作请求,完...
    Hengtao24阅读 9,975评论 2 14
  • 重点掌握 3 类对象和方法 对象就是一个物体 类的独特存在就是一个实例,对实例进行操作叫做方法。方法可以应用于类或...
    Coder大雄阅读 5,007评论 0 2
  • 1、什么是线程? 1)线程是轻量级的进程 2)线程没有独立的地址空间(内存空间) 3)线程由进程创建(寄生在进程)...
    夏与清风阅读 8,350评论 0 1