static关键字用于全局数据成员的内存管理。 static 关键字可以应用于类的字段和方法。静态变量和方法是类的一部分,而不是特定实例。
- static 关键字用于类级别的变量和方法,对于类的每个实例都是相同的,这意味着如果数据成员是静态的,则可以在不创建对象的情况下访问它。
- static 关键字允许数据成员在类的不同实例之间保留值。
- 无需创建类对象来访问静态变量或调用静态方法:只需将类名放在静态变量或方法名之前即可使用它们。
Dart静态变量
静态变量属于类而不是特定实例。静态变量对类的所有实例都是通用的:这意味着只有静态变量的一个副本在类的所有实例之间共享。静态变量的内存分配在类加载时只在类区域中发生一次。
声明静态变量
可以使用 static 关键字声明静态变量,后跟数据类型,然后是变量名
Syntax: static [date_type] [variable_name];
访问静态变量
静态变量可以直接从类名本身访问,而不是创建它的实例。
Syntax: Classname.staticVariable;
Dart静态方法
静态方法属于 ta 类而不是类实例。静态方法只允许访问类的静态变量,并且只能调用类的静态方法。通常,当我们希望在不需要创建实例的情况下被其他类使用时,实用方法被创建为静态方法。
声明静态方法
可以使用 static 关键字、返回类型和方法名称来声明静态方法
Syntax:
static return_type method_name()
{
// Statement(s)
}
调用静态方法
静态方法可以直接从类名本身调用,而不是创建它的实例。
Syntax: ClassName.staticMethod();
示例 1:
Dart
// Dart Program to show
// Static methods in Dart
class Employee {
static var emp_dept;
var emp_name;
int emp_salary;
// Function to show details
// of the Employee
showDetails() {
print("Name of the Employee is: ${emp_name}");
print("Salary of the Employee is: ${emp_salary}");
print("Dept of the Employee is: ${emp_dept}");
}
}
// Main function
void main() {
Employee e1 = new Employee();
Employee e2 = new Employee();
Employee.emp_dept = "MIS";
print("GeeksforGeeks Dart static Keyword Example");
e1.emp_name = 'Rahul';
e1.emp_salary = 50000;
e1.showDetails();
e2.emp_name = 'Tina';
e2.emp_salary = 55000;
e2.showDetails();
}
Dart
// Dart program in dart to
// illustrate static method
class StaticMem {
static int num;
static disp() {
print("#GFG the value of num is ${StaticMem.num}") ;
}
}
void main() {
StaticMem.num = 75;
// initialize the static variable }
StaticMem.disp();
// invoke the static method
}
输出:
示例 2:
Dart
// Dart program in dart to
// illustrate static method
class StaticMem {
static int num;
static disp() {
print("#GFG the value of num is ${StaticMem.num}") ;
}
}
void main() {
StaticMem.num = 75;
// initialize the static variable }
StaticMem.disp();
// invoke the static method
}
输出:
#GFG the value of num is 75