Java的三個大招之一:封裝

Java是一種面向對象的語言,所以理解面向對象的編程思想對學習Java是相當重要的。
這篇主要想理清的問題很簡單就只有兩個:

  1. 什么是面向對象?
  2. 如何理解封裝?

首先來看第一個問題, 對于初學者來說想要一次性完全理解面向對象是很困難的,要有一定代碼量之后再回頭看就會有新的理解。這里就先灌輸一個概念,只要有印象就行。
面向對象時一種符合人類思維習慣的編程思想,比如現實生活中有各種各樣的事物,這些事物有著各種各樣的聯系。程序中使用對象來映射現實中的事物,使用對象的關系來描述事物之間的聯系,這種思想就是面向對象。
不能理解這段話沒關系,我們可以對比面向過程來看看。面向過程是C語言的特點,它就是分析解決問題所需要的步驟,然后用函數把這些步驟一一實現,使用的時候一個一個調用便OK。而面向對象則是把解決的問題按照一定的規則劃分為多個獨立的對象,然后通過調用對象的方法來解決問題的。當然,一個程序會包含多個對象,通過多個對象相互配合來實現應用程序的功能,這樣當程序發生需求變動的時候,只需要改動相關的對象,從而使代碼更容易去維護。
如果用吃來做比喻,自己做則是面向過程,買菜、配菜、煮飯、炒菜,自己必須要依次實現這些過程,最后才能吃到美味可口的飯菜,面向對象則好比是下館子,只需點菜而做菜的過程已經被飯館封裝起來,這里不需要關心廚師是如何做菜的只要品嘗菜是否美味可口。
面向對象的三個特點:封裝,繼承,多態。今天我們主要談談封裝。

第二個問題,我們要如何理解封裝?
封裝是面向對象的核心思想,將對象的屬性和行為封裝起來,不需要讓外界知道其實現細節,這就是封裝思想。我們來看下面這段代碼:

public class Test{
public static void main(String[] args){
Student stu = new Student();
stu.name = "妞妞";
stu.age = 1000;
stu.show();
}
}
這段代碼中將年齡賦值為1000歲,這在程序中當然不會有任何問題,可是在現實生活中卻是違背常識的。為了解決這個問題,在設計類的時候,應該對成員變量的訪問做出限制,不允許外界隨意訪問,這就需要實現類的封裝了。
從定義上來說,類的封裝主要指在定義一個類的時候,將類中的屬性私有化,即使用private關鍵字來修飾,被private修飾的屬性只能在它所在類中被訪問。同時,為了讓外界訪問私有屬性,需要一些公共方法,其中就包括用于設置屬性值的setter()方法和獲取屬性值得getter()方法,下面的代碼就實現了類的封裝:

類的封裝.JPG

在圖中的Student類中,使用private關鍵字將屬性name和age聲明為私有不允許外界隨意訪問,只能通過setter方法來操作兩個實例變量的值。而在setter方法中可以增加自己的控制邏輯,從而保證Student對象的name和age兩個實例變量不會出現與實際不符合的情形。
另外在啰嗦兩句,進行程序設計的時候,應盡量避免一個模塊直接操作另一個模塊的數據,模塊設計追求的是高內聚(盡可能把模塊的內部數據、功能實現細節隱藏在模塊內部獨立完成,不允許外界直接干預)低耦合(僅暴露少量的方法給外部使用)。正如我們平常使用的手機APP,不需要去關心里面的代碼實現細節,只要能滿足我的需求便可以。

第二篇技術文了,都是Java中非常基本的內容。看和寫真的是兩個過程。看、理解簡單,但想把理解的東西寫出來卻不容易,須得搜腸刮肚遣詞造句不斷的思考“要如何布局才能讓讀者輕松get到我的想法”,此過程中又不知不覺加深了對該知識點的理解。每天一篇終會有質的飛躍,與讀到此文的人共勉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,754評論 18 399
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,833評論 0 11
  • 面向對象主要針對面向過程。 面向過程的基本單元是函數。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,088評論 0 4
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態方法,可以作為本類的靜態方法來...
    XLsn0w閱讀 1,262評論 0 2
  • 父親年輕的時候
    A陳年老酒閱讀 148評論 0 0