更新時間:2022-03-30 來源:黑馬程序員 瀏覽量:
類的封裝是指將對象的狀態(tài)信息隱藏在對象內(nèi)部,不允許外部程序直接訪問對象的內(nèi)部信息,而是通過該類提供的方法實(shí)現(xiàn)對內(nèi)部信息的操作訪問。
在Java開發(fā)中,在定義一個類時,將類中的屬性私有化,即使用private關(guān)鍵字修飾類的屬性,被私有化的屬性只能在類中被訪問。如果外界想要訪問私有屬性,則必須通過setter和getter方法設(shè)置和獲取屬性值。
接下來修改文件3-3,使用private關(guān)鍵字修改name屬性和age屬性,實(shí)現(xiàn)類的封裝,如文件3-4所示。
classStudent {
private String name; // 聲明姓名屬性
private int age; // 聲明年齡屬性
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 <= 0) {
System.out.println("您輸入的年齡有誤!");
} else {
this.age = age;
}
}
public void read() {
System.out.println("大家好,我是" + name + ",年齡" + age);
}
}
public class Example04 {
public static void main(String[] args) {
Student stu = new Student(); // 創(chuàng)建學(xué)生對象
stu.setName("張三"); // 為對象的name屬性賦值
stu.setAge(-18); // 為對象的age屬性賦值
stu.read(); // 調(diào)用對象的方法
}
}在文件3-4中,使用private關(guān)鍵字將屬性name和age聲明為私有變量,并對外界提供公有的訪問方法,其中,getName()方法和getAge()方法用于獲取name屬性和age屬性的值,setName()方法和setAge()方法方法用于設(shè)置name屬性和age屬性的值。
文件3-4的運(yùn)行結(jié)果如圖3-9所示。

圖3-9文件3-4的運(yùn)行結(jié)果由圖3-9可知,當(dāng)調(diào)用setAge()方法傳入了一個負(fù)數(shù)-18時,age顯示為初始值0。這是因?yàn)閟etAge()方法對參數(shù)age進(jìn)行了判斷,如果age的值小于或等于0,會打印“您輸入的年齡有誤!”,并將age設(shè)置為0。
Collections類中如何進(jìn)行添加和排序操作?