Flutter

Flutter 类方法和基础语法(I)

2020-04-04  本文已影响0人  Harely

Dart 中所有的类都继承自 Object类。

类的方法

class Person {
  String name;
  int age;

  //默认构造函数只能写一个
  Person(this.name, this.age);
  /*
    ///实例化之前做的操作,实例化列表
    //遇上面的实例化只能存在一个
    Person(): name = "李白", age = 28 {
    print("实例化之前的操作:name: ${this.name}, age: ${this.age}");
  }
  */

  //命名构造函数可以写多个
  Person.info(){
    print("这个是命名构造函数");
  }

  void printInfo() {
      print("姓名: ${this.name}\n,年龄:${this.name},${20+80}");
    }
}


///调用
void testCustomClass() {
    print("<-----------------------------构造方法:start------------------------------>");
    Person person = Person("荆轲", 27);
    person.printInfo();
    Person person1 = Person.info();
    print("<-----------------------------构造方法:end------------------------------>");

}

打印:

flutter: <-----------------------------构造方法:start------------------------------>
flutter: 姓名: 荆轲,
         年龄:荆轲,100
flutter: 这个是命名构造函数
flutter: <-----------------------------构造方法:end------------------------------>
/// get 方法
  get getInfo{
    print("get 方法的书写格式, 要把()去掉,这是一个计算属性,一般是返回一个计算值");
    print("姓名: ${this.name},\n         年龄:${this.name},${20+80}");
    return 20 + 80;
  }
  
  
  /// set方法
  set userName(name) {
    print("set 方法: 设置 name");
    this.name = name;
  }


    ///调用get、set方法
    print("<-----------------------------start------------------------------>");
    person.userName = "嬴政";
    var length = person.getInfo;
    print("get 计算返回的长度是: ${length}\n\n");
    print("<-----------------------------end------------------------------>");

打印:

flutter: <-----------------------------start------------------------------>
flutter: set 方法: 设置 name
flutter: get 方法的书写格式, 要把()去掉,这是一个计算属性,一般是返回一个计算值
flutter: 姓名: 嬴政,
         年龄:嬴政,100
flutter: get 计算返回的长度是: 100
flutter: <-----------------------------end------------------------------>
///连缀书写
    print("<-----------------------------连缀书写:start------------------------------>");
    Person person = Person("荆轲", 27);
    person..name = "盘古"
          ..age = 30
          ..getInfo;
    print("<-----------------------------连缀书写:end------------------------------>");

打印:

flutter: <-----------------------------连缀书写:start------------------------------>
flutter: get 方法的书写格式, 要把()去掉,这是一个计算属性,一般是返回一个计算值
flutter: 姓名: 盘古,
         年龄:盘古,100
flutter: <-----------------------------连缀书写:end------------------------------>



子类(类的继承)

class Student extends Person {
  String sex;
  Student(String name, int age, String sex): super(name, age){
    this.sex = sex;
  }
  get getStudentInfo {
    print("学生信息:name:${this.name},  age:${this.age}, sex:${this.sex}");
  }
}

///调用
    print("<-------------------------------get 方法:start------------------------------->");
    Student student = Student("李白", 49, "中性");
    student.getInfo;
    print("<-------------------------------get 方法:start------------------------------->");

打印:

flutter: <-------------------------------get 方法:start------------------------------->
flutter: get 方法的书写格式, 要把()去掉,这是一个计算属性,一般是返回一个计算值
flutter: 姓名: 李白,
         年龄:李白,100
flutter: <-------------------------------get 方法:start------------------------------->

Flutter 特殊语法

    ///匿名方法
    var fn = (){
      print("我是匿名方法");
    };
    fn();

    var printNum = (int n){
      print("匿名方法带参数:($n+100)");
    };
    printNum(100);

打印:
flutter: 我是匿名方法
flutter: 匿名方法带参数:(100+100)

    ///箭头函数
    List listStr = ["吕布", "貂蝉", "诸葛亮", "曹操", "司马懿"];
    List listNum = [1, 3, 5, 8, 9, 12, 14, 18];

    listStr.forEach((value){
      print("$value");
    });
    //箭头后只有一行代码
    listStr.forEach((value)=> print("---->> $value"));
    listStr.forEach((value)=>{
      print("++++++>> $value")
    });

    var newListNum2 = listNum.map((value) => value > 2 ? value * 3 : value);
    print(newListNum2);

打印:

flutter: 吕布
flutter: 貂蝉
flutter: 诸葛亮
flutter: 曹操
flutter: 司马懿
flutter: ---->> 吕布
flutter: ---->> 貂蝉
flutter: ---->> 诸葛亮
flutter: ---->> 曹操
flutter: ---->> 司马懿
flutter: ++++++>> 吕布
flutter: ++++++>> 貂蝉
flutter: ++++++>> 诸葛亮
flutter: ++++++>> 曹操
flutter: ++++++>> 司马懿
flutter: (1, 9, 15, 24, 27, 36, 42, 54)
     ///自执行方法
    ((int n){
      print("自执行方法: $n");
    })(12);

打印:
flutter: 自执行方法: 12

    ///闭包
    fn1(){
      var a = 123;
      return(){
        print("闭包: $a");
      };
    }

    var b = fn1();//相当于把return内的函数赋值给了b
    b();
    b();
    b();

打印:

flutter: 闭包: 123
flutter: 闭包: 123
flutter: 闭包: 123
 T getData<T>(T value){
    return value;
  }


    ///范型
    print(this.getData("范型:value"));
    print(this.getData(1212341));
    print(getData<String>("泛型 傻逼"));

打印:

flutter: 范型:value
flutter: 1212341
flutter: 泛型 傻逼
上一篇下一篇

猜你喜欢

热点阅读