一、Dart默认构造函数

构造函数会在这个类实例化的时候触发

class Person{
  String name='张三';
  int age=20; 
  //默认构造函数
  Person(){
    print('这是构造函数里面的内容  这个方法在实例化的时候触发');
  }
  void printInfo(){   
    print("${this.name}----${this.age}");
  }
}
 Person p1=new Person();
 p1.printInfo();

 

默认构造函数传值:

class Person{
  late String name;
  late int age; 
  //默认构造函数
  Person(String name,int age){
      this.name=name;
      this.age=age;
  }
  void printInfo(){   
    print("${this.name}----${this.age}");
  }
}

Person p1=new Person('张三',20);
p1.printInfo()

 

默认构造函数的简写:

上面默认构造函数传值的示例代码也可以进行简写

class Person{
  late String name;
  late int age; 
  //默认构造函数的简写
  Person(this.name,this.age);
  void printInfo(){   
    print("${this.name}----${this.age}");
  }
}

 

二、Dart命名构造函数

 

Dart里面构造函数可以写多个,这个时候我需要通过命名构造函数来实现。

 

回顾一下我们前面用到的命名构造函数,下面代码表示实例化DateTime调用它的命名构造函数。

var d=new DateTime.now();   //实例化DateTime调用它的命名构造函数
print(d);

 

命名构造函数示例代码:

class Person {
  late String name;
  late int age;
  //默认构造函数的简写
  Person(this.name, this.age);

  Person.now() {
    print('我是命名构造函数');
  }

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

  void printInfo() {
    print("${this.name}----${this.age}");
  }
}

 

实例化命名构造函数

Person p2=new Person.now();   //命名构造函数