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

旅游便宜的网站建设网站导航的重要性

旅游便宜的网站建设,网站导航的重要性,校园社交网站怎么做,做网站前端ps很重要吗Dart中的对象都继承自 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/14564857/

相关文章:

  • 网站公司网站建设企业信息公共服务平台
  • 重庆网站开发建设安全优化大师
  • 诸城盟族网站建设网页设计与制作模板图
  • 网站备案手机号浏览器大全列表下载
  • 西宁网站建设公司排行开发app需要哪些软件
  • 化工网站建设思乐网站建设
  • 临沂网站定制莞城区网站仿做
  • 云南网站建设优化企业哔哩哔哩网页版怎么退出账号
  • 淘宝客是如何做网站与淘宝对接的wap 网站模板
  • 北京鑫创网站建设wordpress模板在哪个目录
  • 域名注册好怎么建设网站wordpress菜单栏的函数调用
  • 自己建设购物网站wordpress获取分类的文章
  • 为某网站做网站推广策划方案网页美工培训班
  • 开奖网站怎么做wordpress管理插件
  • c 网站开发培训网站建站的类型
  • 类似情侣空间的网站开发网站怎样做平面设计图
  • 摄影师如何做网站网站建设 网站优化营销型网站建设专家
  • 西安网站建设需要多少钱如何自己建设简单的手机网站首页
  • 电子网站建设价格重庆市
  • 梧州网站建设厂家wordpress font awesome cdn
  • 怀柔网站建设电商网站购买的流程图
  • python开发做网站高德地图加拿大能用吗
  • 自己怎么个人网站腾讯云服务器收费标准
  • h5手机端网站开发小程序注册条件
  • 网站建设详细过程余姚做网站
  • 网站更换目录名如何做301跳转做产品包装的3d网站
  • php网站开发岗位要求某服装企业网站建设方案
  • 网站编程电子书做qq动图的网站
  • 广西南宁官方网站企业淄博网站制作高端形象
  • 网站规划设计是什么十大待遇最好央企