• java中4种修饰符访问权限的区别及详解全过程---转载


    java中4种修饰符访问权限的区别及详解全过程

    http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html

       java中4中修饰符分别为public、protect、default、private,他们这就说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高。

        下面详细讲述下它们的访问权限问题。(同一个类中除内部类外所有修饰符都是可以访问的,所以下面排除这种情况。)

        首先在这里把它们的访问权限表示出来:

        访问权限   类   包  子类  其他包

        public     ∨   ∨   ∨     ∨

        protect    ∨   ∨   ∨     ×

        default    ∨   ∨   ×     ×

        private    ∨   ×   ×     ×

        下面做进一步说明java中4种修饰符访问权限的区别及详解全过程:

    工具/原料

    • java运行环境

    • Notepad++

    方法/步骤

    1.  

      首先,说明public的权限问题,定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:当重写父类成员函数时,子类的成员函数不能比父类的成员函数权限小,一般重写把权限定义相同即可。

      代码如图所示:

       
       
       
       
       
       
       
       
       
    2.  

      上边把类都建好了,然后开始测试,如果均能编译通过,就说明用public修饰的类在本类、同包、子类、其他包中互相访问都是可以的。测试结果如下:(事实证明可以访问)

    3.  

      再来说明protect权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:public可以修饰任何类而且类名要与文件名相同,protected不可以修饰类。

      Person代码如图所示,其他3个类同上:

    4.  

      同样开始测试protected权限问题,如果Person、People、Student能编译通过,就说明用protected修饰的类在本类、同包、子类中互相访问都是可以的,而Computer编译不通过说明protected不可以在包外没有继承关系的类中互相访问。测试结果如下:

    5.  

      接着说明default权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:default(不写默认指定default)同public一样可以修饰任何类而且类名要与文件名相同。

      Person代码如图所示,其他3个类同上:

    6.  

      继续开始测试default权限问题,如果Person、People能编译通过,就说明用default修饰的类在本类、同包中互相访问都是可以的,而Student、Computer编译不通过说明default不可以在包外不管有没有继承关系的类都不可以互相访问。测试结果如下:

    7.  

      最后说明private权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。

      这里要注意:private同protected一样不可以修饰类。

      Person代码如图所示,其他3个类同上:

    8.  

      最后测试private权限问题,private意思是私有的,如果Person能编译通过而People、Student、Computer编译不通过,就说明用private修饰的类只能在本类中访问。测试结果如下:

    9.  

      综上所述,java中4种修饰符访问权限的区别及详解全过程就此演示完了,再一次说明java语言的严谨性和安全性,我们在以后使用这4中修饰符时创建一个类,这个类的权限尽量要小,这样才能减少漏洞和提高安全性,从而体现java面向对象的封装性。

      最后如图再回忆一下java中4个修饰符的访问权限:

  • 相关阅读:
    HDU 2809 God of War(DP + 状态压缩)
    POJ 3311 Hie with the Pie(DP状态压缩+最短路径)
    HDU 1400 (POJ 2411 ZOJ 1100)Mondriaan's Dream(DP + 状态压缩)
    位运算的应用
    ZOJ 3471 Most Powerful(DP + 状态压缩)
    POJ 2039 To and Fro(模拟)
    UVA 10817 Headmaster's Headache(DP +状态压缩)
    黑子的篮球
    POJ 1564(HDU 1258 ZOJ 1711) Sum It Up(DFS)
    HDU 3006 The Number of set(位运算 状态压缩)
  • 原文地址:https://www.cnblogs.com/lnn123/p/10307846.html
Copyright © 2020-2023  润新知