面向對象中封裝特性的簡單理解

初學Java的時候,一直不理解,爲何必需要使用getter/setter來訪問private屬性?直接賦值給一個public修飾的屬性不是很方便嗎?不管哪一種作法,不都是爲了修改屬性的值嗎?編程

由於標準的面向對象程序不容許直接訪問類的屬性信息的,是要經過方法來間接操做類的屬性信息的。封裝能夠隱藏類的實例細節,方便修改和實現;同時用戶只能經過規定的方法去訪問數據。eclipse

由於咱們在使用一個類的時候,只是關注它如何去用,能解決什麼問題,而不關注它是如何實現的。學習

封裝的實現

  1. 修改屬性的可見性對象

    經過使用private修飾符修飾屬性,使其變爲私有屬性。ip

  2. 建立getter/setter方法get

    經過建立getter/setter方法,用於對私有屬性進行讀寫操做。編譯器

    eclipse編譯器可以自動檢測屬性並生成getter/setter方法:Source->Generate Getters and Setters。編譯

  3. 在getter/setter方法中加入控制語句cli

    經過在getter/setter方法中加入控制語句,對用戶的輸入進行判斷。這又引出了一個疑問:「難道只能使用getter/setter方法嗎?」其實否則,使用getter/setter方法是一種編程規範和標準。程序

以上的解釋可能太書面化了,以我我的粗鄙的理解:

面向對象中,只能經過方法對類的屬性進行訪問,而不能直接的對屬性值進行讀寫。至於其中的妙處,除了學習書面理論,剩下的只能靠編程的時候體會了。

相關文章
相關標籤/搜索