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();
以上两种情况相等
}