Dart 类

//不可变

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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 类概述 普通类变量实例变量(创建对象后,使用 对象.变量名 调用)静态变量(用static修饰,使用 类...
    小懒豆阅读 531评论 0 0
  • 1、this 使用this.propertyName,快捷属性赋值 class MyColor { int re...
    付昕乐阅读 332评论 0 0
  • 转载自:https://www.jianshu.com/p/4b3f68338efd 注意:跟Java等很多语言不...
    买火柴的大叔阅读 1,723评论 2 1
  • ✨✨✨✨✨ 魏什么_多喝水 Flutter 之路 声明: 创建实例 构造函数 默认构造函数默认构造函数,如果类没有...
    态度哥阅读 314评论 0 0
  • 前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...
    玉圣阅读 2,265评论 0 2