为了账号安全,请及时绑定邮箱和手机立即绑定

Flutter开发第一步-Dart编程语言入门

雷宇 全栈工程师
难度入门
时长 3小时54分
学习人数
综合评分9.50
53人评价 查看评价
9.5 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 静态成员

    使用static关键字来实现类级别的变量和函数

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

    类中的常量需要使用static const声明

    访问静态成员

    Page.scrollDown();


    查看全部
    1 采集 收起 来源:静态成员

    2020-04-14

  • 初始化列表

    跟语法糖一样是在构造方法之前运行

    使用逗号分隔初始化表达式

    初始化列表用于设置final变量的值

    class Person {
      String name;
      int age;
      final String gender;
    
      Person(this.name, this.age, this.gender);
    
      Person.withMap (Map map) : gender = map["gender"]{
        this.name = map["name"];
        this.age = map["age"];
      }
    }
     Person.withMap (Map map) :this.name = map["name"],
            this.age = map["age"],gender = map["gender"]{
      }
    }


    查看全部
  • 工厂构造方法

    1、工厂构造方法类似于设计模式中工厂模式

    2、在构造方法前添加关键字factory实现一个工厂构造方法

    3、在工厂构造方法中可返回对象


    class Logger {
      final String name;
      static final Map<String, Logger> _cache = <String, Logger>{};
      factory Logger(String name) {
        if (_cache.containsKey(name)) {
          return _cache[name];
        } else {
          final logger = Logger._internal(name);
          _cache[name] = logger;
          return logger;
        }
      }
      Logger._internal(this.name);
      void log(String msg) {
        print(msg);
      }
    
    }


    查看全部
    1 采集 收起 来源:工厂构造方法

    2020-04-14

  • 用const声明对象,需要有常量构造方法

    1、如果类是不可变状态,可以把对象定义为编译时常量

    2、使用const声明构造方法,并且所有变量都为final

    3、使用const声明对象,可以省略


    class Person {
      final String name;
      final int age;
      final String gender;
    
      const Person (this.name, this.age, this.gender);
    
    
    
      void work() {
        print("Name is $name, Age is $age, He is workding");
      }
    
    }
    const person =  const Person("Tom", 20, "M");


    查看全部
    1 采集 收起 来源:常量构造方法

    2020-04-14

  • Dart构造方法

    如果没有自定义构造方法,则会有个默认构造方法

    如果存在自定义构造方法,则默认构造方法无效

    构造方法不能重载

    Dart语法糖

    final String gender;
    
    Person (this.name, this.age, this.gender);

    这种写法是先给属性赋值再执行构造方法,所以可以给final属性赋值是没问题的

    想要在Dart使用多个构造方法,则需要命名构造方法

    1、使用类名.方法的形式实现

    Person.withAge(this.age, this.gender);
    Person.sad(this.gender);


    查看全部
    1 采集 收起 来源:构造方法

    2020-04-14

  • 计算属性:

    计算属性的值是通过计算而来,本身不存储值

    计算属性赋值,其实是通过计算转换到其它实例变量

    void main(List args) {
      var rectangle = Rectangle();
      rectangle.height = 20;
      rectangle.width = 10;
      print(rectangle.area);
      rectangle.area = 200;
      print(rectangle.width);
    }
    
    class Rectangle {
      num width, height;
      num get area => width*height;
          set area(value) {
            width = value/20;
          }
    
    }


    查看全部
    1 采集 收起 来源:计算属性

    2020-04-14

  • 对象

    声明new关键字可以省略

    类中属性默认生成getter和setter方法

    使用final声明的属性只有getter方法

    属性和方法通过 . 访问 

    方法不能被重载

    2、类及成员可见性

    Dart中的可见性以library(库)为单位

    默认情况下,每一个Dart文件就是一个库

    使用下划线_表示库的私有性也可以是属性和方法, 其它库不能再导入使用,只能在当前库使用

    使用import导入库

    查看全部
    1 采集 收起 来源:类与对象

    2020-04-14

  • 闭包:

    闭包是一个方法(对象),闭包定义在其它方法内部,闭包能够访问外部方法内的局部变量,并持有其状态

    void main(List args) {
      var func = a();
      func();
      func();
    }
    
    a() {
      int count = 0;
      return (){
        print(count++);
      };
    
    }


    查看全部
    1 采集 收起 来源:闭包

    2020-04-14

  • 匿名方法

    (参数1,参数2) {

       方法体...

    return 返回值

    }

    匿名方法特性

    1、可赋值给变量,通过变量进行调用

    2、可在其它方法中直接调用或传递给其它方法

    匿名方法不可以直接定义在外部, 要定义在main()方法里

    void main(List args) {
    
      var func = () {
        print("hello");
      };
      func();
    }

    2、

    void main(List args) {
    
      var list = ["h", "e", "l", "l", "o"];
      print(listTimes(list, (str) { return str*3;}));
    }
    
    List listTimes (List list, String f(str)) {
      for (var index = 0; index < list.length; index ++) {
        list[index] = f(list[index]);
      }
      return list;
    }



    List listTimes2 (List list) {
      var func = (str) { return str * 3;};
      for (var index = 0; index < list.length; index ++) {
        list[index] = func(list[index]);
      }
      return list;
    }


    查看全部
    1 采集 收起 来源:匿名方法

    2020-04-13

  • //Main程序入口
    void main(List args) {
    var list = ["h", "e", "l", "l", "o"];
    print(listTimes(list, (str) => times(str)));
    }
    
    List listTimes (List list, String f(str)) {
      for (var index = 0; index < list.length; index ++) {
        list[index] = f(list[index]);
      }
      return list;
    }
    
    String times(str) {
      return str*3;
    }
    
    2、
    //Main程序入口
    void main(List args) {
      Function p = printHello;
      p();
    
      var list = [1,2,3];
    
    }
    
    printHello() => print("hello");


    查看全部
    0 采集 收起 来源:方法对象

    2020-04-13

  • 设置默认参数值

    1、可使用 = 在可选参数后添加指定默认值

    查看全部
    1 采集 收起 来源:默认参数值

    2020-04-13

  • break 终止当前循环体,若被包含不影响父循环执行

    continue 跳过符合条件的一次循环

    查看全部
    1 采集 收起 来源:break和continue

    2020-04-13

  • Map创建

    1、创建Map:var lan = {'key' : 'value','key' : 'value','key' : 'value'...}

    2、创建不可变Map: var lan = const {'key' : 'value','key' : 'value','key' : 'value'...}

    3、构造创建:var lan = new Map();

    查看全部
    1 采集 收起 来源:Map

    2020-04-13

  • List(数组)创建

    1、创建List : var list = [1,2,3];

    2、创建不可变的List:var list = const[1,2,34]

    3、构造创建:var list = new List();

    常用方法

    insert()插入, 原有数据往后顺延

    indexOf() 查字符所在索引并返回, 没有找到返回-1

    sublist()截取

    查看全部
    1 采集 收起 来源:列表List

    2020-04-13

  • 布尔型

    1、使用bool表示 

    2、只有true、false两个值

    查看全部
    0 采集 收起 来源:布尔型

    2020-04-13

举报

0/150
提交
取消
课程须知
本课程主要介绍Dart基础知识,如果有其它编程语言经验的同学,学习起来会事半功倍。对有经验的同学,入门课程会比较轻松,不过也要多加练习哦~,学习完本课程后,大家可以自行加深Dart学习,向面向对象发起一波冲刺~(https://gitee.com/LeiYu-Io)
老师告诉你能学到什么?
1、Dart的应用场景有哪些 2、Dart开发环境如何配置 3、Dart中常用的数据类型 4、Dart中的运算符及控制流 5、Dart中的方法以及闭包等

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!