Dart中在一个类里访问另一个类的命名构造函数很正常,但是我想让这一个类的命名构造函数不被外界访问,习惯了java的我马上就想到了private关键字,但是这是dart,没有类似javaprivateprotectedpublic关键字。但是要实现私有字段和私有方法,直接在加上_前缀即可。

    加上_前缀就可以与外界隔离了吗?

    其实并不是,_并不是从class级别去限制,而是从package级别去限制的,例如:

    1. class Person {
    2. String? _name;
    3. String get name => _name ?? "";
    4. set name(String value) {
    5. _name = value;
    6. }
    7. void _eat() {
    8. print('eat...');
    9. }
    10. }
    11. main(){
    12. var p = Person();
    13. print(p._name);
    14. p._eat();
    15. }

    在同一个package下,还是能访问到的。所以,你知道该怎么用了吗?