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
0
二维码
打赏
海报
Dart中的类与对象
DartPad:https://dartpad.cn/
创建一个简单的 Dart类
定义类、构造函数及实例化
class Bicycle {
int cadence;
int speed;
int gear;
Bicycle(this……
文章目录
关闭
共有 0 条评论