Dart 中的 static 关键字
重要点归纳
- 使用 static 关键字来实现类级别的变量和函数
- 静态成员不能访问非静态成员( static 关键字修饰的成员 不能访问 非 static 关键字修饰的成员)
- 非静态成员可以访问静态成员
- 类中的常量是需要使用 static const 声明
测试的基础源码
class Page{
int currentPage = 1;
void scorllDown(){
currentPage = 1;
print("ScrollDown...");
}
void scorllUp(){
currentPage ++;
print("ScrollUp...");
}
}
void main(List<String> args) {
var page = new Page();
}
报错说明
图:错误的 static 访问
报错一
static 修饰的静态变量不能访问 非static 修饰的成员
currentPage++;
正确的访问方式:
class Page{
// 添加 static 关键字
static int currentPage = 1;
static void scorllDown(){
currentPage = 1;
print("ScrollDown...");
}
void scorllUp(){
currentPage ++;
print("ScrollUp...");
}
}
报错二
static 修饰的成员方法为类级别的,不能通过这样子访问
page.scrollDown();
正确的访问方式:
class Page{
static int currentPage = 1;
static void scorllDown(){
currentPage = 1;
print("ScrollDown...");
}
void scorllUp(){
currentPage ++;
print("ScrollUp...");
}
}
void main(List<String> args) {
var page = new Page();
// 此处修改
Page.scorllDown();
}
报错三
图:类中的常量 需要使用 static const 来声明
正确处理方式:
class Page{
// 添加 static 关键字
static const int maxPage = 10;
static int currentPage = 1;
static void scorllDown(){
currentPage = 1;
print("ScrollDown...");
}
void scorllUp(){
currentPage ++;
print("ScrollUp...");
}
}