Dart 类的创建、默认构造函数、命名构造函数

一、面向对象编程(OOP)的三个基本特征是:封装、继承、多态

OOP基本特征.png

封装:封装是对象和类概念的主要特性。封装,把客观事物封装成抽象的类,并且把自己的部分属性和方法提供给其他对象使用。

继承:面向对象编程(00P) 语言的一个主要功能就是“继承”。基于对象,基于类的封装, 继承的类拥有和父类相同的属性和方法。

多态:允许将子类类型的指针赋值给父类类型的指针,同一个函数调用会有不同的执行效果。

二、Dart也遵循OOP思想

Dart所有的东西都是对象,所有的对象都继承自object类。
Dart是一门使用类和单继承的面向对象语言,所有的对象都是类的实例,并且所有的类都是0bject的子类一个类通常由属性和方法组成。

三、Dart 类的创建与使用

注意:定义类的时候 首字母要大写,

1、创建一个类
  class Person {

    // 类的属性
    String name = '张三';
    int age = 18;

    // 类的方法
    getInfo(){
      print('name=${this.name}------age=${this.age}');
    }
  }
}
//使用
//导入
import 'Person.dart';
void main(List<String> args) {
  //初始化
  Person p = new Person();
  // 打印属性值
  print(p.name);
  //调用方法
  p.getInfo();

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

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}");
  }
}

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

命名构造函数示例代码:

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();   //命名构造函数

参考文档,详见

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容