当前位置: 首页 > news >正文

深圳福田住房和建设局网站化妆品网站的建设目标

深圳福田住房和建设局网站,化妆品网站的建设目标,wordpress标签显示,wordpress m1 cmsDart中的对象都继承自 Object 类#xff0c;单继承#xff08;extend关键字#xff09;。Dart与Java、kotlin不同的是其无public、private、protected修饰符#xff0c;默认public #xff0c;通过在属性名、方法名前加 _下划线 来定义是否私有。 实现一个简单的类 class…Dart中的对象都继承自 Object 类单继承extend关键字。Dart与Java、kotlin不同的是其无public、private、protected修饰符默认public 通过在属性名、方法名前加 _下划线 来定义是否私有。 实现一个简单的类 class Student {//默认publicfinal String name;//默认publicfinal int age;Student(this.name, this.age);overridebool operator (Object other) {return identical(this, other) ||other is Student runtimeType other.runtimeType name other.name age other.age;}overrideint get hashCode name.hashCode ^ age.hashCode; }import package:gsy_flutter_demo/model/Student.dart;main() {var stu Student(Jack, 18);stu.name;stu.age; } 在属性名、方法名前加 _下划线 来定义私有属性。 class Person {String _name jack;int _age 18; }定义私有属性和方法的类需要抽离放到一个单独的文件或者模块中。否则不会生效例如写在同一个文件中仍然可以访问私有属性。 class Person {String _name jack;int _age 18; }main() {var person Person();person._name;person._age; }类定义使用 与Java、Kotlin一样使用 class 关键字定义一个类。实例化可以使用new关键字创建也可以省略。 class Student {final String name;final int age;Student(this.name, this.age);overridebool operator (Object other) {return identical(this, other) ||other is Student runtimeType other.runtimeType name other.name age other.age;}overrideint get hashCode name.hashCode ^ age.hashCode; }var stu Student(Jack, 18);var stu2 Student(Mike, 20); 构造函数 构造函数有四种形式类名构造函数、命名构造函数、常量构造函数、工厂构造函数。 定义一个类默认会有一个 无参构造函数如果有父类还会调用父类的无参构造函数。 类名构造函数 Student(this.name, this.age); 命名构造函数(类名.修饰符 定义的函数) Student.create(String name) : this(name, 20);注意命名构造函数不可继承。 常量构造函数 如果类创建的对象不会改变就可以在编译期就创建这个常量实例并定义一个常量构造函数并且确保所有成员变量都是final的。 //常量构造函数 const Student(this.name, this.age); 工厂构造函数 工厂构造函数构造函数私有使用 factory 关键字进行定义根据不同情况创建不同的对象。 class Fruit {final double price;final int weight;final String name;Fruit._(this.price, this.weight, this.name);//宸ュ巶鏋勯€犲嚱鏁版病鏈夎闂潈闄?factory Fruit(String name) {if (name apple) {return Fruit._(12, 5, name);} else if (name pear) {return Fruit._(15, 5, name);}return Fruit._(100, 100, name);} get/set修饰符 class Fruit {final double price;final int weight;final String name;Fruit._(this.price, this.weight, this.name);//宸ュ巶鏋勯€犲嚱鏁版病鏈夎闂潈闄?factory Fruit(String name) {if (name apple) {return Fruit._(12, 5, name);} else if (name pear) {return Fruit._(15, 5, name);}return Fruit._(100, 100, name);}int? get fruitWeight weight;set price(double price) {this.price price;} 对象操作符 类型强转 as Fruit apple Fruit(apple); int weight (apple as Fruit).fruitWeight ?? 0; 类型判断 is if (apple is Fruit) {print(apple);} 级联操作 .. apple..price 100.0..weight 100..name Fruit; class Fruit {final double price;late final int weight;late final String name;Fruit._(this.price, this.weight, this.name);factory Fruit(String name) {if (name apple) {return Fruit._(12, 5, name);} else if (name pear) {return Fruit._(15, 5, name);}return Fruit._(100, 100, name);}int? get fruitWeight weight;set price(double price) {this.price price;} }main() {Fruit apple Fruit(apple);int weight (apple as Fruit).fruitWeight ?? 0;if (apple is Fruit) {print(apple);}apple..price 100.0..weight 100..name Fruit; 继承 子类使用 extends 关键字继承父类子类会继承父类的属性和方法 (构造方法除外)使用 super 关键字调用父类属性/方法或者给父类构造方法传参。 class Animal {late String name;late int type;Animal(this.name, this.type); }class Tiger extends Animal {int weight;Tiger(super.name, super.type, this.weight); }接口和抽象类 接口的作用解决多继承的二义性问题。即指的是多继承中方法和属性名称的冲突编译器无法确定使用哪个父类的方法和属性。在Dart中无interface关键字所有类都被隐式定义成一个接口任何类都可以作为接口被实现。Dart解决多继承、实现的二义性问题子类必须将父类中所有属性和方法全部重写。 接口简单Demo class DemoA {int num;DemoA(this.num);void printDemo() print(DemoA); }class DemoB {int num;DemoB(this.num);void printDemo() print(DemoB); }class DemoC implements DemoA, DemoB {overrideint num 6;overridevoid printDemo() {print(DemoC);}}注意Java中的限制接口中只能定义抽象成员和方法且强制子类必须实现。 抽象类简单Demo Dart中的抽象类不能被实例化但可以包含 抽象方法  和 非抽象方法。 abstract class DemoA {String demoName;DemoA(this.demoName);void doA();void showA();void printA() {print(DemoA);} }abstract class DemoB {String demoBName DemoB;void doDemoB();void showDemoB();void printDemoB() {print(DemoB);} }class RealDemo implements DemoA, DemoB {overrideString demoBName RealDemo;overrideString demoName RealDemo;overridevoid doA() {}overridevoid doDemoB() {}overridevoid printA() {}overridevoid printDemoB() {}overridevoid showA() {}overridevoid showDemoB() {} }class RealDemo extends DemoA implements DemoB {overrideString demoBName demoBName;RealDemo(super.demoName);overridevoid doA() {}overridevoid doDemoB() {}overridevoid printDemoB() {}overridevoid showA() {}overridevoid showDemoB() {} }Mixins Dart中使用with关键字将一个类的功能添加到另一个类中 (该类可以复用其中的方法和属性)从而能实现多继承。mixin 关键字来定义一个混入类。 mixin Run {void run() print(run); }class Animal {}mixin Swim on Animal {void swim() print(swim); }class Tiger with Run {}class Fish extends Animal with Swim, Run {}main() {var fish Fish();fish.swim();fish.run();var tiger Tiger();tiger.run(); } swim run run 注意 on子句 指定该mixin可以混入的类类型只能混入到继承了Animal的类中。 枚举和密封类 Dart使用enum关键字定义枚举类型枚举中的成员都有一个对应的索引值这个值从0开始。 枚举简单Demo enum VALUE { VALUE_A, VALUE_B, VALUE_C }main() {for (var elemntValue in VALUE.values) {print(elemntValue);} }VALUE.VALUE_A VALUE.VALUE_B VALUE.VALUE_C 枚举支持 扩展方法 enum VALUE { VALUE_A, VALUE_B, VALUE_C }extension VALUE_OPERATE on VALUE {static VALUE getValueByIndex(int index) VALUE.values[index]; }main() {var value VALUE_OPERATE.getValueByIndex(1);print(value); }VALUE.VALUE_B 增强型枚举 enum Month {January(str: January, num: 1),February(str: February, num: 1),March(str: March, num: 1),April(str: April, num: 1),May(str: May, num: 1),June(str: June, num: 1),July(str: July, num: 1),August(str: August, num: 1),September(str: September, num: 1),October(str: October, num: 1),November(str: November, num: 1),December(str: December, num: 1);const Month({required this.str, required this.num});final String str;final int num; }main() {print(Month.December.str); }December 密封类 与Kotlin类似使用 sealed 关键字进行修饰用于限制类的结构层次结构。 sealed class Status {}class StatusA extends Status {}class StatusB extends Status {}class StatusC extends Status {}String getStatusStr(Status status) {return switch (status) {StatusA() StatusA,StatusB() StatusB,StatusC() StatusC}; }
http://www.hkea.cn/news/14324645/

