java 访问指示符,Java 中的访问指示符

本文详细阐述了Java中四种访问修饰符的作用:public允许全局访问,private限于类内,protected跨包可继承,default(默认)同一包内可见。讲解了类的唯一公共类规则、命名规范,以及如何通过修饰符控制类和成员的访问权限。
摘要由CSDN通过智能技术生成

简介

Java 中访问修饰符分为4类,分别为 private 、public、protected、default

概述

(1) 每个编译单元(文件)都只能有一个public 类。每个编译单元有一个公共接口的概念是由那个公共类表 达出来的。根据自己的需要,它可拥有任意多个提供支撑的“友好”类。但若在一个编译单元里使用了多个 public类,编译器就会向我们提示一条出错消息。

(2) public类的名字必须与包含了编译单元的那个文件的名字完全相符,甚至包括它的大小写形式。所以对 于Widget 来说,文件的名字必须是Widget.java,而不应是 widget.java或者WIDGET.java。同样地,如果 出现不符,就会报告一个编译期错误。

(3) 可能(但并常见)有一个编译单元根本没有任何公共类。此时,可按自己的意愿任意指定文件名。

(4)我们现在对于类的访问只有两个选择:“友好的”或者 public。若不愿其他任何人访问那个 类,可将所有构建器设为private。这样一来,在类的一个static 成员内部,除自己之外的其他所有人都无 法创建属于那个类的一个对象。

private

注意:不能修饰类(外部类)

标记为private 意为是此类私有的,无法继承,无法通过本类以外的所有方式访问。

访问控制:只有同一类下可以访问。

继承:无法继承。

default

如果不加任何访问修饰符,Java 会默认加上 default 访问修饰。

访问控制:同一包下,同一类下,都能进行访问,不同包下不可以访问。

继承:无法继承变量(字类中不可以访问父类变量)。

protected

注意:不能修饰类(外部类)

如果加上 protected 意为保护类型的。

访问控制:同一包下,同一类下,都能进行访问,不同包下不可以访问。

继承:可以继承变量(字类中可以访问父类变量)。

public

公共类型,声明 public 的函数,变量,类。在任何地方都可以被访问。

访问控制:不限制

继承:所有声明public 的变量,函数都可以被继承。

总结

1、一个.Java文件只能有一个public类。(可以有多个default类)

2、类前的操作符只能是public和不写(default)。

3、public的类名必须和.java文件的名字一样。当一个.java文件没有public类时(有多个default类),文件名随意起。

4、在类层面,public和不写(default)是为了区别不同包能不能访问的问题。public不同包下能访问,不写(default)不同包下不能访问该类。

5、在类成员层面,修饰成员的public和private是两个极端,分别为谁都能访问和只能本类访问。加上default是为了中和,让同一包下也能访问。加上protected,是为了区别于default,protected修饰的成员是可以被继承的。

6、当然类层面的约束再上,类成员层面在下,和过滤器一样,类层面优先级高一点,先过滤一遍,再由成员层面过滤。也可以这样理解,类层面的修饰符作用是能不能看到该类,成员层面上的约束是在你能看到类的情况下能访问哪些;当然,如果你看都看不到类,也就不用谈你能用哪些成员了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值