對java封裝和java反射機制之間的關係的一些理解

        java的封裝,個人的簡單理解就是將一個類的功能暴露給外部,但是將內部實現細節隱藏起來。換個說話就是類的外部只需要知道我給你提供了哪些功能即可,關於這些功能是是如何實現的你不需要知道,也不讓你知道。這就相當於一款軟件,用戶只需要這款軟件有些什麼功能,如何使用即可,具體這些功能是如何實現的,用戶不需要知道也無權知道。java的封裝機制就有效的在代碼的編碼階段防止外部類窺探功能接口的內部原理和實現細節。
        java爲了擴展其功能的靈活性,讓我們可以在運行階段訪問和修改類的私有變量,調用類的私有方法。有些人就會發現java既然設計了封裝來隱藏類的私有變量和方法,然而又設計反射機制讓外部類可以訪問和調用類的私有變量方法,這兩個概念是否出現了衝突,以子之矛攻子之盾。
        其實關於這一點,我有自己的一些理解。首先這兩個概念不是在同一階段出現的概念,封裝是在編碼階段的概念,而反射機制是在運行階段的概念,不要將它們放在一起討論;其次,你使用java的反射機制也就意味着你已經知道了類的實現細節,既然你已經知道了類的實現細節也就不能說java反射機制影響了類的封裝的安全性這一點。
        以上是我對java封裝和java反射機制之間的關係的一些個人見解,由於個人能力有限,可能理解得不夠全面,希望我的見解對你理解java封裝和java反射機制這一塊有所幫助,不要出現糾結不清的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章