Dart 类

作者: 逍遥德道 | 来源:发表于2021-04-20 11:08 被阅读0次

//不可变

class ImmutabelPoint {

  final int x;

  final int y;

  //常量构造方法

  const ImmutabelPoint(this.x, this.y);

}

class Point {

  //使用 _ 是私有的

  int _x;

  int y;

  //方法不能重载

  Point(this._x, this.y);

  //命名构造方法

  Point.X(this._x);

  //参数初始化列表使用 :

  Point.fromMap(Map map)

      : _x = map["x"],

        y = map["y"];

  //这个跟kotlin 一样

  Point.from() : this(1, 1);

}

class _P {}

void main(){

  main2();

}

void main1() {

  // var p = Point(1,1);

  // p.y;

  //使用的const 创建的对象,传递的参数也一样,是同一个对象

  var p1 = const ImmutabelPoint(1, 1);

  var p2 = const ImmutabelPoint(1, 1);

  print(p1 == p2);

  print(p1.hashCode == p2.hashCode);

}

//工厂构造方法 加 单例实现

class Manager {

  static Manager _instance;

  factory Manager.getInstance() {

    _instance ??= Manager._newInstance();

    return _instance;

  }

  //static 表现与 factory一样 但是返回值要确定 Manager

  static Manager get() {

    return Manager._newInstance();

  }

  //这样不能实现单例

  // Manager();

  //使用命名构造方法 加 _ 的形式构造私有构造方法

  Manager._newInstance();

}

//get set

class getSet {

  int _x;

  int y;

  //因为有隐形 get x ,不能进行重写

  // int get x =>x + 10;

  //只能通过这种转换的方式进行

  int get x => _x;

  set x(int x) => _x = x;

  int get yy => y;

  set yy(int yy) => y = yy;

}

//操作符重载

class Operators {

  int x;

  int y;

  //返回值,随意

  Operators operator +(Operators operator) {

    var op = Operators();

    op.x = x + operator.x;

    op.y = y + operator.y;

    return op;

  }

  String operator -(String string) {

    return "";

  }

}

//抽象类

abstract class Parent {

  void parent(); //抽象方法不能写 abstract

}

//单继承,所有的类都可以是接口,进行实现

class Child extends Parent {

  @override

  void parent() {}

}

//实现

class Child2 implements Child {

  @override

  void parent() {}

  //可以使用  Child2 child = Child2();

  // child() == child.call();

  void call() {}

}

//混合 mixin

void main2() {

  var c = C();

  //这个方法是哪个类的呢

  //从后往前找  B,A

  c.a();

  c.b();

  //先找自己的,找不到后,从后往前找

  //混入类时,先混入A的所有方法,再混入B的方法的时把与A重合的方法顶替了

  c.c();

}

//被混入的类不能有构造方法

class A {

  void a() {}

  void c(){

    print("A 中的 C 方法");

  }

}

class B {

  void a(){}

  void b() {}

  void c(){

    print("B 中的 C 方法");

  }

}

class C with A, B {

  //重写了B中的c()方法

  void c() {

    super.c();

    print("C 中的 C 方法");

  }

}

//混合 D没有自己的方法与属性

class D = Object with A, B;

相关文章

  • Flutter/Dart - Dart中的抽象类 多态 和接口

    Dart中的抽象类 Dart中的抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口...

  • Dart --类

    类概述 普通类变量实例变量(创建对象后,使用 对象.变量名 调用)静态变量(用static修饰,使用 类...

  • Dart 类

    定义一个类 -> 如果想定义一个私有属性,那么加上_ ,「dart里面没有重载函数」如果想用,那么 类名.xxx ...

  • Dart 类

    //不可变 class ImmutabelPoint { final int x; final int y; ...

  • Flutter 代码规范整理

    Dart 语法简介 Flutter是使用Dart语言开发的。Dart语言是基于类的纯面向对象语言。Dart 中的所...

  • 10.Dart-抽象类

    /** * Dart中的抽象类 * Dart抽象类主要用于定义标准, 子类可以继承抽象类, 也可以实现抽象类接口...

  • flutter【7】dart语言--类

    类 dart 是纯面向对象语言,每个对象都是某个类的实例,并且所有类都是继承自 Object。 dart中继承使用...

  • 带你Dart带你Diao之类(二)

    在上一篇博客,笔者介绍了Dart类的构造方法 带你Dart带你Diao之类(一) 这一篇博客是介绍Dart类的其他...

  • Dart基础语法<九> 类(下)

    本节主要记录一下Dart中关于类的使用 可调用的类 混合Mixins 可调用的类 如果 Dart 类实现了 cal...

  • Dart中的抽象类 多态 以及接口

    抽象类 Dart中抽象类: Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口。 1、抽象类...

网友评论

      本文标题:Dart 类

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