我們先說下什麼是封裝,在面向對象的語言中 。對象這一概念本身使用就很方便,能夠讓你通過對象這個概念將數據和功能(也就是方法)封裝到一起。在這裏出現了封裝這個概念
封裝就是把對象的所有方法和數據組合在一起,封裝實際上就是使用一些方法把數據隱藏起來 這裏的隱藏不是說把類裏的數據真正的隱藏而是通過訪問控制,讓用戶不能直接訪問類中的數據,這樣會提高安全性。我們可以通過構造方法來給數據初始化賦值。我們下面來看一個例子:
public class Music {
private String singer;
private String musicName;
private int time;
public Music(String singer, String musicName, int time) {
super();
this.singer = singer;
this.musicName = musicName;
this.time = time;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getMusicName() {
return musicName;
}
public void setMusicName(String musicName) {
this.musicName = musicName;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
這是我封裝好的一個音樂類 如果我們要創建一個音樂的對象並且對這個對象的數據進行操作我們以前的寫法是這樣的
Music music = new Music();
music.musicName = “練習”
music.time = 20;
music.singer = “劉德華“;
但是在現在這個封裝好的音樂類中 我們這個寫Java會報錯的因爲在這個類中我在成員數據中我加了一個private 這個是表示這個成員數據只能在本類中使用出了這個類就不能用了 這就是訪問控制符 你也可以把方法定義成 私有的(也就是private) 這樣這個方法 只能在定義這個方法的類中使用。那麼我們改怎樣訪問數據呢 ?
我們在代碼中提供了 倆個跟成員數據一一對應的方法 get() 和set()方法這倆個方法get()表示獲取當前對象數據的值 set()表示對當前對象的數據進行修改和添加。
我們還提供了構造方法來對某個對象的數據進行初始化 只需要這麼做就好了
Music music = new Music(”劉德華”,”練習”,20);//這是對當前music這個對象的數據進行初始化
構造方法裏的數據類型和你初始化傳的值必須類型一樣
get()方法的使用
int time = music.getTime ();//我們通過music這個對象通過調用它的gettime方法就可以得到這個音樂對象的時間 然後這個方法會返回你個值 你需要定義一個跟這個數據類型一樣的類型 來接收 這樣這個值就會傳遞到time中
set()方法也是一樣的
music.setTime (30);
這樣就把這個music這個對象的time值由20改爲30了
這其實就是封裝 說白了就是生成一個對象 你需要給他一些屬性吧 也就是數據成員的賦值
比如以new了一個人的對象 你總得給他名字吧,還得給他個身高啊 體重啊之類的吧 這其實就是封裝