博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Java基础] 关于默认包访问权限类里的public static成员的访问
阅读量:7059 次
发布时间:2019-06-28

本文共 601 字,大约阅读时间需要 2 分钟。

参考:studyvcmfc的专栏

《Java编程思想》(中文第四版)6.5节里有一段话:

正如前面所提到的,如果没能为类访问权限指定一个访问修饰符,它就会缺省得到包访问权限。这意味着该类的对象可以由包内任何其他类来创建,但包外则是不行的。(一定要记住,相同目录下的所有不具有明确package声明的文件,都被视作是该目录下缺省包的一部分。)然而,如果该类的某个static成员是public的话,则客户端程序员仍旧可以调用该static成员,尽管他们并不能生成该类的对象。
其中,“然而,如果该类的某个static成员是public的话,则客户端程序员仍旧可以调用该static成员,尽管他们并不能生成该类的对象。”这句话让我觉得费解。非public类的字段怎么可以被不同包的类访问呢?经过实验,确实无法通过常规的 “类名.成员” 来访问他。
但是,通过Java反射是可以实现的。

Class dog = Class.forName("com.spz.javastudy.demo.Dog");Field field = dog.getField("a");field.setAccessible(true);System.out.println(field.getInt(null));

就算Dog类是非public类,依靠反射机制依旧可以获得Dog对象,并获取其中的public static成员。

转载地址:http://yegol.baihongyu.com/

你可能感兴趣的文章
“前.NET Core时代”如何实现跨平台代码重用 ——程序集重用
查看>>
一哄而起云计算(透视)
查看>>
如何实现对上下文(Context)数据的统一管理 [提供源代码下载]
查看>>
RvmTranslator Translate RVM to 3D PDF
查看>>
New Release: patterns & practices App Arch Guide 2.0 Beta 1
查看>>
《中国人工智能学会通讯》——8.27 结束语
查看>>
服务企业互联网化用友进入3.0时代
查看>>
《中国人工智能学会通讯》——4.4 视频结构化描述技术在平安城市中 的应用...
查看>>
Fortinet FortiGuard安全实验室解密APT攻击的那些事儿
查看>>
用友云重装出发:你想得到的企业服务都在这
查看>>
经典网络的ECS实例支持升级到企业级实例
查看>>
《网络空间欺骗:构筑欺骗防御的科学基石》一2.3 欺骗型安全技术
查看>>
当“双态IT”已成共识 如何打造以数据驱动的运维平台?
查看>>
定位与大数据邂逅,Wi-Fi大不相同
查看>>
物联网技术正颠覆零售行业
查看>>
绿盟科技互联网安全威胁周报2016.31 Memcached多个整数溢出漏洞CVE-2016-8704
查看>>
面向多类型场景,浪潮超融合架构解决方案亮相vForum
查看>>
《OpenGL编程指南(原书第9版)》——1.2 初识OpenGL程序
查看>>
大数据为推动中国出版“走出去”提供新机遇
查看>>
物联网路径,美国运营商怎么走?
查看>>