1. 程式人生 > >面向物件之類的三大特性之封裝

面向物件之類的三大特性之封裝

封裝:就是將每個物件的資料(屬性)和操作(行為)包裝在一個類中。一般屬性定義為私有,方法定義為共有。

屬性,只有內部的方法可以訪問私有的屬性,方法設定 為共有,外部可以訪問。

示例:

     public class Student {
private String name;
private char sex;
private int age;

public void study() {
System.out.println("張三學習");

}

測試函式呼叫:

           

所以,一般情況下,屬性設定為私有,方法設定為共有。

那麼,設定為私有的話,如何設定屬性的值呢?

下面我們就這樣來設定

     public class Student {
private String name;
private char sex;
        private int age;
Student(){
}
public String getName() {
return name;
}
public void setName(String name) {                  
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age >0 && age <120) {
this.age = age;
}else {
System.out.println("年齡只能在0-120之間");
}
}


public void study() {
System.out.println("張三學習");
}


}

單元測試:


執行結果:

      

解析:從我們的程式碼來看,我們通過在物件裡面進行設定了get(),set()方法,並且通過自己的一系列邏輯進行對年齡的設定,這樣在函式呼叫的時候就特別方法,只用呼叫自己封裝好的方法就可以設定值,傳引數。類的封裝就是把類內部的某些屬性封閉起來,防止外部方法呼叫,屬性設定傳參等,通過設定函式來進行傳參,簡化,增加了程式碼的複用性,即就是封裝特性。