美文网首页
flutter dart 语法学习二

flutter dart 语法学习二

作者: 孙掌门 | 来源:发表于2020-05-13 20:58 被阅读0次

    demo

    main(List<String> args) {
    // 构造函数重定向
    var p = Person("sunchegnxiu");
    print(p);

    // 常量构造函数
    const p1 = Person1("sun");
    const p2 = Person1("sun");
    // 如下会报错,常量构造函数必须用常量修饰
    // var p1 = Person1("sun");
    // var p2 = Person1("sun");
    print(identical(p1, p2));

    // 工厂构造函数,需要自己手动返回一个对象
    final s = Student._withName("sunchengxiu");
    final s1 = Student._withName("sunchengxiu");
    print(identical(s1, s));

    // set get 方法
    final p3 = Person("sunchengixu");
    p3.setName = "sunbaofu";
    print(p3.getName);

    // 抽象类
    }

    class Person {
    String name;
    int age;
    // 构造函数重定向
    Person(String name, [int i]) : this._init(name, i ??= 100);

    Person._init(this.name, this.age);

    @override
    String toString() {
    // TODO: implement toString
    return "name is name,age isage";
    }
    // set 方法
    // set setName(String name){
    // this.name = name;
    // }
    set setName(String name) => this.name = name;

    // String get getName{
    // return this.name;
    // }

    String get getName => name;
    }

    // 常量构造函数
    class Person1 {
    final String name;

    const Person1(this.name);
    }

    // 传入 name 相同,返回相同的对象
    class Student {
    String name;

    // cache
    static final Map<String, Student> _nameCache = {};
    // 工厂构造函数,可以手动返回一个对象
    factory Student._withName(String name) {
    if (_nameCache.containsKey(name)) {
    return _nameCache[name];
    } else {
    final s = Student(name);
    _nameCache[name] = s;
    return s;
    }
    }

    Student(this.name);
    }

    class Teacher {
    String name;
    Teacher(this.name);
    }

    class Stu extends Teacher {
    int age;
    // 需要调用一下父类
    Stu(String name,this.age): super(name);
    }

    // 抽象类,方法可以没有实现,普通的类,方法需要有实现
    // 抽象类不能实例化
    // 可以通过工厂实例化
    abstract class AbsClass {
    void run();

    }

    // 继承自抽象类之后,必须实现抽象类的抽象方法
    class SubAbs extends AbsClass {
    @override
    void run() {
    print("im run");
    }

    }

    相关文章

      网友评论

          本文标题:flutter dart 语法学习二

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