Dart面向?qū)ο缶幊?一)

類與對(duì)象

  • 使用關(guān)鍵字class聲明一個(gè)類
  • 使用關(guān)鍵字new創(chuàng)建一個(gè)對(duì)象,new可以省略
  • 所有對(duì)象都繼承Object類

屬性與方法

  • 屬性默認(rèn)會(huì)生成setter和getter方法
  • 使用final聲明的屬性蜓耻,只有g(shù)etter方法
  • 屬性和方法通過.來訪問
  • 方法不能被重載 【與java區(qū)別蜜宪,后面會(huì)提到mixins多繼承也與java不同】
  • 使用_修飾的類锭硼,屬性與方法為私有方法预柒,作用域?yàn)楫?dāng)前l(fā)ibrary(庫(kù))
void main() {
  var p = Person();
  p.name = "Tom";
  p.age = 22;
  p.work(); //name is Tom,age is 22,he is worker
}

class Person {
  String name;
  int age;

  //箭頭函數(shù)以及插值表達(dá)式
  work() => print("name is \$name,age is \$age,he is worker");
//報(bào)錯(cuò)不能重載
//  work(String work){
//
//  }
}

計(jì)算屬性

void main() {
  var rect = Rect();
  rect.width = 20;
  rect.height = 10;
  print(rect.area); //200

  rect.area=300;
  print(rect.width);//15
}

class Rect {
  num width, height;

  //計(jì)算屬性
  num get area {
    return width * height;
  }

  set area(value) {
    width = value / 20;
  }

  //面積方法
  getArea() => width * height;
}

構(gòu)造方法

  • 沒有定義構(gòu)造方法,默認(rèn)會(huì)生成一個(gè)
  • 存在自定義構(gòu)造方法喳资,則默認(rèn)構(gòu)造方法無效
  • 構(gòu)造方法不能重載
void main(){
  var p = Person("yxjie", 28, "your heart");

  var p2 =Person.withAddress("你的肺");
}

class Person{;
  String name;

  int age;

  final String address;//只能通過語(yǔ)法糖方式賦值

//  Person(String name,int age){
//    this.name=name;
//    this.age=age;
//  }

  //與上面等價(jià)
  Person(this.name,this.age,this.address);
  //定義多個(gè)構(gòu)造方法
  Person.withAddress(this.address);
}

常量構(gòu)造方法

void main(){
  var p = Person("Jerry", 16);
//  p.name="hhah";//報(bào)錯(cuò)
}
class Person{
  final String name;
  final int age;
  const Person(this.name,this.age);
}

工廠構(gòu)造方法

class AndroidUtil{

  final String name;

  //工廠構(gòu)造方法 特點(diǎn)返回一個(gè)對(duì)象實(shí)列
  factory AndroidUtil(String name){
    return AndroidUtil._innerConstruct(name);
  }

  AndroidUtil._innerConstruct(this.name);

}

初始化列表

  • 初始化列表會(huì)在構(gòu)造方法體執(zhí)行之前執(zhí)行
  • 使用逗號(hào)分隔初始化表達(dá)式
  • 常用語(yǔ)設(shè)置final變量的值
//初始化列表方式賦值
  Person.withMap(map) : address = map["address"] {
    this.name = map['name'];
    this.age = map["age"];
  }

靜態(tài)成員

  • 使用關(guān)鍵字static實(shí)現(xiàn)類級(jí)別的變量和函數(shù)
  • 靜態(tài)成員不可以訪問非靜態(tài)成員觉吭,非靜態(tài)成員可以訪問靜態(tài)成員
  • 類中常量需要使用 static const 修飾(java中用static final修飾)

對(duì)象操作符

  • 條件運(yùn)算符?.(與Kotlin一樣)
  • 類型轉(zhuǎn)換 as (與Kotlin一樣)
  • 是否制定類型:is is!
  • 級(jí)聯(lián)操作..
void main() {
  var person;
  person?.work(); //不會(huì)運(yùn)行
  var p;
  p = "";
  p = Person();
  (p as Person).work();
  
  if(p is Person){
    p.work();
  }
//級(jí)聯(lián)操作
  var p1 = Person();
  p1
    ..name = "jerry"
    ..age = 16;
}
class Person {
  work() => print("work ...");
}

對(duì)象call方法

Dart中對(duì)象call方法類似于java中toString方法骨饿,區(qū)別在于Dart中call方法直接調(diào)用對(duì)象實(shí)列就行亏栈,java需要對(duì)象.toString()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宏赘,隨后出現(xiàn)的幾起案子绒北,更是在濱河造成了極大的恐慌,老刑警劉巖察署,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闷游,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贴汪,警方通過查閱死者的電腦和手機(jī)脐往,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扳埂,“玉大人业簿,你說我怎么就攤上這事⊙舳” “怎么了梅尤?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)岩调。 經(jīng)常有香客問我巷燥,道長(zhǎng),這世上最難降的妖魔是什么号枕? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任缰揪,我火速辦了婚禮,結(jié)果婚禮上葱淳,老公的妹妹穿的比我還像新娘钝腺。我一直安慰自己抛姑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布拍屑。 她就那樣靜靜地躺著途戒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僵驰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天唁毒,我揣著相機(jī)與錄音蒜茴,去河邊找鬼。 笑死浆西,一個(gè)胖子當(dāng)著我的面吹牛粉私,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播近零,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼诺核,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了久信?” 一聲冷哼從身側(cè)響起窖杀,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎裙士,沒想到半個(gè)月后入客,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腿椎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年桌硫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啃炸。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铆隘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出南用,到底是詐尸還是另有隱情膀钠,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布训枢,位于F島的核電站托修,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恒界。R本人自食惡果不足惜睦刃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望十酣。 院中可真熱鬧涩拙,春花似錦际长、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至搓彻,卻和暖如春如绸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旭贬。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工怔接, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人稀轨。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓扼脐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親奋刽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓦侮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容