flutter+Dart类的创建(六)

1 new的使用

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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值