对java封装和java反射机制之间的关系的一些理解

        java的封装,个人的简单理解就是将一个类的功能暴露给外部,但是将内部实现细节隐藏起来。换个说话就是类的外部只需要知道我给你提供了哪些功能即可,关于这些功能是是如何实现的你不需要知道,也不让你知道。这就相当于一款软件,用户只需要这款软件有些什么功能,如何使用即可,具体这些功能是如何实现的,用户不需要知道也无权知道。java的封装机制就有效的在代码的编码阶段防止外部类窥探功能接口的内部原理和实现细节。
        java为了扩展其功能的灵活性,让我们可以在运行阶段访问和修改类的私有变量,调用类的私有方法。有些人就会发现java既然设计了封装来隐藏类的私有变量和方法,然而又设计反射机制让外部类可以访问和调用类的私有变量方法,这两个概念是否出现了冲突,以子之矛攻子之盾。
        其实关于这一点,我有自己的一些理解。首先这两个概念不是在同一阶段出现的概念,封装是在编码阶段的概念,而反射机制是在运行阶段的概念,不要将它们放在一起讨论;其次,你使用java的反射机制也就意味着你已经知道了类的实现细节,既然你已经知道了类的实现细节也就不能说java反射机制影响了类的封装的安全性这一点。
        以上是我对java封装和java反射机制之间的关系的一些个人见解,由于个人能力有限,可能理解得不够全面,希望我的见解对你理解java封装和java反射机制这一块有所帮助,不要出现纠结不清的情况。

发布了46 篇原创文章 · 获赞 10 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/sqhren626232/article/details/90370138