• 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

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

    file

  • 相关阅读:
    算法分析(3)——冒泡排序真的慢吗?
    算法分析(2)——大O和大Θ
    算法分析(1)——数据的影响和函数的增长
    递归的逻辑(5)——米诺斯的迷宫
    递归的逻辑(4)——递归与分形
    李洪强和你一起学习前端之(9)规避脱标,CSS可见性,滑动门案例
    iOS应用管理(优化)
    iOS开发-应用管理
    iOS开发-Tom猫
    iOS 10.3.3 更新背后的故事
  • 原文地址:https://www.cnblogs.com/tangkaizhen/p/11791378.html
Copyright © 2020-2023  润新知