class Circle {
final double PI = 3.1415;
num r;
Circle(this.r);
// num area() {
// return this.PI * this.r * this.r;
// }
//Getter 使用get聲明的方法犀被,不能有小括號(hào)
num get area {
return this.PI * this.r * this.r;
}
//Setter
set setR(value) {
this.r = value;
}
}
void main() {
var c = new Circle(10);
// print(c.area());
//通過(guò)setter修改屬性
c.setR = 20;
print(c.area);
}
初始化列表
作用:在構(gòu)造函數(shù)中設(shè)置屬性的默認(rèn)值
時(shí)機(jī):在構(gòu)造函數(shù)體執(zhí)行之前執(zhí)行
語(yǔ)法:使用逗號(hào)分隔初始化表達(dá)式
場(chǎng)景:常用語(yǔ)設(shè)置final常量的值
image.png
import 'dart:math';
import 'package:my_flutter_app/07_Default_Constructor.dart';
class Rect {
int height;
int width;
// Rect(this.height,this.width);
// Rect([int height=2,int width=10]){
// this.height=height;
// this.width=width;
// print('${this.height}--${this.width}');
// }
//初始化列表
Rect()
: height = 4,
width = 4 {
print('${this.height}--${this.width}');
}
}
class Point {
double x, y, z;
Point(this.x, this.y, this.z);
//初始化列表的特殊用法(重定向構(gòu)造函數(shù))
Point.twoD(double x, double y) : this(x, y, 0);
}
void main() {
var r = new Rect();
var p = new Point(1, 2, 3);
print(p.z);
var p2 = new Point.twoD(4, 5);
print(p2.z);
}