面向对象编程(OOP)三个基本特征: 封装,继承,多态
Dart 所有的东西都是对象,所有的对象都继承自object类。
Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是object的子类。
一个类通常由属性和方法组成。
1, 构造函数,
//Person类
class Person{
String name=”张三”;
int age = 20;
//默认构造函数只能有一个
// Person(){
// }
// Person(String name, int age){
// this.name = name;
// this.age = age;
// }
//构造函数也可以写成这样,自动会将数据赋值给对象的属性
Person(this.name, this.age);
void getInfo(){
print(“${this.name} — ${this.age}”);
}
}
2,命名构造函数
//命名构造函数, 可以有多个
Person.now(){
print(“这是命名构造函数”);
}
Person.printInfo(){
print(“这是第二个命名构造函数”);
}
//带参数的命名构造函数
Person.printInfo1(String name, int age){
this.name = name;
this.age = age;
}
Person.printInfo2(name, age, num height){
this.name = name;
this.age = age;
this._height = height;
}
Person.printInfo3(name, age, num height, num width){
this.name = name;
this.age = age;
this._height = height;
this._width = width;
}
3, 私有属性和方法
在变量的前边,加上下划线 —
num _height;
num _width;
这个 _height 和 _witdth就是私有属性,外部不可以直接访问。
4, get和set属性
//get属性
get area{
return this._height * this._width;
}
//set属性
set personWidth(num height){
this._height = height;
}
外部调用:
Person p3 = Person.printInfo3(“小李”, 25, 170, 70);
print(“${p3.area}”);
p3.personWidth = 10;
print(“${p3.area}”);
5,可以在构造函数运行之前初始化实例变量。
class Rect{
int height;
int width;
Rect():height = 20, width = 10{
print(“${this.height} – ${this.width}”);
}
}