1. Class person{
  2. String name ="张三";
  3. int age=23;
  4. void getInfo(){
  5. print("$name---$age");
  6. print("${this.name}";
  7. }
  8. }
  1. Person(){
  2. print('')
  3. } //默认构造函数
  4. Person.now(){
  5. print('我是命名构造函数');
  6. }
  7. //Dart 里面构造函数可以写多个

必须要把类单独抽成一个文件 使用_ 才能使变量私有化

类中的getter 和setter 修饰符

Getter 和 Setter 是用来设置和 访问对象属性的的特殊函数,每个实例变量都隐含一个getter ,如果变量不是final 的则还有一个setter。 你可以通过实行getter 和setter 来创建新的属性,使用get 和set关键字定义getter 和setter

  1. class Rectangle {
  2. num left;
  3. num top;
  4. num width;
  5. num height;
  6. Rectangle(this.left, this.top, this.width, this.height);
  7. // Define two calculated properties: right and bottom.
  8. num get right => left + width;
  9. set right(num value) => left = value - width;
  10. num get bottom => top + height;
  11. set bottom(num value) => top = value - height;
  12. }
  13. main() {
  14. var rect = new Rectangle(3, 4, 20, 15);
  15. assert(rect.left == 3);
  16. rect.right = 12;
  17. assert(rect.left == -8);
  18. }

静态成员

image.pngimage.png
静态方法不能访问非静态的属性

Dart 中的对象操作符:
?
as
is
``
image.png

image.png

is 判断类型
image.png
image.png
image.png

继承

image.png

子类里面覆写父类

  1. class web extends Person{
  2. Web(String name, num age) super (name,age);
  3. }

抽象类

image.png

  1. abstract class Animal{
  2. eat();//抽象方法
  3. }
  4. class Dog extends Animal{
  5. @override
  6. eat(){
  7. print('xx')
  8. }
  9. }
  10. main(){
  11. Dog d = new Dog();
  12. d.eat();
  13. }

接口

image.png

  1. abstract class Db{
  2. String uri;
  3. add();
  4. save();
  5. delete();
  6. }
  7. class Mysql implements Db{
  8. add(){
  9. }
  10. }

image.png

mixins

image.png

泛型

image.png
image.png

image.png

导入部份

image.png
image.png