1 new的使用 【flutter学习|flutter+Dart类的创建(六)】Dart像C++和JAVA一样,支持new关键字的使用,但当前已经可以不使用该关键字来创建新的对象。
final box = new SizedBox(width: 5);
当前dart支持去掉new关键字来创建对象,这样代码读起来更整洁。
final box = SizedBox(width: 5);
2 成员变量赋值 传统的赋值方式,在构造函数中定义变量,并在构造中依次给成员变量赋值:
class Point {
int x;
int y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
}
dart支持如下的构造方式:
class Point {
int x;
int y;
Point(this.x, this.y);
}
3 带参数类的构造 传统的方式:
final pt = Point(10,20);
传统的方式虽然看起来代码量更少,但匹配的参数项容易出错。
dart支持的方式,参数的对应看起来更加直观。
最大的优点:不用像C++一样,定义参数的时候,可以缺省的参数一定要放在必须的参数项之后。
参考如下的构造函数(参数key为选填):
const TitleWidget({
Key? key,
@required this.title,
@required this.desc,
}) : super(key: key);
final pt = Point(x:10,y:20);
4 可选和必须参数项 默认情况下Point(this.x, this.y) 类型的构造函数(参数中指定参数名称),参数是非必须的。所以可以使用如下的方式来构造:
final pt = Point();
如要强制输入参数,则需要加上 @required关键字。
Point(@required this.x, @required this.y)
注意: 在使用强制要求输入参数后,仍然可以赋值为null,所以如果需要的话,最好在构造中增加null判断。
final pt = Point(x:null,y:null);
带默认值的构造函数示例:
class Point {
int x;
int y;
Point( @required this.x, this.y=0);
}
有默认值情形下的调用示例:
final pt = Point(x:10);
推荐阅读
- 安卓-性能优化|安卓如何做界面性能优化
- iOS移动开发|苹果春季发布会看点汇总
- iOS移动开发|苹果发布会汇总(最便宜 5G iPhone 不是主角,M1 Ultra 傲视一切)
- 工具|要一统江湖(Google发布Flutter2)
- 远程控制|ToDesk(一款大小仅为5M的免费远程控制软件,为什么备受好评())
- 远程控制|最求卓越的远程控制软件--ToDesk
- 通过基准配置文件改善应用性能
- android高级|android集成MQTT(最新)
- 程序员|2021年Android开发者跳槽指南,最全的BAT大厂面试题整理