04. 类的使用

声明类 ( 同 JS )

class Person{
   String name = "zhangsan",
   void getInfo(){}
}
var person = new Person()

默认构造函数

形式同 JS 的 Contructor

class Person{
   Person(){
       // new Person 的时候会立即调用该方法
  }
}

命名构造函数

如果在实例化主动调用了命名构造函数,将不会触发默认的构造函数

class Person{
Person.now()
}
var xxx = new Person.now();

单独抽离 class

import "lib/xxx.dart"

私有方法和私有属性

  • Dart 中变量前面 “_” 表示私有
  • 单独把该类抽离为一个单独文件,私有属性才能生效

getter 和 setter 的用法

当属性和方法带有 get 和 set 属性是 可以直接通过 “.” 操作符访问,无需加入 “()”

class Person{
   String name = "";
   Person(this.name);
   get getName{return this.name};
   set setName(val){}this.name = val}
}
main(){
   var test = new Person("xxx")
   text.getName // 张三
   text.setName = "aaa"
}

类的初始化列表

class Person{
   String name;
   int age;
   Person():name="zhangsan",age=18{} // 实例化之前复制
}

类的静态成员

  • 使用 static 关键字来实现变量和函数
  • 静态方法不能访问非静态,费静态可以访问静态

类中的修饰符

as 强制转换

var P1 = "";
P1 = new Person();
(P1 as Person).xxx(); // 强制将 p1 转为 Person 调用其类中的方法

.. 联机操作符

“.”修饰符的语法糖

var dome = new Dome();
dome..name = "xxx";
..age = 18;

类的继承

  • 子类使用 extends 继承父类
  • 子类继承父类课件的属性和方法,构造函数除外
  • 子类可复用父类的 get 和 set
  • super 关键字,用于子类给父类的构造函数传参
child():super(xxx,xxx){}
child:super.xxx(xx,xx){}
  • 在复写父类方法时加上 @override方法

抽象类

用于定义标准,子类可以继承抽象类也可以实现

  • 通过 abstract 关键字定义抽象类
  • 不能被实例化,只有继承他的子类可以
  • 如果抽象类有抽象方法,必须在子类中实现

接口

  • 使用 implements 关键字进行定义
abstract Dome Interfact{
add()
}
class Xxx implements Interfact,xxx{ // 用逗号间隔可以定义多个接口类型

}

混入 Mixins

Dart中不允许多个继承, Mixins 实现类似的多继承

  • mixins 的类型不能有构造函数
  • 一个类可以多个 mixins 类
  • mixins 不是继承,也不是接口
  • 多个 mixins 中使用时 后者会替换前者的同名方法
class A{}
class B{}
class C with A,B{} // 此时的 C 已经有了 A 和 B 的方法和属性
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