Dart和其他面向对象语言不一样,Data中没有 public private protected这些访问修饰符合
但是我们可以使用 _ 把一个属性或者方法定义成私有。
1、新建lib/Animal.dart
class Animal{
late String _name; //私有属性
late 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(); //类里面方法的相互调用
}
}
2、main.dart中引入lib/Person.dart
import 'lib/Animal.dart';
void main(){
Animal a=new Animal('小狗', 3);
print(a._name) //错误:类外部没法访问私有属性
a._run() //错误:类外部没法访问私有方法
print(a.getName()); //正确:通过公有方法访问私有属性
a.execRun(); //正确:间接的调用私有方法
}