java 访问权限

来源:互联网 发布:安恒数据库审计 编辑:程序博客网 时间:2024/06/05 03:23

java 访问权限

1 成员访问控制权限

public、protected和private这几个java访问控制权限修饰词在使用时,是置于类中每个成员的定义之前的——无论它是一个域或是方法。每个访问权限修饰词仅仅控制它所修饰的特定定义的访问权。

1 包访问权限

默认访问权限没有任何关键字,但通常是值包访问权限(有时也表示成friendly)。这就意味着当前的包中的所有类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。

2 public:接口访问权限

Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。public 之后紧跟着的成员声明自己对每个成员都是可用的。

3 private:私有访问控制权限

被private声明的域,除了包含该成员的类之外,其它任何类都无法访问这个成员。其子类不能访问,更不允许跨包访问。

4 protected:继承访问权限

被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。Protected也提供包访问控制权限,也就是说,相同包内的其他类也可以访问protected元素。

如下用表格的形式来形象展示四种访问权限之间的异同点:

2 类的访问控制权限

1、每个编译单元(类文件)都仅能有一个public类,这表示每个编译单元都有单一的公共接口,用public类来实现。

2、public class的名称必须完全和含有该编译单元的文件名相匹配,包含大小写。 

3、一个类文件(*.java)中可以不存在public class(这种方法不是很常用),在这种情况下,可以随意对文件命名。这种形式的存在的场景:如果我们在某个包内撰写一个class,仅仅是为了配合同包内的其他类工作,而且我们不想再为了撰写说明文档给客户(不一定是现实意义的客户,可能是调用这个类的类)看而伤脑筋,而且有可能过一段时间之后有可能会彻底改变原有的做法,并完全舍弃旧版本,以全新的版本代替,为了达到这一点,只需将关键字public从类中拿掉,这个类就拥有了包访问权限。 

4、class不可以被private和protected修饰。(除了内部类之外)。

5、如果没能为类访问权限指定一个访问修饰符,它就会默认得到包访问控制权限。这就意味着该类的对象可以由包内的其他类来创建,但在包外是不行的。然而,如果该类的某个static成员是public的话,则客户端程序员仍旧可以调用该static成员,尽管他们不能生成该类的对象。

0 0
原创粉丝点击