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

做结构图的网站乐清建站公司

做结构图的网站,乐清建站公司,网络销售心得体会总结,二维码生成器免费版下载0 说明 该系列教程主要是为有一定语言基础 C/C的程序员#xff0c;快速学习一门新语言所采用的方法#xff0c;属于在C/C基础上扩展新语言的模式。 1 面向对象基础知识 说明#xff1a;这里主要是基于C面向对象着门语言#xff0c;分析与其不同的部分#xff0c;属于扩…0 说明 该系列教程主要是为有一定语言基础 C/C的程序员快速学习一门新语言所采用的方法属于在C/C基础上扩展新语言的模式。 1 面向对象基础知识 说明这里主要是基于C面向对象着门语言分析与其不同的部分属于扩展式的学习模式。Dart语言本身也是面向对象的程序语言 编码习惯说明类的首字母要大写方法首字母小写。 1.1 类的属性信息获取 在dart语言中属性的获取一般可以用$符号直接获取这里以Person类为例具体描述如下 class Person {String name wang;int age 30;Person() {}void printInfo() {print(printInfo:);print(use \$ label);print($name----$age);print(use this pointer);print(${this.name}----${this.age});} }void main() {Person p new Person();p.printInfo();print(Persons property:);print(name${p.name},age${p.age}); } 命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:63468/DKkz_f3A8aw/ws printInfo: use $ label wang----30 use this pointer wang----30 Persons property: namewang,age30 1.2 默认构造函数和命名构造函数 Dart中构造函数和C中有所不同并不是直接编写的构造函数有多个而是一个默认构造函数和多个不同的命名构造函数都可以用于对象的实例化这里以Person类为例来解读默认构造函数和命名构造函数的差别代码如下所示 class Person {String name wang;int age 30;//1 默认构造函数当实例化一个对象时会自动调用到该函数//一般编码模式// Person(String name, int age) {// this.name name;// this.age age;// }//Dart语言中的简写模式功能同上 注释Person(this.name, this.age);//2 命名构造函数系列Person.now() {print(命名构造函数now);}Person.init(String name) {this.name name;print(命名构造函数init:$name);}void printInfo() {print($name---$age);} }void main() {Person p1 new Person(wang, 30);Person p2 new Person.now();Person p3 new Person.init(li);p1.printInfo();p2.printInfo();p3.printInfo(); }命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:63783/veW3pzv-NKs/ws 命名构造函数now 命名构造函数init:li wang---30 wang---30 li---30 1.3 私有private属性和公有public属性 这里的private变量一般使“ _ ”开头而非“_”开头的变量一般都是public变量。代码如下所示 class Person {//public属性String name wang;//private属性//注意必须在Person独立出的类文件中才可以使private属性生效否则无效int _age 30;Person(this.name, this._age);void printInfo() {print($name---$_age);} }void main() {Person p1 new Person(wang, 30);p1._age 30;p1.printInfo(); } 但要非常注意直接在该文件中使用时private属性并不生效即外界依然可以访问。只有在独立类文件Person中时才会生效。命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:64385/Oid5LlpsVOg/ws wang---30 1.4 get和set 计算属性 get和set的使用代码如下所示 class Circle {double radius;Circle(this.radius);//getter实现// double s() {// return radius * radius * 3.14;// }//{等价于上面的方法实现}//setter实现set setRadius(double radius) {this.radius radius;} }void main() {Circle c new Circle(5.0);c.setRadius 7.0;//setter的使用print(r${c.radius},s${c.s});//getter的使用 } 命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:64936/um9Y1LlW7Zc/ws r7.0,s153.86 1.5 初始化操作 构建对象前的初始化变量操作在构造函数运行前赋值代码如下所示 class Circle {double radius;//变量初始化操作。在构造函数运行前赋值Circle() : radius 3.0 {print(r${radius});}get s {return this.radius * this.radius * 3.14;} }void main() {Circle c new Circle();print(r${c.radius},s${c.s}); } 命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:65060/-cx0Vbd4POI/ws r3.0 r3.0,s28.26 1.6 静态属性和静态方法 在Dart语言中一般使用static关键字来实现对变量和方法的描述。规则如下 静态方法中不能使用非静态方法和属性。非静态方法中可以使用静态方法和静态属性。 1.7 级联操作.. 代码实现如下 class Person {String name wang;int age 30;Person(this.name, this.age);void printInfo() {print($name---$age);} }void main() {Person p1 new Person(wang, 30);//级联操作赋值p1..name wang-5..age 40..printInfo(); } 命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:50341/2a365aWm2oY/ws wang-5---40 常量构造函数 2 面向对象继承、封装、多态 2.1 抽象类和抽象方法 这里的描述主要针对相比C语言的抽象类中不同之处做对比学习如下 抽象类主要用于定义标准。使用abstract关键字抽象类中的抽象方法则无需再使用abstract关键字来声明。抽象类中如果只声明方法但不实现则是抽象方法即没有方法体的方法就是抽象方法了。如果实现了的方法就是普通方法即有方法体的方法。 抽象类及对应方法 代码实现如下 //抽象类 abstract class Animal {//抽象类中的抽象方法void eat();void run();//抽象类中的一般方法void printInfo() {print(class Animal info);} } 2.2 implements接口 Dart中没有关键字来定义接口的关键字普通类和抽象类都可以作为接口被实现使用关键字implements关键字进行实现。如果实现的类是普通类需要将普通类和抽象中的属性和方法全重写。抽象类可以定义抽象方法普通类不可以所以一般如果要实现接口的方式使用抽象类定义接口。这里要注意extends和implemnets的区别在Dart语言中继承抽象类 和实现抽象类是不同的继承只会重写抽象类里的抽象方法而实现会重写抽象类里的所有变量和方法。相关代码如下所示 //复用上一段代码的Animal。。。//继承只需要重写抽象类中的抽象方法 class Cat extends Animal {overridevoid eat() {// TODO: implement eat}overridevoid run() {// TODO: implement run} } //实现需要重写抽象类中的所有属性和方法 class Dog implements Animal {overridelate String name;overridevoid eat() {// TODO: implement eat}overridevoid printInfo() {// TODO: implement printInfo}overridevoid run() {// TODO: implement run}} 说明如果是implements实现多个抽象类则需要重写多个抽象类里的所有变量和方法。 2.3 mixins功能 主要用于实现类似多继承的功能。mixins的使用条件随着Dart的版本不断更新而有所改mixins 3.X版本中约束条件如下 作为mixins的类只能继承自Object,不能继承其他类作为mixins的类不能有构造函数一个类可以mixins多个mixins类mixins不是继承也不是接口而是一种全新的特性 代码实现如下所示 mixin A {//作为minxins类只能继承自ObjectprintA() {print(This is A);}run() {print(run A);} }mixin B {//作为minxins类只能继承自ObjectprintB() {print(This is B);}run() {print(run B);} }//C混合了A类和B类类似继承C的实例化类可以使用A类以及B类中的方法 class C with A, B {}main() {C c new C();c.printA();c.printB();c.run(); } 命令执行后效果如下 Connecting to VM Service at ws://127.0.0.1:55350/kWXd6C3DRl4/ws This is A This is B run B 注意如果有相同方法则执行时主要依赖with的顺序。 同时这里也可以同时extends其他类基础上再使用mixins机制。关键代码如下所示 class C extends X with A, B {} 2.4 late关键字 表示延迟初始化不在对象初始化时初始化而是在对象初始化之后。参考2.2 implements接口中demo。 2.5 identical函数 主要用于检查两个引用是否指向同一个对象。关于identicial的判定参考如下代码 void main() {var o1 new Object();var o2 new Object();var isIdentical identical(o1, o2); // false, diff objects.isIdentical identical(o1, o1); // true, same objectisIdentical identical(const Object(), const Object()); // true, const canonicalizesisIdentical identical([10], [10]); // falseisIdentical identical(const [10], const [10]); // trueisIdentical identical(const [1], const [2]); // false } 2.6 常量构造函数 在Dart语言中const一方面是内存开销减少另一方面源自从常量组件是不应该改变的需求。常量构造函数需要满足以下约束 常量构造函数需要以const关键字修饰;const构造函数必须用于成员变量都是final的类;如果实例化不加const修饰符,即使调用的是常量构造函数,实例化的对象也不是常量实例对象;实例化常量的构造函数的时候,多个地方创建这个对象,如果传入的值相同,只会保留一个对象; 这里给出一个demo代码如下所示 class Rect {final int width;final int height;const Rect({required this.width, required this.height}); } 3 泛型 和C基本一致主要解决代码中数据类型的复用问题。一般都是泛型方法和泛型类中使用。
http://www.zqtcl.cn/news/164213/

