编程语言
586
使用 static 关键词来实现类级别的变量和方法。
静态变量
静态变量(类变量)对类级别的状态和常数是很有用的。
class Queue { static const initialCapacity = 16; // ··· } void main() { assert(Queue.initialCapacity == 16); }
静态变量直到它们被使用才会初始化。
说明:该页面遵守 代码规范推荐 倾向于使用 ”小驼峰“来作为常量名。
静态方法
静态方法(类方法)不操作实例,因此不能访问 this。比如:
import 'dart:math'; class Point { num x, y; Point(this.x, this.y); static num distanceBetween(Point a, Point b) { var dx = a.x - b.x; var dy = a.y - b.y; return sqrt(dx * dx + dy * dy); } } void main() { var a = Point(2, 2); var b = Point(4, 4); var distance = Point.distanceBetween(a, b); assert(2.8 < distance && distance < 2.9); print(distance); }
说明:对常见或者广泛使用的实用工具和功能,考虑使用顶级函数,而不是静态方法。
你可以使用静态方法作为编译期常量。比如,你可以把静态方法作为一个常量构造函数的参数。