Java 封裝


 
 
封裝是面向對象的三大特征之一,什么是封裝?封裝有什么好處?怎么封裝,代碼怎么寫呢?
 
  封裝從字面上來理解就是包裝的意思,專業點就是信息隱藏,是指利用抽象數據類型將數據和基於數據的操作封裝在一起,使其構成一個不可分割的獨立實體,數據被保護在抽象數據類型的內部,盡可能地隱藏內部的細節,只保留一些對外接口使之與外部發生聯系。系統的其他對象只能通過包裹在數據外面的已經授權的操作來與這個封裝的對象進行交流和交互。也就是說 用戶是無需知道對象內部的細節,但可以通過該對象對外提供的接口來訪問該對象
 
  類的封裝性即不能讓外面的類隨意修改一個類的成員變量;
  在定義一個類的成員,使用private關鍵字說明這個成員的訪問權限,只能被這個類的其他成員方法調用,而不能被其他的類中的方法所調用;
  為實現封裝性,常將類的成員變量聲明為private,再通過public的方法來對這個變量進行訪問。
 
  對一個變量的操作,一般都有 讀取和賦值操作,我們一般定義兩個方法來實現這兩種操作,即:getxxx()與setxxx();
  一個類就是一個模塊,我們應該讓模塊僅僅公開必須要讓外界知道的內容,而隱藏其他的一切內容,進行程序設計時,應盡量避免一個模塊直接修改或操作另一個模塊的數據,模塊設計追求高內聚,低耦合。
 
  對於“一個”屬性來說,我們對外應該提供幾個訪問入口呢?
 
  通常情況下我們訪問對象的某個屬性,不外乎讀取(get)和修改(set),所以對外提供的訪問入口應該有兩個,這兩個方法通常被稱為set方法和get方法
 
  (請注意:set和get方法訪問的都是某個具體對象的屬性,不同的對象調用get方法獲取的屬性值不同,所以set和get方法必須有對象的存在才能調用,這樣的方法定義的時候不能使用static關鍵字修飾,被稱為實例方法。實例方法必須使用“引用”的方式調用。還記得之前我們接觸的方法都是被static修飾的,這些方法直接采用“類名”的方式調用,而不需要創建對象,在這里顯然是不行的)
  
  總之,在java語言中封裝的步驟應該是這樣的:需要被保護的屬性使用private進行修飾,給這個私有的屬性對外提供公開的set和get方法,其中set方法用來修改屬性的值,get方法用來讀取屬性的值。並且set和get方法在命名上也是有規范的,
 
   規范中要求set方法名是set + 屬性名(屬性名首字母大寫),get方法名是get + 屬性名(屬性名首字母大寫)。
  其中set方法有一個參數,用來給屬性賦值,set方法沒有返回值,一般在set方法內部編寫安全控制程序,因為畢竟set方法是修改內部數據的,而get方法不需要參數,返回值類型是該屬性所屬類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM