flutter从入门到精通二

静态方法和静态属性(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

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

原文链接:segmentfault.com

上一篇:web前端面试题-CSS篇(持续更新...)
下一篇:前端路由Hash与History模式

相关推荐

  • 鸡啄米:C++编程入门系列之前言

    从今天开始将给大家讲解一些C编程入门的知识,对于也是个温习巩固的过程。将会用深入浅出的方式,尽量用最简单的语言让读者学会C语言,并爱上这门语言。         本前言讲述的是编程语言的发展过程、面...

    2 个月前
  • 高频数据交换下Flutter与ReactNative的对比

    (标题图片来自网络,侵删) 后端使用go写的socketio服务模拟期货行情数据,每10ms推送10条行情数据 ReactNative已经尽力优化了。 Flutter由于没fluttersock...

    2 年前
  • 首发 | 闲鱼公开多年 Flutter 实践经验

    (https://img.javascriptcn.com/7f312df423086aca9f69ec144384ad5f) 阿里妹导读:Flutter从诞生到现在,已经成为了跨端开发的领跑者。

    7 个月前
  • 静态类型检测器—Flow入门

    介绍 一个 JAVASCRIPT 静态类型检测器 Flow 使用类型接口查找错误,甚至不需要任何类型声明。 它也能够准确地跟踪变量的类型,就像运行时那样 Flow 专为 JavaSc...

    2 年前
  • 静态类型检查—Flow入门

    介绍 一个 JAVASCRIPT 静态类型检测器 Flow 使用类型接口查找错误,甚至不需要任何类型声明。 它也能够准确地跟踪变量的类型,就像运行时那样 Flow 专为 JavaSc...

    2 年前
  • 零基础HTML玩家的Bootstrap入门第一课(保证学会!)

    零、前言 image.png(/public/upload/d444c0d9733424806be091a5b4e7d5b2) 又看着熟悉的Bootstrap3的网站,想起去年自己刚来时举步维...

    8 天前
  • 零基础HTML玩家的Bootstrap入门第一课(保证学会!)

    零、前言 image.png(/public/upload/5c6b8112ead36554424d78067bf9285e) 又看着熟悉的Bootstrap3的网站,想起去年自己刚来时举步维...

    17 小时前
  • 闲鱼基于Flutter的移动端跨平台应用实践

    (https://img.javascriptcn.com/236544346eb00808bf4656b59db1dfcf)作者|王树彬编辑|覃云本文来自阿里巴巴闲鱼无线技术专家王树彬在今年 GMT...

    2 年前
  • 通过 Web 控制蓝牙设备:WebBluetooth入门

    翻译:疯狂的技术宅 原文:https://www.smashingmagazine....(https://www.smashingmagazine.com/2019/02/introductio...

    1 年前
  • 选择一种适合你的学习方式入门前端

    对于前端入行现在大概有这么几种:1.大学里修前端课程,2.查资料看视频自学前端,3.参加前端培训。 对于这三种学习方式,自学前端是属于最难的一种,咱们先简单的说一下另外两种方式,然后我再着重说下自学...

    2 年前

官方社区

扫码加入 JavaScript 社区