Dart学习记录(一)——对象

1. 静态成员、方法

  1.1 static 声明

  1.2 静态、非静态方法可访问静态成员、调用方法;静态方法不可访问静态成员、调用方法;

  1.3 静态成员、方法,属于类的 ,不用实例化对象就可使用,不可使用super、this

class Person {
  static String name = '张三';
  int age = 20;
  static void show() {
    print(name);
  }

  void printInfo() {
    /*非静态方法可以访问静态成员以及非静态成员*/
    print(name);  //访问静态属性
    print(this.age);  //访问非静态属性
    show(); //调用静态方法
  }

  static void printUserInfo() {
    //静态方法
    print(name); //静态属性
    show(); //静态方法
  }
}

main() {
  print(Person.name); // 静态-不用实例化对象
  Person.show();

  Person p=new Person();静态-new对象
  p.printInfo();

  Person.printUserInfo();
}

2. 对象操作符

    as    类型转换
    is    类型判断
    ..    级联操作 (连缀)
class Person {
  String name;
  num age;
  Person(this.name, this.age);
  void printInfo() {
    print("${this.name}---${this.age}");
  }
}
main() {

  /****** is ******/
  Person p=new Person('张三', 20);
  if(p is Person){
      p.name="李四";
  }
  p.printInfo();


  /****** as ******/
  var p1;
  p1='';
  p1=new Person('张三1', 20);
  (p1 as Person).printInfo();

  /****** ... ******/
  Person p1 = new Person('张三1', 20);
  p1.printInfo();
  p1
    ..name = "李四"
    ..age = 30
    ..printInfo();// 修改属性、调用方法
}

2. 继承

  1. 简单继承:extends

class Person {
  String name='张三';
  num age=20; 
  void printInfo() {
    print("${this.name}---${this.age}");  
  } 
}
class Web extends Person{}

  2. super

  : super(name, age)  默认值
class Person {
  String name;
  num age; 
  Person(this.name,this.age);
  void printInfo() {
    print("${this.name}---${this.age}");  
  }
}
// 最新版本的dart中需要初始化不可为null的实例字段,如果不初始化的话需要在属性前面加上late

class Web extends Person{
  late String sex;
  Web(String name, num age,String sex) : super(name, age){
    this.sex=sex;
  }
  run(){
   print("${this.name}---${this.age}--${this.sex}");  
  }
  
}

  3. 重写父类方法 @override

class Web extends Person{
  Web(String name, num age) : super(name, age);

  run(){
    print('run');
  }

  @override
  work(){
    print("${this.name}的工作是写代码");
  }

}

  4. 子类调用父类的方法 super.xxx

 

posted @ 2021-07-14 17:55  sansamilly  阅读(65)  评论(0编辑  收藏  举报