美文网首页
Dart 类的创建、默认构造函数、命名构造函数

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

作者: 奋斗的小马达 | 来源:发表于2021-08-23 11:47 被阅读0次

    一、面向对象编程(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();   //命名构造函数
    

    参考文档,详见

    相关文章

      网友评论

          本文标题:Dart 类的创建、默认构造函数、命名构造函数

          本文链接:https://www.haomeiwen.com/subject/aqnkiltx.html