Java类的封装
封裝將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,只能通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問。
封裝的特點:
只能通過規(guī)定的方法訪問數(shù)據(jù)。隱藏類的實例細節(jié),方便修改和實現(xiàn)。實現(xiàn)封裝的具體步驟如下:
1 . 修改屬性的可見性來限制對屬性的訪問,一般設(shè)為 private。
2 . 為每個屬性創(chuàng)建一對賦值(setter)方法和取值(getter)方法,一般設(shè)為 public,用于屬性的讀寫。
3 . 在賦值和取值方法中,加入屬性控制語句(對屬性值的合法性進行判斷)。
一個員工的主要屬性有姓名、年齡、聯(lián)系電話和家庭住址。假設(shè)員工類為 Employee,示例如下:
public class Employee {private String name; // 姓名private int age; // 年齡private String phone; // 聯(lián)系電話private String address; // 家庭住址public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {// 對年齡進行限制if (age < 18 || age > 40) {System.out.println("年齡必須在18到40之間!");this.age = 20; // 默認年齡} else {this.age = age;}}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;} }如上述代碼所示,使用 private 關(guān)鍵字修飾屬性,這就意味著除了 Employee 類本身外,其他任何類都不可以訪問這些屬性。但是,可以通過這些屬性的 setXxx() 方法來對其進行賦值,通過 getXxx() 方法來訪問這些屬性。
在 age 屬性的 setAge() 方法中,首先對用戶傳遞過來的參數(shù) age 進行判斷,如果 age 的值不在 18 到 40 之間,則將 Employee 類的 age 屬性值設(shè)置為 20,否則為傳遞過來的參數(shù)值。
編寫測試類 EmployeeTest,在該類的 main() 方法中調(diào)用 Employee 屬性的 setXxx() 方法對其相應的屬性進行賦值,并調(diào)用 getXxx() 方法訪問屬性,代碼如下:
public class EmployeeTest {public static void main(String[] args) {Employee people = new Employee();people.setName("王紅");people.setAge(21);people.setPhone("13853835964");people.setAddress("河南省洛陽市");System.out.println("姓名:" + people.getName());System.out.println("年齡:" + people.getAge());System.out.println("電話:" + people.getPhone());System.out.println("家庭住址:" + people.getAddress());} } 運行該示例,輸出結(jié)果如下: 姓名:王紅 年齡:21 電話:13853835964 家庭住址:河南省洛陽市通過封裝,實現(xiàn)了對屬性的數(shù)據(jù)訪問限制,滿足了年齡的條件。在屬性的賦值方法中可以對屬性進行限制操作,從而給類中的屬性賦予合理的值, 并通過取值方法獲取類中屬性的值(也可以直接調(diào)用類中的屬性名稱來獲取屬性值)。
總結(jié)
- 上一篇: C 画矩形
- 下一篇: remote: Incorrect us