在进行面向对象的程序设计时,如何使某些类对象的数据和成员不被其他对象访问,以保证数据的隐私,实现信息隐藏,在Java语言中引入了“访问控制修饰符”的概念,通过修饰符的限定使得信息隐藏得以实现。
Java语言中的访问控制符有public、friendly、protected和private。
1.public访问控制符
一个类被声明为公共类,表明它可以被所有的其他类所访问和引用,这里的访问和引用是指这个类作为整体对外界是可见和可使用的,可以创建这个类的对象、访问这个类内部可见的成员变量和调用它的可见的方法。
一个类作为整体对程序的其他部分可见,并不能代表类内的所有属性和方法也同时对程序的其他部分可见,前者只是后者的必要条件,类的属性和方法能否被所有其他类访问,还要看这些属性和方法自己的访问控制符。
说明:类的属性尽可能不用public关键字,否则会造成安全性和数据封装的下降。
2.默认访问控制符
如果一个类没有访问控制符,说明它具有默认的访问控制符。这种默认的访问控制符规定该类只能被同一包中的类访问和引用,而不可以被其他包中的类使用,这种访问特性称为包访问性。通过声明类的访问控制符可以使整个程序结构清晰、严谨,减少可能产生的类间干扰和错误。
3.private私有访问控制符
用private修饰的属性或方法只能被该类自身所访问和修改,而不能被任何其他类,包括该类的子类获取和引用。
说明:private只能修饰属性和方法,而不能修饰类。
实现类时,我们使所有的数据字段都是私有的,因为公开的数据是危险的。对于方法又是什么情况呢?虽然大多数方法是公有的,但是也经常使用私有方法。这些私有的方法只能被该类自身调用。(www.daowen.com)
选择私有方法的种类有两种:
•与类的使用者无关的那些方法。
•如果类的实现改变了,不容易维护的那些方法。
4.protected访问控制符
用protected修饰的成员变量和方法可以被该类本身和它的子类所访问,使用protected修饰符的主要作用是允许其他包中的该类的子类来访问父类的特定属性。
protected关键字为我们引入了“继承”的概念,它以现有的类为基础,派生出具有新成员变量的子类,子类能继承父类的数据成员和方法,除private修饰的数据外。
说明:protected也只能修饰属性和方法,而不能修饰类。
4种访问控制符的访问权限如图4.2所示。
图4.2 访问控制符的访问权限
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。