Dart和其他面向对象语言不一样,Dart中没有,public private protected这些访问修饰符,可以定义变量私有,公有或者保护。
利用_(下划线)将一个属性或者方法定义成私有。
(抽离在单独文件,私有属性和方法调用没有效果,需要间接调用才有效果。)
写在main中的类,私有/公有都可以调用
class Animal {
String _name;
int age;
// 默认构造函数的简写
Animal(this._name,this.age);
void PrintInfo(){
print("${this._name}----${this.age}");
}
}
void main(){
Animal p1 = new Animal('小狗',3);
p1.PrintInfo();
}
小狗----3
抽离class
class Animal {
String _name;
int age;
// 默认构造函数的简写
Animal(this._name,this.age);
void PrintInfo(){
print("${this._name}----${this.age}");
}
// 公有方法 间接访问私有属性
String getName(){
return this._name; // 私有属性在当前类里使用
}
// 公有方法 间接访问私有方法
void _run(){
print("私有方法,公有方法调用");
}
execRun(){
this._run(); // 类里面方法的相互调用
}
}
void main(){
Animal p1 = new Animal('小狗',3);
print(a.age); // 直接访问age公有属性
print(a.getName()); // 间接访问_name私有属性
a.execRun(); // 间接访问_run私有方法
}
3
小狗
私有方法,公有方法调用