//dart建議寫法
class Point {
num x;
num y;
Point(this.x, this.y);
}
2. 命名構(gòu)造函數(shù):
class Point {
num x;
num y;
Point(this.x, this.y);
//命名構(gòu)造函數(shù)
Point.fromJson(Map json) {
x = json['x'];
y = json['y'];
}
}
3. 重定向構(gòu)造函數(shù)
class Point {
num x;
num y;
Point(this.x, this.y);
//重定向構(gòu)造函數(shù)庵寞,使用冒號調(diào)用其他構(gòu)造函數(shù)
Point.alongXAxis(num x) : this(x, 0);
}
4. 初始化列表
class Point {
//final變量不能被修改性昭,必須被構(gòu)造函數(shù)初始化
final num x;
final num y;
final num distanceFromOrigin;
//初始化列表
Point(x, y)
: x = x,
y = y,
distanceFromOrigin = sqrt(x * x + y * y);
}
5. 常量構(gòu)造函數(shù)
class Point {
//定義const構(gòu)造函數(shù)要確保所有實例變量都是final
final num x;
final num y;
static final Point2 origin = const Point2(0, 0);
//const關(guān)鍵字放在構(gòu)造函數(shù)名稱之前,且不能有函數(shù)體
const Point(this.x, this.y);
}
class Rectangle {
num left;
num top;
num width;
num height;
Rectangle(this.left, this.top, this.width, this.height);
num get right => left + width;
set right(num value) => left = value - width;
num get bottom => top + height;
set bottom(num value) => top = value - height;
}
8. 抽象類和可調(diào)用類
class ClassFunction {
call(String a, String b, String c) => '$a $b $c!';
}
main() {
var cf = new ClassFunction();
var out = cf("dongnao","flutter","damon");
print('$out');
print(cf.runtimeType);
print(out.runtimeType);
print(cf is Function);
}