Java中权限修饰问题private -> protected -> (default) -> public

Java中有三种权限修饰符

private私有修饰符
protected 保护修饰符
public公有修饰符
还有默认default权限(default表示缺省,并不是权限修饰符)

修饰符的可见性
先说说

  • 类的权限

    细节:
    1.当Java编译器进行编译时,每个编译单元只能有一个public类,否则编译器就不会接受
    2.public类的名称必须完全与含有该编译单元的文件名相匹配。

每一个类都会经过编译器生成一个.class字节码文件

比如说一个.java文件,如果一个public类都没有(有可能,都是默认),那么此Java文件可以任意命名(编译不会出错,但是如果不是将有main()入口的类名命名为文件名,运行会找不到主类),否则文件名一定要与public类名一致(区分大小写),并且,public类唯一
public class A{}
class B{}
class C{}
那么文件名为A.java
如果在一个包内,分散存这三个类,每个类都可以定义为公有的

  • 成员权限

    细节:
    default:成员变量 和 成员函数不显示定义权限下,是包内可见,这里注意如果继承的子类不在同一个包内也是不能直接访问的

private:一般情况下,类的属性都是私有化的,然后提供构造器和访问器,体现了Java封装的特点

protected:当需要保护父类中的数据和方法不被非子类访问时就可以使用protected


版权声明:本文为u012768347原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。