将类设为私有并不会使其成员私有,也不会使该类的实例不可访问.
假定
lib/private_class.dart
个
class Foo {
final _PrivateClass privateClass = _PrivateClass();
}
class _PrivateClass {
String publicFoo = 'foo';
String _privateBar = 'bar';
}
bin/main.dart
import 'package:so_53495089_private_field_in_private_class/private_class.dart';
main(List<String> arguments) {
final foo = Foo();
print(foo.privateClass.publicFoo);
// print(foo.privateClass._privateBar); // invalid because of ._privateBar
}
不能声明私有类类型的变量或参数,也不能在另一个库中扩展或实现该类,也不能创建该类的实例,
因此,如果假设该字段对API用户隐藏(内部状态),则将该字段设为私有.