Dart 中的类静态成员、操作符、类的继承

Dart中的静态成员:

使用static关键字来实现静态变量和静态函数

静态方法不能访问非静态成员,非静态方法可以访问静态成员

静态属性和静态方法直接用类名来访问

void main(){

  print(Person.age);
  Person.printName();

  //Dart中的对象操作符
  // ?:条件运算符
  // as:类型转换
  // is:条件判断
  // ..:级联操作


  Person person;
  //加一个问号,表示对象为null时,不调用方法
  person?.printAge();

  //类型转换
  Person p = new Person();
  (p as Person).printAge();

  //is:条件判断
  if(p is Person){

  }

  //..:级联操作

  User user = new User("周建", 26);
  user.name = "李四";
  user.age = 30;
  user.printUser();

  //也可以这样写

  user..name = "王五"
      ..age = 26
      ..printUser();

}

class User{
  String name;
  int age;
  User(this.name,this.age);

  void printUser(){
    print("${this.name}:${this.age}");
  }
}

class Person{
  static int age = 26;
  static String name = "zhoujian";
  static void printName(){
    print(name);
  }

  void printAge(){
    print(age);

  }
}

输出结果:

[Running] dart "/Users/zhoujian/DartDemo/tempCodeRunnerFile.dart"
26
zhoujian
26
李四:30
王五:26

[Done] exited with code=0 in 1.222 seconds

//Dart中的继承
// 子类继承父类,用extends关键字
// 子类会继承父类里面可见的属性和方法,不会继承构造函数
// 子类能复写父类的方法  getter 和setter

class Person {
  String name;
  int age;
  Person(this.name, this.age);
  void printPersonInfo() {
    print("${this.name}:${this.age}");
  }

  @override
  void doJob() {
    print("上班");
  }
}

class Worker extends Person {
  String sex;
  Worker(String name, int age, String sex) : super(name, age) {
    this.sex = sex;
  }

  void printWorkerInfo() {
    print("${this.name}:${this.age}:${this.sex}");
  }

  //子类复写父类的方法
  void doJob() {
    //子类调用父类方法
    super.doJob();
    print("在工厂上班");
  }
}

void main() {
  Worker worker = new Worker("张三", 18, "男");
  //子类调用父类方法
  worker.printPersonInfo();
  //调用自己的方法
  worker.printWorkerInfo();
  worker.doJob();
}

输出结果:

[Running] dart "/Users/zhoujian/DartDemo/extenddemo.dart"
张三:18
张三:18:男
上班
在工厂上班

[Done] exited with code=0 in 1.097 seconds

发布了272 篇原创文章 · 获赞 68 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/u014005316/article/details/104306418