咱們先說下什麼是封裝,在面向對象的語言中 。對象這一律念自己使用就很方便,可以讓你經過對象這個概念將數據和功能(也就是方法)封裝到一塊兒。在這裏出現了封裝這個概念安全
封裝就是把對象的全部方法和數據組合在一塊兒,封裝實際上就是使用一些方法把數據隱藏起來 這裏的隱藏不是說把類裏的數據真正的隱藏而是經過訪問控制,讓用戶不能直接訪問類中的數據,這樣會提升安全性。咱們能夠經過構造方法來給數據初始化賦值。咱們下面來看一個例子:
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了一我的的對象 你總得給他名字吧,還得給他個身高啊 體重啊之類的吧 這其實就是封裝