Dart中的类与对象

DartPad:https://dartpad.cn/

创建一个简单的 Dart类

定义类、构造函数及实例化

class Bicycle {
  int cadence;
  int speed;
  int gear;

  Bicycle(this.cadence, this.speed, this.gear);

  @override
  String toString() => 'Bicycle: $speed mph';
}

void main() {
  var bike = new Bicycle(2, 0, 1);
  print(bike);
}

增加一个只读的变量

class Bicycle {
  int cadence;
  int _speed = 0;  //所有名字以下划线开头的变量,Dart 的编译器都会将其强制标记为私有的;未初始化的变量(即使是数字类型的变量)的值都为 null
  int get speed => _speed;
  int gear;

  Bicycle(this.cadence, this.gear);

  void applyBrake(int decrement) {
    _speed -= decrement;
  }

  void speedUp(int increment) {
    _speed += increment;
  }

  @override
  String toString() => 'Bicycle: $_speed mph';
}

void main() {
  var bike = Bicycle(2, 1);
  bike.speedUp(1);
  print(bike);
}

使用可选参数

Dart 并不支持构造函数的重载,可以直接添加一个没有方法体的构造方法来替代 Java 代码中的四个构造方法。

Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0});

注:this.origin, this.width 和 this.height 嵌套在闭合的花括号中 ({}),用来表示是可选的命名参数。

import 'dart:math';

class Rectangle {
  int width;
  int height;
  Point origin;

  Rectangle({this.origin = const Point(0, 0), this.width = 0, this.height = 0});

  @override
  String toString() =>
      'Origin: (${origin.x}, ${origin.y}), width: $width, height: $height';
}

main() {
  print(Rectangle(origin: const Point(10, 20), width: 100, height: 200));
  print(Rectangle(origin: const Point(10, 10)));
  print(Rectangle(width: 200));
  print(Rectangle());
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/16/classes-and-objects-in-dart/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Dart中的类与对象
DartPad:https://dartpad.cn/ 创建一个简单的 Dart类 定义类、构造函数及实例化 class Bicycle { int cadence; int speed; int gear; Bicycle(this……
<<上一篇
下一篇>>
文章目录
关闭
目 录