美文网首页
Dart/Flutter基础-对象和静态

Dart/Flutter基础-对象和静态

作者: SoundYoung | 来源:发表于2019-08-16 11:11 被阅读0次
class Person {

  //静态成员,静态方法

  static String name = '张三';

  String age = "20";

  static get sex{

    return '男';

  }

  static void method2 (){

    // prinInfo();//静态方法无法访问非静态的方法

    // String str = age;//静态方法无法访问非静态的属性

  }

  void prinInfo () {

    print(name);//非静态方法可以访问静态的成员变量

    print(sex);//非静态方法可以访问静态的方法

  }

}

// main() {

//  print(Person.name);//静态成员使用不需要new一个实例出来

//  print(Person.sex);//静态方法同理,上面的get,是dart的一种写法,方法名后面不写()

// }

/**

* dart中的对象运算符

* ?条件运算符(了解)

* as 类型转换

* is 类型判断

* .. 级联操作(连缀)

*

*/

class Animal{

  String name;

  String legnum;

  Animal(this.name,this.legnum);

  void printInfo (){

    print('${this.name}${this.legnum}');

  }

}

main() {

  //?运算符

  Animal animal;

  animal?.printInfo();//因为animal没有实例化,animal.prinInfo()肯定会报null异常,但是用?.去调用

  //会先判断animal这个对象是否为空,如果为空不往下执行

  //as表示强制转换

  var person = '我是字符串';

  (person as  Animal).printInfo();//把person强制转换成了Animal,并调用方法,person本是string类型

    //is

    if(person is Animal){

      print('人被转换成了动物');

    }

    //..

    Animal animal2 = new Animal('大象', '有四条腿');

    animal2.name = '鸭子';

    animal2.legnum= '有两条腿';

    animal2.printInfo();

    //上面的三行代码可以用..级联运算符实现 效果一样

    animal2..name='青蛙'

          ..legnum='有四条腿'

          ..printInfo();



}

相关文章

网友评论

      本文标题:Dart/Flutter基础-对象和静态

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