zoukankan      html  css  js  c++  java
  • (转)Java中的private、protected、public和default的区别

     1 访问修饰符

    1.1 理解

    默认什么都不加,就是default(不用把default写出来)。
    意思就是只能由跟这个类在同一个包中的类来访问,比private限制更少,但比protected限制更多。'

    Java访问修饰符包括private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java。

    Java访问修饰符就是确定类中属性或方法的访问权限,换句话说,就是这些属性和方法所起的作用范围。

    private,私有的访问权限,也是最严格的访问权限,仅只能在设置了该权限的类中访问,利用这个访问权限,表现出封装思想。

    default,默认的访问权限,也是可以省略的访问权限,它不仅能在设置了该权限的类中访问,也可以在同一包中的类或子类中访问。

    protected,受保护的访问权限,它除了具有default的访问权限外,还可以在不同包中所继承的子类访问。

    public,公有的访问权限,也是最宽松的访问权限,不仅可以是同一个类或子类,还是同一个包中的类或子类,又还是不同包中的类或子类,都可以访问。

    要想更深入地理解这些访问权限,一方面需要明白各自的作用域,另一方面更是要弄清楚各自所体现出来的编程思想,比方说,prvite表现的封装思想,public表现的面向接口编程的思想等。

    在面向对象设计和编程的过程中,归根结底就是类的设计。而要设计出不仅满足当前需求同时也能符合未来需求的类,就很有必要对类中属性和行为设置合适的访问
    权限。那些应该为私有的,那些又应该为公有的,还有那些又应该为受保护的等,都应该给予合理的规划和布局,一来保证程序的功能要求,二来要体现程序的扩展
    性能,三来要呈现程序友好性质。总之,程序应该更好地服务用户。而访问权限在这样宏伟目标里扮演着重要角色。

     

    1.2 理解

    下表为Java访问控制符的含义和使用情况


     类内部  本包  子类 外部包 
    public   √  √  √  √
    protected  √  √  √  ×
    default   √  √  ×  ×
     private  √  ×  ×  ×

     


     

    不写时默认为friendly 

     注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

    区别:

    (1)public:可以被所有其他类所访问。

    (2)private:只能被自己访问和修改。

    (3)protected:自身,子类及同一个包中类可以访问。

    (4)default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。


  • 相关阅读:
    【MySQL】MySQL之备份
    【MySQL】MySQL之导入和导出
    MySQL逻辑备份之MySQLDump
    【Perl】Linux下安装Perl
    【MySQL】MySQL NDB Cluster维护
    【MySQL】MySQL NDB Cluster安装
    Linux服务器开启ssh服务,实现ssh远程登陆!
    PDO异常处理
    PHP异常处理
    PDO中的事务处理
  • 原文地址:https://www.cnblogs.com/lixuwu/p/5676163.html
Copyright © 2011-2022 走看看