千家信息网

Android开发Dart Constructors构造函数怎么使用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"Android开发Dart Constructors构造函数怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android开
千家信息网最后更新 2026年10月31日Android开发Dart Constructors构造函数怎么使用

这篇文章主要讲解了"Android开发Dart Constructors构造函数怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Android开发Dart Constructors构造函数怎么使用"吧!

什么是构造函数?

构造函数是用于初始化对象的特殊方法。在创建类的对象时调用构造函数。

默认情况

final ehe = MyClass(); // Creates an instanceclass MyClass {  MyClass(); // Fires immediately when created (this guy is cons.)}

在构造函数中只有一个规则

也就是说;

与它的类名一样命名它! !

好的,我们知道了! 但是…

我们具体有哪些类型的构造函数类型?

缺省构造函数 ー Class()

// Default Constructor// 默认什么都不做class User {  String name = 'ehe';  User();}///// Constructor with parameters// 构造时初始变量class User {  String name;  User(this.name);}///// Constructor with the initial method// 构造函数内写入你的逻辑class User {  String name;  User(this.name) {    // do some magic  }}/// Constructor with assertion// 使用 Asserts 去检查你的规则class User {  String name;  User(this.name) : assert(name.length > 3);}// Constructor with initializer// 初始化你的变量class User {  static String uppercase(String e) => e.toUpperCase();  String name;  User(name) : name = yell(name);  static String yell(String e) => e.toUpperCase();}/// Constructor with super()// override 变量class Person {  String id;  Person(this.id);}class User extends Person {  String name;  User(this.name, String id) : super(id);}/// Constructor with this()// 命名构造函数class User {  String name;  int salary;  User(this.name, this.salary);  User.worker(String name) : this(name, 10);  User.boss(String name) : this(name, 9999999);}

私有构造函数ー Class._()

您可以使用 _ 创建私有构造函数,但是它的好处是什么呢?

让我们来看一个例子!

class Print {  static void log(String message) => print(message);}Print.log('ehe');// 你想写一个像这样的util,但有一个问题,因为你也可以创建一个我们不想要的实例。Print(); // 在这种情况下,这是绝对不必要的// 如何防止这种情况?答案是私有构造函数!class Print {  Print._(); // 这将阻止创建实例  static void log(String message) => print(message);}Print(); // 这将给出现在的编译时错误Your instance is safe now!

所以基本上你可以阻止创建一个实例!

命名构造函数ー class.Named()

您可以在一个 class 中创建不同类型的实例

For example;

例如:

class User {  String name;  int salary;  User.worker(this.name) : salary = 10;  User.boss(this.name) : salary = 99999999;}

私有命名构造函数ー class._Named ()

您可以很容易地清洗您的实例!

class User {  String name;  int salary;  User.worker(this.name) : salary = 10;  User.boss(this.name) : salary = 99999999;  User._mafia(this.name) : salary = 9999999999999;}

除了玩笑之外,这是非常有帮助的!

例如,您可以使用私有构造函数创建单例对象!

class User {  User._privateConstructor();  static final User instance = User._privateConstructor();}

注意

你可以在一些项目中看到 _internal 内部关键字。没什么特别的。_internal construction 只是一个 ._internal 通常给类私有的构造函数的名称(不需要这个名称)。可以使用任何 Class._someName 结构创建一个私有构造函数)。

Const Constructor ー const Class()

您可以使用 const constructor! 构造函数使类变为不可变的!

常量构造函数是一种优化!编译器使对象成为不可变的,为所有 Text('Hi!') 对象。ー Frank Treacy

const user = User('ehe');class User {  final String name;  const User(this.name);}

工厂构造函数ー factory class Class()

我们说过施工人员不允许回来,你猜怎么着?

工厂建造者可以!

工厂建造者还能做什么?

您根本不需要创建一个新实例!您可以调用另一个构造函数或子类,甚至可以从缓存返回一个实例!

最后,对工厂的小小警告!

无法调用超类构造函数 (super())

简单的例子

class User {  final String name;  User(this.name);  factory User.fromJson(Map json) {    return User(json["name"]);  }}// Singleton Exampleclass User {  User._internal();  static final User _singleton = Singleton._internal();  factory User() => _singleton;}

感谢各位的阅读,以上就是"Android开发Dart Constructors构造函数怎么使用"的内容了,经过本文的学习后,相信大家对Android开发Dart Constructors构造函数怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

函数 实例 私有 对象 开发 工厂 情况 变量 类型 学习 例子 内容 名称 规则 这是 问题 可变 编译 不同 特殊 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 保险科技 互联网保险 科技制造互联网公司 狮子座互联网科技有限公司 深圳艾佳互联网科技 互联网科技公司介绍 蓝色互联网科技 玖二柒互联网科技公司待遇 互联网校园科技培训 语蝶互联网科技有限公司 中国航天科技大学国际工业互联网 互联网金融科技展 美国互联网科技实力 广东鹅鹅鹅互联网科技有限公司 上海同邻互联网科技有限公司规模 互联网科技接地气 众联互联网络科技 平安好医生打造互联网科技医疗 科技互联网专业务虚会材料 广州全民伙伴互联网科技有限公司 华中科技大学互联网 时间互联网络科技 深圳天众互联网科技公司 哈尔滨新华互联网科技学院 智腾互联网科技有限公司 青岛科技大学互联网大赛研究生 健康食品互联网创新科技园项目 西安小鹰速贷互联网科技有限公司 卓翼科技产业互联网合作 富国互联网科技002692
0