美文网首页
dart的构造函数

dart的构造函数

作者: 凯司机 | 来源:发表于2021-07-16 08:44 被阅读0次
main(List<String> args) {
  var p = Person('ksj', 29);
  var p1 = Person.withNameAgeAndHeight('ksj', 22, 178);
  print(p1.toString());
  
  // 父类应用指向子类对象
  // Object obj = 'ksj';
  // 会报错的写法
  // print(obj.substring(1));

  /* dynamic 和 Object 的区别:
    Object编译时报错、dynamic编译时不报错,但是运行时存在潜在风险
    需要增加类型判断
  */

  dynamic obj = 'ksj';
  print(obj.substring(1));
  var p2 = Person.form({
    "name1" : "1",
    "name2" : "2",
    "name3" : "3",
  });
}


class Person {
  String name;
  int age;
  double height;
  // Dart提供给我们的语法糖
  Person(this.name, this.age);
  // Dart里面没有重载
  // 命名构造函数

  Person.withNameAgeAndHeight(this.name, this.age, this.height);
  Person.form(Map<String, dynamic> mapst);

  // 重写类的方法进行覆盖
  @override
  String toString() {
    // TODO: implement toString
    return "$name $age $height";
  }
}

class Person {
  final String name;
  final int age;
  // 如果初始化不赋值,以后再也不能赋值了
  // C++里面就有这样的语法
  // 默认值的传入
  // 源码中特别喜欢用这种方法——初始化列表
  // 作用,如果创建对象时,有传入一个age,那么就使用传入的阿哥,如果没有传入age,那么使用一个默认值

  Person(this.name, {int age}): this.age = age ?? 10 {
    // 大括号里面的代码执行的时候,代码就被初始化了
    // this.age = age;
  }

  const temp = 20;
  Person(this.name, {int age}): this.age = temp > 20 ? 30 : 50  {
    // 大括号里面的代码执行的时候,代码就被初始化了
    // this.age = age;
  }

  
  // 上面是官方推荐,
  Person(this.name, {this.age = 10});
  Person(this.name, {this.age = temp  ?? 30 });
  
  // 局限性:下面局限性只能做确定的值赋值操作,不能做三目运算等不确定的操作

  // 保留着

  // 默认值里面只能给具体值,不能给函数调用

  // 解除疑惑:

}

相关文章

  • Dart整理

    Dart构造函数 普通构造函数和命名构造函数 默认构造函数一个类没有声明构造函数,默认会有一个无参构造函数,声明了...

  • 2020-04-11 Flutter学习笔记——Dart构造函数

    Dart构造函数有4种格式: ClassName(...) //类名构造函数Classname.identifi...

  • Dart类(构造函数、单例)

    Dart类(构造函数、单例) 构造函数 构造函数类型 默认构造函数类里面没有显示写构造函数,默认是一个隐式的无参构...

  • Dart---构造函数与命名构造构造函数(初始化)

    构造函数(初始化) 构造函数:构造函数与类名相同,构造函数又叫初始化函数,当类被创建的时候,会自动调用。Dart相...

  • Dart 如何正确使用构造函数?

    前言 Dart 语言的构造函数和其他语言会有些不同,我们列举一下 Dart 中的构造函数的几种形式。 这里比较容易...

  • Dart基础: 构造函数

    Dart基础: 构造函数 Dart的构造函数比较变化多端, 我们可以在不同的场景下合理声明和调用一个class的构...

  • Dart构造函数

    默认构造函数 不声明构造函数,则提供默认的无参构造,和java类似。 普通构造函数 另外一种构造方法写法:(减少代...

  • dart的构造函数

  • Flutter学习笔记3 -- Dart语法学习扩展

    本文是对Dart语法的一些补充内容 类的特性 1.工厂构造函数普通构造函数会默认返回创建的对象,工厂构造函数需要手...

  • Dart构造函数介绍

    介绍 因为Flutter和Dart语言非常容易上手,很多学习Flutter的同学,一般都会直接写Flutter页面...

网友评论

      本文标题:dart的构造函数

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