类 class
在Dart中我们可以使用如下方法去定义一个类
class className {
/// 定义单个类型
Type typeName;
/// 包私有属性
Type _privateTypeName;
// 定义多个类型
Type typeName1,typeName2,typeName3;
/// 实例方法
ReturnType functionName(Type typeName) {};
/// 类方法
static ReturnType functionName2(Type typeName) {};
}
实例化
/// 假如有一个Person类
var person = new Person();
// new可以省略
var person = Person();
Dart中没有public.private这种修饰符,只有在变量/方法名前面添加
_
来表示这个变量/方法是包私有的.
继承 extends
/// 类似Java,使用`extends`关键字来去继承一个类
class sonClassName extends className {
...
}
提一嘴,Dart语言中的所有类都有一个共同的父类Object(万物皆对象).
方法 Function
在Dart中,方法也是一种类型,名为Function的类型,
{}
包上可选参数.[]
包上可忽略参数.
普通方法
void printInfo0(num num1 ,num2) {
// Function
}
///调用方式
xxx.printInfo0(10 ,20);
如果是类似这种方法,num1与num2无法设置默认值.并且调用时,两个参数必传.因为是必传,所以参数是按顺序放入printInfo0方法内的
可选参数
void printInfo1({num num1 ,num num2 = 2}) {
/// Function
}
/// 调用方式
/// num1 = null ,num2 = 2
xxx.printInfo1();
/// num1 = 1 ,num2 = 3
xxx.printInfo1(num1 :1 ,num2 = 3);
/// num1 = 1 ,num2 = 2(默认值)
xxx.printInfo1(num1 :1);
/// num1 = null ,num2 = 3
xxx.printInfo1(num2 = 3);
如果是可选方法,我们就可以设置默认值,并且调用时可以省略掉num2,当然num1也可以省略.省略后的值为null(因为num1没有默认值).
可忽略参数
void printInfo2([num num1 ,num num2 = 2]) {
/// Function
}
/// 调用方式
/// num1 = null ,num2 = 2
xxx.printInfo2();
/// num1 = 2 ,num2 = 2
xxx.printInfo2(2);
/// num1 = 2 ,num2 = 10
xxx.printInfo2(2 ,10);
/// 或者可以这样定义.表示仅仅num2是可忽略参数
void printInfo2(num num1 ,[num num2 = 2]) {
/// Function
}
按照类型划分的方法
/// 实例方法
void xxx() {}
/// 包私有实例方法
void _xxx() {}
/// 类方法
static void xxx() {}
/// 包私有类方法
static void _xxx() {}