文章目录
一、 Dart 面向对象
二、 类定义
三、 类的继承
四、 私有变量
五、 可选参数与默认参数
六、 初始化列表
七、 完整代码示例
八、 相关资源
一、 Dart 面向对象
OOP 基本特点 :
封装 : 将现实中存在的事务封装成类 ;
继承 : 使用现有类的功能 , 无需重写现有类的变量及方法 , 只实现扩展内容 ;
多态 : 子类对象可以赋值给父类类型变量 ;
类中定义的内容 :
变量 : 静态变量 , 实例变量 ;
函数 : 构造函数 , 实例函数 , 静态函数 ;
构造函数 :
标准构造函数
初始化列表函数
工厂构造方法
抽象
抽象类
抽象方法
二、 类定义
使用 class 关键字 , 定义 Dart 类 , 所有的 Dart 类默认继承 Object 类 , 其中定义两个变量 , 定义一个标准的构造方法 , 构造方法中使用 this.name 表示自有参数 ;
// 标准构造方法, 下面的方法是常用的构造方法写法 Person(this.name, this.age);
重写 Object 父类方法 :
// 重写父类的方法 @override String toString() { return "$name : $age"; }
代码示例 :
// 定义 Dart 类 // 与 Java 语言类似, 所有的类默认继承 Object 类 class Person{ // 定义变量 String name; int age; // 标准构造方法, 下面的方法是常用的构造方法写法 Person(this.name, this.age); // 重写父类的方法 @override String toString() { return "$name : $age"; } }
三、 类的继承
使用 extends 关键字定义子类 , 注意如果父类有非空参数的构造函数, 子类必须实现相同参数的构造函数 ;
// 继承 class Student extends Person{ Student(String name, int age): super(name, age); }
四、 私有变量
以下划线开始的变量是私有变量 ;
// 私有变量, 以下划线开始的变量是私有变量 int _grade;
五、 可选参数与默认参数
可选参数 : 可选参数必须在构造函数参数列表中最后一个 , {this.school} 是可选参数 ;
默认参数 : 可选参数中如果用户不初始化该可选参数 , 那么为其指定一个默认值 , {this.city = “北京”} 指定了如果用户不初始化 city 变量, 那么为其初始化 “北京” 字符串值 ;
// 继承 class Student extends Person{ // 私有变量, 以下划线开始的变量是私有变量 int _grade; String school; String city; String address; // 如果父类有非空参数的构造函数, 子类必须实现相同参数的构造函数 // 如果该类有父类 , 那么先调用父类的构造方法 , 完成父类的初始化 // 然后才能完成自己的初始化 // this.school 指定自有参数 // {this.school} 是可选参数, 可选参数必须在构造函数参数列表中最后一个 // 默认参数 : 可选参数中如果用户不初始化该可选参数 , 那么为其指定一个默认值 // {this.city = "北京"} 指定了如果用户不初始化 city 变量, 那么为其初始化 "北京" 字符串值 Student(this._grade, String name, int age, {this.school, this.city = "北京"}) : super(name, age); }