flutter从入门到精通二

2019-11-04 admin

静态方法和静态属性(static):

  • 通过static修饰的方法和属性称为静态方法和静态属性,注意静态方法和静态属性只能通过类名访问,不能通过对象访问。
  • 静态方法不能访问非静态的属性和非静态方法,反正可以
class Person{
  String name;
  int age;
  Person(this.name,this.age);
  printInfo(){
    //在字符串中,可以直接通过${}访问类的属性和方法
    print('${this.name}---${this.age}');
  }
}

class Web extends Person{
  /**
    *super 是调用父类的构造方法
    *构造函数是无法继承,所有在子类继承父类的时候,需要super来实现父类的构造方法
    */
  Web(String name, num age) : super(name, age);

  // override可写,可不写,建议写上
  @override
  printInfo(){
    print('子类中的${this.name}---${this.age}');
  }
}
main(){
  /**
   * Dart中对象操作符
   * ?条件运算符
   * is类型判断
   * ..级联操作
   */
  Person p1;
  // 下面表示如果p1是空,表示不执行后面的,如果有值,执行后面的
  p1?.printInfo();
  Person p2=new Person('张三',20);
  p2?.printInfo();

  p2..name='李四'
    ..age=20
    ..printInfo();
}  
抽象类:用abstract修饰的类

抽象类中有抽象方法,其是没有方法体的,继承抽象类的子类必须要实现子类的抽象方法

abstract class Animal{
  // 抽象方法,子类必须要实话抽象方法
  eat(); 
}

class Dog extends Animal{
  @override
  eat() {
    print('我是小狗');
  }
}
main(){
  /**
   * 抽象类(abstract主要用来指定标准)
   * 在dart中,定义接口和定义抽象类一样,都使用abstract,**dart中接口没有使用interface定义**
   * 抽象类不能被实例化,只有继承他的子类实例化 
   * 接口里面必须全部是抽象方法,没有普通的方法,但是抽象类中可以既有普通方法,也有抽象方法
   */
  Dog d=new Dog();
  d.eat();
}  

一个类可以实现多个接口,但是只能单继承抽象类,如果模仿多继承,可以使用mixins,作为mixins的类只能继承Object,不能继承其他的类,作为mixins的类不能有构造函数,如下:

class A{
  printA(){
    print('A');
  }
}
class B{
  printB(){
    print('B');
  }
}
//如果模仿多继承,可以使用mixins
class C with A,B{

}
main(){
  C c1=new C();
  c1.printB();
}  
泛型:可以解决代码重用和不特定的类型校验的问题
// 泛型方法,注意需要加上三个地方T
T getData<T>(T data){
  return data;
}
main(){

  print(getData<String>('我叫唐凯震'));
}  

dart中的库

import 'package:http/http.dart';
main(){
  /**
   *  库
   * dart中,库通过import引入,注意是没有from
   * 每个dart文件都是一个库
   * 库分类:
   * 1,自定义库
   * 2,系统内置的库:import 'dart:xxx'
   * 3,第三方库,托管到pub包管理系统中的
   * 第三方库可以从下面的地址中寻找:
   * https://pub.dev/packages
   * 
   * 使用第三方库按照下面步骤:
   * 1,创建pubspec.yaml文件
   * 2,配置pubspec.yaml文件
   * 3,运行put get获取远程库
   * 5,看文档引入库使用
   */
}  

con

扫码关注公众号,有更多精彩文章等你哦

file

[转载]原文链接:https://segmentfault.com/a/1190000020899049

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-78815.html

文章标题:flutter从入门到精通二

相关文章
Ajax入门手册chm
下载地址:Ajax入门手册chm ...
2015-11-12
jscript读写二进制文件的方法
本文实例讲述了jscript读写二进制文件的方法。分享给大家供大家参考。具体实现方法如下: var bin = new Array(256); for(var i=0;i&lt;256;i++){ bin[i]=String.fromC...
2017-03-22
node.js读取文件到字符串的方法
本文实例讲述了node.js读取文件到字符串的方法。分享给大家供大家参考。具体分析如下: Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。比较独特的是,Node.js会假设你是在POSIX环境...
2017-03-27
HTML5之WebSocket入门3 -通信模型socket.io
socket.io为什么会诞生呢?请看下面文字说明。 为什么需要socket.io? node.js提供了高效的服务端运行环境,但是由于浏览器端对HTML5的支持不一,为了兼容所有浏览器,提供卓越的实时的用户体验,并且为程序员提供客户端与服...
2017-03-29
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
大家在做些页面的时候,很多都是用ajax实现的,在显示的时候有很多表单提交的add或者update操作,显然这样很烦,突然想到了一个比较好的方法,下面给大家分享下如何用js 实现依赖注入的思想,后端框架思想搬到前端来。 应用场景: 前后端一...
2017-03-29
javascript实现倒计时(精确到秒)
代码相当简单实用,这里就不多废话了,小伙伴们简单看下就能明白 &lt;!DOCTYPE html PUBLIC &quot;-&#x2F;&#x2F;W3C&#x2F;&#x2F;DTD XHTML 1.0 Transitional&#x2...
2017-03-25
JS简单实现城市二级联动选择插件的方法
本文实例讲述了JS简单实现城市二级联动选择插件的方法。分享给大家供大家参考。具体如下: js实现的城市联动选择菜单,网上经常见到,不多介绍了,本款城市选择菜单原型基于Select,主要使用JavaScript来实现,运用了数组和循环等基础技...
2017-03-29
JavaScript实现滑动到页面底部自动加载更多功能
话不多说,请看代码: &#x2F;&#x2F;滚动条到页面底部加载更多案例 $(window).scroll(function(){ var scrollTop = $(this).scrollTop(); &#x2F;&#x2F...
2017-03-17
js+html5绘制图片到canvas的方法
本文实例讲述了js+html5绘制图片到canvas的方法。分享给大家供大家参考。具体实现方法如下: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;body&gt; &lt;canvas id=&quot;m...
2017-03-24
在flutter中判断平台,获取设备信息
在生产环境app的开发过程中,获取设备信息是必不可少的一步,本文详细介绍在flutter中如何判断平台是android还是ios,并使用开源库device_info获取android和ios的设备信息。 判断平台 这步很简单,导入平台Pla...
2018-05-18
回到顶部