dart构造函数

本文介绍了Dart语言中的构造函数,包括普通构造函数的简写形式以及命名构造函数的使用,特别强调了命名构造函数不被子类继承的特点。

1.普通构造函数:

class Person {
  String name;
  int age;
  Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

简写:

class Person {
  String name;
  int age;
  Person(this.name, this.age);
}

2.命名构造函数

class Person {
  String name;
  int age;
  Person(this.name, this.age);
  Person.sex() {
    print('性别是...');
  }
}

在这里插入图片描述
注:命名构造函数不可继承

### Dart 中命名构造函数的使用 在 Dart 中,除了默认构造函数外,还可以定义多个具有不同名称的构造函数来创建类的对象。这使得代码更加清晰并能处理不同的初始化需求。 #### 定义命名构造函数 通过在类内部声明带有特定名字的方法签名作为构造器实现自定义逻辑[^1]: ```dart class Point { double x, y; // 默认构造函数 Point(this.x, this.y); // 命名构造函数 Point.origin() : x = 0, y = 0; } ``` 上述 `Point` 类不仅拥有接受两个参数的标准构造函数,还提供了一个名为 `.origin()` 的无参构造函数用于实例化位于原点的位置对象[^2]。 #### 初始化列表中的应用 当使用命名构造函数时,在冒号后面可以跟上初始化列表来进行成员变量赋初值操作或者调用其他构造函数[^3]: ```dart class Rectangle { num left, top, width, height; // 主构造函数 Rectangle(this.left, this.top, this.width, this.height); // 命名构造函数,利用初始化列表设置属性 Rectangle.square(num side) : left = 0, top = 0, width = side, height = side; } ``` 此例子展示了如何借助`.square(side)` 来简化正方形矩形对象的构建过程,其中所有坐标均设为零而宽度高度相等[^4]。 #### 调用其它构造函数 有时希望某个特殊情况下重定向到另一个更通用版本,则可以在命名构造函数体内直接调用它[^5]: ```dart class Vehicle { final String make; final int year; // 普通构造函数 Vehicle({required this.make, required this.year}); // 命名构造函数,转发给主构造函数 Vehicle.sedan(String model) : this(make: 'Sedan $model', year: DateTime.now().year); } ``` 这里演示了如果用户想要快速指定轿车类型而不必每次都输入制造年份的情况下的简便方式[^6]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值