在企業(yè)面試中,經(jīng)常會(huì)問(wèn)到面向?qū)ο蟮幕咎匦裕谴鸢府?dāng)然是封裝、繼承、多態(tài)(和抽象)了。
那么今天我們就來(lái)聊一聊第一個(gè)問(wèn)題——封裝。
從字面上來(lái)看,封裝就是把一系列內(nèi)容封在一起,不允許隨意修改,以此方法來(lái)保證這一系列數(shù)據(jù)的可靠性和安全性。
通常情況下,我們采用private(私有的)這個(gè)關(guān)鍵詞對(duì)這個(gè)類中的數(shù)據(jù)進(jìn)行封裝,例如:
private String stuName;
經(jīng)過(guò)封裝的屬性,在后續(xù)的開發(fā)中不可以通過(guò)對(duì)屬性賦值的方式來(lái)修改。通過(guò)封裝這種方法,很大程序避免了開發(fā)過(guò)程中誤修改屬性的bug。
當(dāng)然,在實(shí)際使用中,我們一定會(huì)遇到數(shù)據(jù)需要修改的情況,那么這個(gè)時(shí)候的私有屬性怎么使用呢?
這里public了一個(gè)setter方法和getter方法:
public String getStuName(){? ? ? ? //getter方法
? ? return this.stuName;
}
public void setStuName(String name){? ? ? ? //setter方法
? ? this.stuName = name;
}
這樣一來(lái),就可以通過(guò)調(diào)用getter方法和setter方法對(duì)封裝好的屬性進(jìn)行進(jìn)一步修改了。