dart系列

Dart7(七)静态成员 操作符

2020-06-29  本文已影响0人  Kernel521

一、静态成员

1、使用static关键字来识现类级别的变量和函数
2、静态方法不能访问非静态成员,非静态方法可以访问静态成员

class Person {
  static String name = “张三”;
  static void show() {
    print( name );
  }
}
void main () {
  print( Person.name )
  print( Person.show )
}

非静态方法可以访问静态成员的时候,可以直接写属性或方法,不需要用this

二、对象操作符

1、?条件运算符 (了解)

class Person {
  String  name;
  num age;
  Person( this.name, this.age );
  void printInfo () {
    print( "${this.name} ---${ this.age} " )
  }
}
void main () {
  Person.p;
  p.printInfo (); // 报错
  p?.printInfo (); 如果p不存在 就不执行函数
}

2、as 类型转换

class Person {
  String  name;
  num age;
  Person( this.name, this.age );
  void printInfo () {
    print( "${this.name} ---${ this.age} " )
  }
}
void main () {
  var p1 = "";
  p1 = new Person( ' 张三 ',20) 
  ( p1 as Person ).printInfo(); // 此时不知道p1是什么类型,老版本中需要将其转换为 person,方可使用
}

3、is 类型判断

var str = 1234;
if(str is String) {
  print("string")
} else if(str is Int) {
  print("int")
} else {
  print("其他类型")
}

4、..级联操作 (连缀)

class Person {
  String  name;
  num age;
  Person( this.name, this.age );
  void printInfo () {
    print( "${this.name} ---${ this.age} " )
 }  
}
void main () {
  Person p1 = new Person( ' 张三 ',20);
  p1.printInfo();  
  p1.name = "里斯";     p1..name = "李四"
  p1.age = 40;                  ..age=50
  p1.printInfo();                ..printInfo();
  以上两种情况相等
}
上一篇下一篇

猜你喜欢

热点阅读