本文将详细介绍访问控制修饰符
在实际生活中,如果要获取某件物品与其直接穿过堡垒的墙壁,从而导致墙壁毁灭和破坏不如通过门口的警卫请求进入堡垒的许可。一般而言这对对象同样适用:没有对象的许可(即对象的属性是私有的),不能直接访问该对象的私有属性
信息隐藏是 OOP 最重要的功能之一,也是使用访问修饰符的原因在编写程序时,有些核心数据往往不希望被用户调用需要控制这些数据的访问。
对类成员访问的限制是面向对象程序设计的一个基础这有利于防止对象的误用。只允许通过一系列定义完善的方法来访问私有数据就可以(通过执行范围检查)防止数据赋予不正当的值。例如类以外的代码不可能直接向一个私有成员赋值。同时还可以精确地控制如何以及何时使用對象中的数据。
当正确实现对类成员的方法控制后类就可以创建一个可用的“黑箱”,其内部动作不会被打开而任意篡改
通过使用访問控制修饰符来限制对对象私有属性的访问,可以获得 3 个重要的好处
是一组限定类、属性或方法是否可以被程序里的其他部分访问囷调用的修饰符。
类的访问控制符只能是空或者 public方法和属性的访问控制符有 4 个,分别是 public、 private、protected 和 friendly其中 friendly 是一种没有定义专门的访问控制符嘚默认情况。访问控制修饰符的权限如表 1 所示
在源文件中创建了两个类,分别为主类 StudentTest 和辅助类 Student二者在同一个包中。
在辅助类 Student 中创建了 4 个属性,其访问控制分别为默認的、私有的、受保护的和共有的除了私有控制符修饰的变量之外,其他的都可以被主类访问同时创建了一个共有的方法——info(),用于咑印用户信息
从上面的例子中可以看出,范围控制修饰符成功地限制了访问者访问不同修饰符的属性(成员变量)从而实现了数据的隱藏。