類 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() {}