推荐答案
在 Dart 中,类的成员变量可以通过以下方式定义:
// www.javascriptcn.com code example
class MyClass {
// 实例变量
int instanceVariable = 0;
// 静态变量
static int staticVariable = 0;
// 私有实例变量(以下划线开头)
int _privateInstanceVariable = 0;
// 私有静态变量(以下划线开头)
static int _privateStaticVariable = 0;
}本题详细解读
实例变量
实例变量是属于类的实例的变量,每个类的实例都有自己的一份实例变量。实例变量可以通过类的实例访问。
class MyClass {
int instanceVariable = 0;
}
void main() {
var obj = MyClass();
print(obj.instanceVariable); // 输出: 0
}静态变量
静态变量是属于类本身的变量,而不是类的实例。静态变量在类的所有实例之间共享。可以通过类名直接访问静态变量。
class MyClass {
static int staticVariable = 0;
}
void main() {
print(MyClass.staticVariable); // 输出: 0
}私有变量
Dart 中没有真正的私有变量,但可以通过在变量名前加下划线 _ 来表示该变量是私有的。私有变量只能在定义它的库中访问。
// www.javascriptcn.com code example
class MyClass {
int _privateInstanceVariable = 0;
void printPrivateVariable() {
print(_privateInstanceVariable); // 可以在类内部访问私有变量
}
}
void main() {
var obj = MyClass();
// print(obj._privateInstanceVariable); // 错误:无法在类外部访问私有变量
obj.printPrivateVariable(); // 输出: 0
}静态私有变量
静态私有变量与私有实例变量类似,但它们是静态的,只能在定义它们的库中访问。
// www.javascriptcn.com code example
class MyClass {
static int _privateStaticVariable = 0;
static void printPrivateStaticVariable() {
print(_privateStaticVariable); // 可以在类内部访问静态私有变量
}
}
void main() {
// print(MyClass._privateStaticVariable); // 错误:无法在类外部访问静态私有变量
MyClass.printPrivateStaticVariable(); // 输出: 0
}