乐趣区

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

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

退出移动版