Dart static
static关键字用来指定静态成员
- 通过static声明的属性是静态属性
- 通过static申明的方法是静态方法
静态成员可以通过类名直接访问(不用实例化)
- 实例化对象会消耗资源,声明静态成员,可以提高程序运行的性能
静态方法不能访问非静态成员,非静态成员可以访问静态成员
- 静态方法中不能访问this关键字
- 不能通过this关键字来访问静态属性
class Person {
static String name = '张三';
int age = 10;
static getName() {
//print(this.age); //不能通过this关键字直接进行访问
print(name);
//静态方法中不能访问非静态的属性
//print(age);
//静态方法不能访问非静态方法
// findName();
}
findName() {
print(name);
print(age);
//非静态方法中可以访问非静态方法
getName();
}
}
void main(List<String> args) {
//静态成员可以直接通过类名进行访问
print(Person.name);
//静态方法也可以直接通过类名进行访问
print(Person.getName());
//不能通过类名称直接访问非静态方法
// print(Person.findNmae());
//实例化后不能访问静态属性
var p = new Person();
// print(p.name);
p.findName();
}