1.1 Java类的封装
封裝將類的某些信息隱藏在類內部,不允許外部程序直接訪問,只能通過該類提供的方法來實現對隱藏信息的操作和訪問。例如:一臺計算機內部極其復雜,有主板、CPU、硬盤和內存, 而一般用戶不需要了解它的內部細節,不需要知道主板的型號、CPU 主頻、硬盤和內存的大小,于是計算機制造商將用機箱把計算機封裝起來,對外提供了一些接口,如鼠標、鍵盤和顯示器等,這樣當用戶使用計算機就非常方便。
封裝的特點:
- 只能通過規定的方法訪問數據。
- 隱藏類的實例細節,方便修改和實現。
實現封裝的具體步驟如下:
例 1
下面以一個員工類的封裝為例介紹封裝過程。一個員工的主要屬性有姓名、年齡、聯系電話和家庭住址。假設員工類為 Employee,示例如下:
如上述代碼所示,使用 private 關鍵字修飾屬性,這就意味著除了 Employee 類本身外,其他任何類都不可以訪問這些屬性。但是,可以通過這些屬性的 setXxx() 方法來對其進行賦值,通過 getXxx() 方法來訪問這些屬性。
在 age 屬性的 setAge() 方法中,首先對用戶傳遞過來的參數 age 進行判斷,如果 age 的值不在 18 到 40 之間,則將 Employee 類的 age 屬性值設置為 20,否則為傳遞過來的參數值。
編寫測試類 EmployeeTest,在該類的 main() 方法中調用 Employee 屬性的 setXxx() 方法對其相應的屬性進行賦值,并調用 getXxx() 方法訪問屬性,代碼如下:
public class EmployeeTest {public static void main(String[] args) {Employee people = new Employee();people.setName("王麗麗");people.setAge(35);people.setPhone("13653835964");people.setAddress("河北省石家莊市");System.out.println("姓名:" + people.getName());System.out.println("年齡:" + people.getAge());System.out.println("電話:" + people.getPhone());System.out.println("家庭住址:" + people.getAddress());} }運行該示例,輸出結果如下:
姓名:王麗麗 年齡:35 電話:13653835964 家庭住址:河北省石家莊市通過封裝,實現了對屬性的數據訪問限制,滿足了年齡的條件。在屬性的賦值方法中可以對屬性進行限制操作,從而給類中的屬性賦予合理的值, 并通過取值方法獲取類中屬性的值(也可以直接調用類中的屬性名稱來獲取屬性值)。
總結
以上是生活随笔為你收集整理的1.1 Java类的封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.22 Lambda表达式的3种简写方
- 下一篇: 5、时间日期的处理:Java Date类