更新時(shí)間:2021-06-24 來(lái)源:黑馬程序員 瀏覽量:
在正式講解如何實(shí)現(xiàn)類的封裝之前,先通過(guò)一個(gè)程序來(lái)了解一下為什么需要對(duì)類進(jìn)行封裝,如文件1所示。
文件1 Example03.java
class Person{ String name; int age; public void speak(){ System.out.println("我叫"+name+",今年"+age+"歲了"); } } public class Example03 { public static void main(String[] args) { Person p = new Person(); p.name = "張三"; p.age = -18; p.speak(); } }運(yùn)行結(jié)果如圖1所示。
圖1 運(yùn)行結(jié)果
在文件1的第12行代碼中,將年齡賦值為一個(gè)負(fù)數(shù)-18,這在語(yǔ)法上不會(huì)有任何問(wèn)題,因此程序可以正常運(yùn)行,但在現(xiàn)實(shí)生活中明顯是不合理的。為了避免出現(xiàn)這種不合理的問(wèn)題,在設(shè)計(jì)一個(gè)Java類時(shí),應(yīng)該對(duì)成員變量的訪問(wèn)作出一些限定,不允許外界隨意訪問(wèn),這就需要實(shí)現(xiàn)類的封裝。