关于变量的访问权限

关于变量的访问权限,第1张

成员变量的访问权限
访问权限修饰符声明了成员变量的访问权限。


面向对象程序设计语言Java/C++提供的显示的访问权限修饰符有3种,分别是:私有(private)、保护(protected)和公共(public)。


将被这些修饰符所修饰的变量分别称为私有成员变量、被保护的成员变量和公共成员变量。


下面分别讨论各个修饰符的用法。



1.公共变量
凡是被public修饰的成员变量,都称为公共变量,它可以被任何类所访问。


即允许该变量所属的类中所有方法访问,也允许其他类在外部访问。



注:用public修饰的变量,允许任何类在外部直接访问,这破坏了封装的原则,造成数据安全性能下降,所以除非有特别的需要,否则不要使用这种方案。


2.私有变量
凡是被private修饰的成员变量,都称为私有变量。


它只允许在本类的内部访问,任何外部类都不能访问它。


  • 在C++中提供了友元类、友元函数,如果将某一个类声明为私有成员变量所在类的友元类,那么该友元类可以访问该类的私有成员变量
  • 在Java中为了让外部用户能够访问某些私有变量,通常类的设计者会提供一些方法给外部调用,这些方法被称为访问接口。


    下面是一个改写过的declarePrivate类。


public class declarePrivate{
    private int privateVar=10; //定义一个私有变量 
    void change(){
       privateVar=20;
    }
    public int getPrivateVar(){ //定义一个接口,返回私有变量       privateVar的值
    return privateVar;
    }
    public boolean setPrivateVar(int value){ //定义一个接口,可以设置privateVar
的值
//可以在这里先检测value是否在允许的范围内,然后再执行下面的语句。


privateVar = value; return true; } }

私有变量很好地贯彻了封装原则,所有的私有变量都只能通过程序员设计的接口来访问,任何外部使用者都无法直接访问它,所以具有很高的安全性。


但是,在下面这两种情况下,需要使用Java另外提供的两种访问类型:
通过接口访问私有变量,将降低程序的性能,在程序性能比较重要的情况下,需要在安全性和效率间取得一个平衡。



私有变量无法被子类继承,当子类必须继承成员变量时,需要使用其他的访问类型。


3.保护变量
凡是被protected修饰的变量,都被称为保护变量。


除了允许在本类的内部访问之外,还允许它的子类以及同一个包中的其他类访问。


子类是指从该类派生出来的类。


————————————————
参考原文链接:https://blog.csdn.net/athenamax/article/details/7627144

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/621733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-15
下一篇 2022-04-15

发表评论

登录后才能评论

评论列表(0条)

保存