09-面向对象

Catalogue
  1. 1. 参考资料

面向对象编程(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}”);
}
}

参考资料