Dart语言零基础学习笔记(十)
面向对象的三个基本特征
三大基本特征:封装、继承、多态
1、封装:封装时对象和类 的主要特征,就是将对象的属性和实现细节封装成抽象的类,仅对外公开自己的部分属性和方法,给其他的对象;控制在程序中属性的读和修改的访问级别,将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
2、继承:继承是面向对象的基本特征之一,继承机制允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
继承有两种,一种是实现继承,另一种是接口继承。
实现继承:可以直接使用基类的属性和方法,无需额外编码。
接口继承:是指使用属性和方法的名称,但是子类必须提供实现的能力。
3、多态:多态同一个行为具有多个不同表现形式或形态的能力。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用结构的对象可以共享相同的外部接口。
Dart是一门实用类和单继承的面向对象语言,所有东西都是对象,所有的对象都是类的实例,并且所有的类都是Object的子类(继承自Object类)
类是由属性和方法组成;相比较方法,有更好的封装性、扩展性、维护性
Dart系统内置的类
void main(List<String> args) {
List list =
[]; //List就是系统内置的一个类,abstract class List<E> implements EfficientLengthIterable<E> {}
list.isEmpty;
list.add('aaaa');
list.add("bbbb");
print(list);//[aaaa, bbbb]
Map m = {}; //Map也是一个类
m.isEmpty;
m['age'] = '18';
m.addAll({'name': 'adadou'});
print(m);//{age: 18, name: adadou}
}
Dart自定义类
自定义的类 放在main函数的外面
class Cat {
//类的名称首字母大写
/*类的属性*/
var name = "花花";
var color = "blak";
var age = 3;
/*类的方法*/
getInfo() {
print("$name is $color");
print('${this.name}---is----${this.age}');
}
}
void main(List<String> args) {
//在main方法里面使用类之前 需要实例化类
var cat = new Cat(); //也可以表示为 Cat cat=new Cat();
// Cat cat=new Cat();
//通过 对象cat 来访问类的属性和方法
print(cat.name); //花花
cat.getInfo();
//花花 is blak
//花花---is----3
}
通过类的方法来操作属性 修改猫猫的age
class Cat {
//类的名称首字母大写
/*类的属性*/
var name = "花花";
var color = "blak";
var age = 3;
/*类的方法*/
getInfo() {
print("$name is $color");
print('${this.name}---is----${this.age}');
}
//定义一个无返回值的方法
void setInfo(age) {
this.age = age; //age的属性等于 方法 setInfo传入的age属性
}
}
void main(List<String> args) {
//实例化
Cat cat = new Cat();
cat.setInfo(120);
print('${cat.name} age is ${cat.age}');//花花 age is 120
}