美文网首页
flutter学习笔记一

flutter学习笔记一

作者: B_f773 | 来源:发表于2019-04-11 15:40 被阅读0次

dart

修饰词--------------------------------------------------------
  • 被“const”修饰的值为 编译时常量
    被 “var”修饰的值为 变量
    被“final”修饰的值为 常量
    被“dynamic”修饰的值 不指定类型 - “Object”也表示类型不明确
    被“Function”修饰的函数可传递,可赋值
类型--------------------------------------------------------
  • 数值变量int\double拥有同一父类为num
    字符串变量string 能在${ }中直接引用变量
var str = "在字符串中加入变量${int}"

数组集合List可存入多种类型(因为list默认泛型为object,指定泛型后不能存入其他泛型)

List arr = new List();
arr.add("0");
arr.add(12);
特殊符号--------------------------------------------------------
  • _ (下划线)前缀标识符会强制变为私有。
class User{
  int _num;//私有变量
  _User(){} //私有构造
  User _newInstance(){}//私有方法
}

使用''' '''放入多行内容

'''
就像java中使用多行注释一样的效果
这里
可以
随意
换行
'''
类的构造函数--------------------------------------------------------
// 1、和java中构造函数一样
class User{
  String name;
  String psw; 
  User(String str1, String str2) {
    name = str1;
    psw = str2;
  }
}

//2、如传入参数与定义参数相同,无法赋值步骤
class User{
  String name;
  String psw; 
  User(String name, String psw) {
    name = name;
    psw = psw;
  }
}

//3、构造函数传值可选传
class User{
  String name;
  String psw; 
  User({String name, String psw}) {
    name = name;
  }
}

//4、创建指定传参的构造函数
class User{
  String name;
  String psw; 
  User.name(String name);
}

//5、在初始化构造中给变量赋值
class User{
  String name;
  String psw; 
  User.name(String name);
  User.init():name="lisa", psw="123";
}

//6、在重定向构造中给变量改值
class User{
  String name;
  String psw; 
  User.name(String name);
  User.init():name="lisa", psw="123";
  User.forword():this.name("aya");
}

//7、常量构造函数 
class User{
  final String name;
  final String psw; 
  User(String name, String psw) ;
}

//8、工厂模式构造函数
class User{
  String name;
  String psw;
  User.instance(this.name);
  static final Map<String, User> cacheMap = new Map<String, User>();

  factory User(String name){
    if(cacheMap.containsKey(name)){
      return cacheMap[name];
    } else {
      cacheMap[name] = User.instance(name);
      return cacheMap[name];
    }
  }
}
抽象类--------------------------------------------------------
  • 使用 abstract 修饰类
abstract class Person{
  String name;
  int age;
  Person(this.name, this.age);
  void printName();
}

子类继承抽象类

class Student extends Person{
  Student(String name, int age) : super(name, age);
  @override
  void printName() {
    // TODO: implement printName
    print("-----------------------------------" + name + age.toString());
  }
}

创建子类,调用方法

void main(){
  try{
    Student student = new Student("list", 12);
    student.printName();
    //输出  -----------------------------------list12
  }catch(e){
    print(e);//输出-->异常:分母不可以为0
  }
}
接口--------------------------------------------------------
  • 创建接口
class TextListener{
  void call(){
    print("接口回调----------------------成功");
  }
}
  • 直接调用接口listener() = call()
void main(){
  try{
    TextListener  listener = new  TextListener();
    listener();//输出: 接口回调----------------------成功
  }catch(e){
    print(e);//输出-->异常:分母不可以为0
  }
}
  • 或创建子类,实现接口
class TextWidget implements TextListener{
  @override
  void call() {
    // TODO: implement textCall
    print("接口回调----------------------成功");
  }
}

调用子类

void main(){
  try{
    TextWidget text = new TextWidget();
    text.call();
  }catch(e){
    print(e);//输出-->异常:分母不可以为0
  }
}

相关文章

网友评论

      本文标题:flutter学习笔记一

      本文链接:https://www.haomeiwen.com/subject/klfhlqtx.html