java 9 模块系统改变了访问权限修饰符的含义:public 修饰符允许外部模块访问;protected 修饰符允许导出包的模块访问;default 修饰符限制访问到导出包的模块;private 修饰符仅允许声明模块内访问。
Java 函数的访问权限修饰符与 Java 9 模块系统的关系
Java 9 引入了模块系统,这是一种对 Java 应用程序进行组织和打包的新方法。模块系统为 Java 语言中现有的访问权限修饰符(public、protected、default 和 private)引入了新的含义。
访问权限修饰符
Java 中的访问权限修饰符指定了哪些类和包可以访问该类、字段或方法。这四个访问权限修饰符的解释如下:
- public:对所有类和包都可以访问。
- protected:对同一包中的所有类和所有子类都可以访问。
- default(也称为 package-private):仅对同一包中的类可以访问。
- private:仅对声明该类、字段或方法的类可以访问。
模块系统
Java 9 模块系统允许您将代码组织成模块。模块是一个编译单元的集合,它具有明确的依赖项和导出的包。模块系统通过在模块和程序包之间建立依赖关系来加强封装。
访问权限修饰符与模块系统
在 Java 9 模块系统中,访问权限修饰符的作用发生了变化:
- public:类、字段或方法可以直接从模块外部访问。
- protected:类、字段或方法只能从模块内部或导出包的模块中直接访问。
- default(package-private):类、字段或方法只能从导出包的模块中访问。
- private:类、字段或方法只能从声明模块中访问。
实战案例
考虑以下示例模块:
module demo.module { exports demo.package; } package demo.package; class MyClass { public void publicMethod() { } protected void protectedMethod() { } void defaultMethod() { } private void privateMethod() { } }
在这个例子中,demo.package
包被导出,因此其他模块可以访问其公共类、字段和方法。
-
publicMethod
是公开的,可以从任何模块访问。 -
protectedMethod
是受保护的,只能从demo.module
或导入了demo.package
包的模块中访问。 -
defaultMethod
是默认的,只能从导入了demo.package
包的模块中访问。 -
privateMethod
是私有的,只能从demo.module
中访问。
结论
通过理解 Java 9 模块系统和访问权限修饰符之间的关系,您可以加强应用程序的封装并管理对代码的访问。
以上就是Java 函数的访问权限修饰符之与 Java 9 模块系统的关系的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!