• dart快速入门教程 (7.3)


    7.4.抽离类为单独文件

    新建一个文件,单独存放一个类,例如:Person类抽离到person.dart文件中

    class Person {
      final String name;
      final num age;
      final String gender;
      const Person(this.name, this.age, this.gender);
      
    }
    

    引入这个Person类

    import './person.dart';
    
    void main() {
      var p = new Person("xiaoqiang", 18, "男");
      print(p.gender);
    }
    

    7.5.初始化列表

    初始化列表就是在构造方法体执行之前进行一系列初始化操作,常用于设置final变量的值

    
    
    void main() {
      // 注意:new关键字可以省略
      // var p = new Person("xiaoqiang", 12, "男");
      // print(p.name);
      // 创建对象的时候,可以使用fn构造方法
      var p2 = new Person.fn("xiaohong", 12);
      
    }
    
    class Person {
      String name;
      num age;
      final String gender;
      Person(this.name, this.age, this.gender){
       
        print(this.name);
        print(this.age);
        print(this.gender);
      }
      // 在构造方法后面加冒号来设置初始化列表,每个初始化变量之间用逗号隔开
      Person.fn(name, age):gender="男", name="xiaoli"{
        print(name);
        print(age);
      }
    }
    

    7.6.静态成员

    可以使用static关键字来实现类级别的变量和函数,通俗的说静态成员就是可以直接通过类名称来调用

    void main() {
      print(Person.name);
      Person.showName();
    }
    
    class Person {
      static String name;
      static num age;
      static void showName () {
        name = "xiaoqiang";
        print(name);
      }
      void showAge () {
        // 非静态成员是可以直接使用静态成员
        age = 10;
        print(age);
      }
     
    }
    

    注意:静态成员不能访问非静态成员

    void main() {
      print(Person.name);
      Person.showName();
      var p = new Person();
      p.showAge();
    }
    
    class Person {
      static String name;
      static num age;
      String gender = '男';
      static void showName() {
        name = "xiaoqiang";
        print(name);
        // 报错 静态方法不能访问非静态的属性
        print(gender);
      }
    
      void showAge() {
        // 非静态成员是可以直接使用静态成员
        age = 10;
        print(age);
      }
    }
    

    注意2: 定义静态常量 需要用 static const ,例如: static const gender = "男", 定义成常量后,在静态方法中可以访问

    7.7.对象操作符

    条件成员访问 ?.

    void main() {
      var p = new Person();
      // 如果p为空就不执行showName方法 如果p不为空就会执行
      p?.showName();
    }
    
    class Person {
      String name;
      static num age;
      showName() {
        print(name);
      }
    }
    

    is 和 is!

    void main() {
      var p = new Person();
      if (p is Person) {
        p.showName();
      } else {
        print("不属于这个类");
      }
    }
    
    class Person {
      String name;
      static num age;
      showName() {
        print(111);
        print(name);
      }
    }
    

    ..级联操作

    void main() {
      new Person()
        ..name = "小强"
        ..age = 20
        ..showName();
    }
    
    class Person {
      String name;
      num age;
      showName() {
        print(111);
        print(name);
      }
    }
    

    7.8.call方法

    当类的内部定义call方法,那么对象可以作为方法调用

    void main() {
      var p = new Person();
      p();
      p.showName();
    }
    
    class Person {
      String name;
      num age;
      showName() {
        print(111);
        print(name);
      }
    
      call() {
        print('call 方法被执行了');
      }
    }
    

    螺钉课堂视频课程地址:http://edu.nodeing.com

  • 相关阅读:
    自动化测试基础篇--Selenium文件上传send_keys
    自动化测试基础篇--Selenium中数据参数化之TXT
    自动化测试基础篇--Selenium中JS处理浏览器弹窗
    自动化测试基础篇--Selenium中JS处理滚动条
    自动化测试基础篇--Selenium单选框(Radio)复选框(CheckBox)
    自动化测试基础篇--Selenium弹出框alert
    自动化测试基础篇--Selenium select下拉框
    自动化测试基础篇--Selenium多窗口、句柄问题
    flask初探
    windows系统在python3.5环境下安装mysql组件
  • 原文地址:https://www.cnblogs.com/dadifeihong/p/12047723.html
Copyright © 2020-2023  润新知