摘要
对于很多JavaScript开发者来说,权限修饰符可能一点概述都没有(现阶段的版本中暂未出现)。但是,做为JavaScript的超级TypeScript中便已弥补了这个缺陷。同样的,PHP语言本身也具备权限修饰符。
虽然很多人可能听说过权限修饰符,但是究竟有何区别可能并不十分了解。今天,笔者就来详细解说一下public、private、protected三者的区别。
对于很多JavaScript开发者来说,权限修饰符可能一点概述都没有(现阶段的版本中暂未出现)。但是,做为JavaScript的超级TypeScript中便已弥补了这个缺陷。同样的,PHP语言本身也具备权限修饰符。
虽然很多人可能听说过权限修饰符,但是究竟有何区别可能并不十分了解。今天,笔者就来详细解说一下public、private、protected三者的区别。
1、public:表示公有的(是大多数语言的默认权限修饰符),被声明为public的成员,能被外部代码访问和操作,相当于“公有财产”。
2、private:表示私有的,被声明为private的成员对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。相当于“私有财产”。
3、protected:表是受保护的,被声明为protected的成员,只允许该类自己和子类进行访问。相当于“遗产”。
说完了区别,对于大部分人来说都会有这样一个疑问——如何使用public、private、protected这三个权限修饰符?
简单来说:构建一个类时,对外提供的调用接口用public,用到的数据变量或者function不是接口的就用private,如果涉及到多个类有了继承关系,子类需要继承或者父类需要访问的,声明为protected。
综上所述,我们可以看出public、private、protected三种权限修饰符的访问控制权限是有高有低的。并且private修饰的成员属性或成员方法访问权限是最低的。实际操作中,我们也是将类中的成员属性全部用private修饰符进行修饰,然后通过construct()方法对成员属性赋值,仅提供公共接口与外部联系。
因此,使用的时候,我们只需要抓住每一个权限修饰符自己的“作用域”便可以灵活搭配。