相关文章:

  • 建立网站备案的法律依据wordpress 招商系统
  • 建设银行全球门户网站网站建设技能
  • 提供企业网站建设价格10元一年的虚拟主机
  • 塔城建设局网站电子商务网站建设方案目录
  • 网站容易被百度收录个人建购物网站怎么备案
  • 中文网站什么意思wordpress电脑访问不了
  • 杨家坪网站建设企业生产erp软件公司
  • 网站模块设计软件河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo
  • 陕西正天建设有限公司网站西安专业网页制作
  • 网站建设工作室介绍范文seo网站排名的软件
  • 上海网站建设-网建知识可编辑个人简历模板
  • 北京新鸿儒做的网站shopify做国内网站
  • 网站怎样做百度推广机关门户网站建设要求
  • 好看的网站后台模板沧州网站群
  • 深圳做网站排名公司哪家好哪些网站seo做的好
  • 国内网站建设推荐网站建设合同标准版
  • 哈尔滨网站制作费用企业成品网站模板
  • 网络广告网站怎么做北京海淀建设中路哪打疫苗
  • 房地产公司网站制作电影发布网站模板
  • 如何利用开源代码做网站网站本科
  • 公司是做小程序还是做网站宜宾住房与城乡建设部网站
  • 做网站哪个公司最社区问答网站开发
  • 网站引量方法网站建设推广页
  • 书店网站的建设网络营销方法有哪些
  • 深圳网站优化软件顺企网怎么样
  • 做网站的需要什么要求中国五百强企业排名表
  • 网络营销 企业网站外贸响应式网站建设
  • 网站网页制作公司o2o平台是什么意思啊
  • 惠州市网站建设个人网站怎么进入后台维护
  • 微信网站链接怎么做wordpress 绑定手机版