相关文章:

  • 网站留言板的作用宁波seo推广咨询
  • 做导购网站 商品可以做试卷的网站英语怎么说
  • 佛山网站建设公司哪家最好阿里云 网站接入方式
  • 网站后台数据改不了青岛网站建设运营推广
  • 做非法网站东莞专业网站推广方式
  • .net 接单网站推荐广州微信网站建设
  • 厦门 公司网站建设医疗器械
  • 石家庄网站如何制作网站首页介绍
  • 用php做网站要多久柚皮子wordpress主题
  • 乐清做网站建设公司哪家好购物网站 缓存
  • 团购网站建立正版传奇手游官方网站
  • 建个什么网站好呢wordpress教程外贸
  • 网站使用字体网站外链怎么购买
  • 商务网站开发技术网站制作公司 佛山
  • 重庆市建设工程造价信息网站南昌县城乡规划建设局官方网站
  • 自建站跨境电商电信宽带多少钱
  • 可信网站认证不做企业网络规划实施方案
  • 做印刷品的素材网站wordpress代码审计如何进行
  • 网站开发工资高嘛百度小程序app下载
  • 广州建站公司兴田德润活动建设一个电商网站的流程
  • 网站建设女装规划书火车头wordpress获取不到分类
  • 闸北企业网站建设百度关键词排名批量查询
  • unsplash素材网站wordpress迁移安装
  • 营销网站建设需要多少钱如何做网站相册
  • 微信官方网站建设wordpress页脚
  • 深圳市建设局网站张局wordpress v4.1模板
  • 厦门教育平台网站建设wordpress首页文章带图
  • 公司网站建设p开发ios开发课程
  • 郑州网站建设zzmshl二七区做网站
  • 网站建设服务商怎么收费怎么样做国际网站生意