首页 > 编程 > Java > 正文

java访问权限关键字

2019-11-11 02:36:10
字体:
来源:转载
供稿:网友

本文转自:点击打开链接 

在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词。java的类成员访问权限修饰词有四类:PRivate,无(默认情况下),protected和public。其权限控制如下表所示:

   

修饰词本类同一个包的类继承类其他类
private×××
无(默认)××
protected×
public

    其中,默认情况下没有任何修饰词,这样的类成员具有“包访问权”,即位于同一个包中的类对其有访问权;而protected为“继承访问权”,即该类的子类对其具有访问权(同时,位于同一个包中的类也对其具有访问权)。

    而对于Java中的“类”(不是其内部成员,两者要区分开),其访问权限修饰词仅有public和“无”(即包访问权)两种,而没有private和protected(有 一个特例,就是“内部类”,其可以是private或protected的)。所以对于类的访问权限,你仅有两个选择:包访问权或是public。如果你 不希望其他任何人对该类拥有访问权,你可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象。但是有一个例外,就是在该类的 static成员内部进行创建。如:

    class Soup {       // private Constructor!       private Soup() {}       // Allow creation via static method:       public static Soup makeSoup() {           return new Soup();       }    }

    另外,如果一个类的访问权限为“包访问权”,并且其内部有一个static的成员为public的话,则其他包中的类仍旧可以访问该static成员,哪怕它们并不能生成该类的对象。

作者: 一点点征服 出处:http://www.cnblogs.com/ldq2016/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表