avatar

dart基础/静态成员-方法

静态成员,静态方法

dart 中的静态成员

  1. 使用 static 关键字来实现类级别的变量和函数
  2. 静态方法不能访问非静态成员, 非静态方法可以访问静态成员
  3. 静态方法不能在类的实例上使用, 因此无法访问 this(this 值得是类的实例)
  4. 静态变量对于类级别的状态是非常有用的。
  5. 静态变量在被使用的时候才被初始化。

用一个例子来解释和说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Person{
// 静态属性
static String name ="小明";
// 非静态属性
int age;

// 默认调用的构造函数
Person(name,this.age);


// 静态方法
static void getInfo(){
print(name);


// 静态方法不能调用非静态属性或方法
// 静态方法中不能使用this
// print("${name}:${this.age}"); // 报错
// this.setName(); // 报错
}

// 非静态方法
void setName(){
// 非静态方法可以调用静态属性或方法,调用的使用不需要通过this调用
print("${name}:${this.age}");
getInfo();
}
}

void main(){

Person student = new Person("小明", 8);
// 使用类调用静态方法,
Person.getInfo(); // 小明

// 实例调用非静态方法, 非静态方法可以调用静态方法
student.setName();
/*
* 小明:8
* 小明
* */
}

总结

通过类直接调用的是–>静态

通过实例调用的是–>非静态

文章作者: 小黑
文章链接: http://ynxh.xyz/2023/01/17/dart基础/静态成员-方法/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小黑的小站
打赏
  • 微信
    微信
  • 支付寶
    支付寶
2