劉妍東
摘 要:在面向?qū)ο蟮木幊趟枷胫?,java類的設(shè)計(jì)是學(xué)習(xí)中的難點(diǎn)也是重中之重,類能否設(shè)計(jì)好,也是能否學(xué)習(xí)好面向?qū)ο蟮木幊陶Z言。通過生活中的實(shí)例分析到最后java類代碼的完成,能給學(xué)習(xí)者啟發(fā)。
關(guān)鍵詞:抽象; java類; 代碼
中圖分類號(hào):G434? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-3315(2020)1-194-001
1.引言
Java語言是一種面向?qū)ο蟮木幊陶Z言,因其具有簡單性、面向?qū)ο蟆⒖梢浦?、分布性、安全性等特點(diǎn),已被社會(huì)認(rèn)可,并已成為軟件開發(fā)的主流設(shè)計(jì)語言了。同時(shí),在眾多高校中《java語言》也成為編程類課程的入門語言了。如何教好這門課程,如何學(xué)好這門課程,也是計(jì)算機(jī)類專業(yè)學(xué)習(xí)的重中之重。下面本人通過面向?qū)ο缶幊讨蓄惖母拍睿M(jìn)行探討。
2.面向?qū)ο蟮木幊趟枷?/p>
面向?qū)ο蟮木幊趟枷胧牵熏F(xiàn)實(shí)世界中的實(shí)體,轉(zhuǎn)換成計(jì)算機(jī)世界的代碼。通過程序來實(shí)現(xiàn)對(duì)事物的描述。面向?qū)ο缶幊痰娜筇卣鳎悍庋b、繼承和多態(tài)。則現(xiàn)實(shí)世間中的實(shí)體,我們就可以稱之為對(duì)象,而同一類的對(duì)象模板,我們就可以稱之為類。我們可以說,類是對(duì)象的抽象,對(duì)象是類的實(shí)例化。
面向?qū)ο缶幊逃腥筇卣鳌?/p>
(1)封裝,將對(duì)象的屬性和行為進(jìn)行封裝,而將對(duì)象的屬性和行為進(jìn)行封裝的載體就是類。封裝可以隱藏程序內(nèi)部的具體實(shí)現(xiàn),只提供外部對(duì)數(shù)據(jù)訪問的接口,提高程序的可靠性。
特點(diǎn):提高代碼的可維護(hù)性
(2)繼承,在已有對(duì)象的屬性和行為的基礎(chǔ)上派生新的子類,子類不但可以擁有父類的屬性和行為,還可以在此基礎(chǔ)上進(jìn)行擴(kuò)展,擁有自身的特殊屬性和行為。
特點(diǎn):實(shí)現(xiàn)抽象,提高代碼復(fù)用性。
(3)多態(tài),同一實(shí)現(xiàn)接口,使用不同的對(duì)象實(shí)例執(zhí)行不同的操作。
特點(diǎn):增強(qiáng)代碼的可維護(hù)性和可擴(kuò)展性。
3.類的概念
類是具有相同的屬性和功能的事物的抽象的集合,在面向?qū)ο蟪绦蛟O(shè)計(jì)中,人們把一類事物的靜態(tài)屬性和動(dòng)態(tài)可以執(zhí)行的操作組合在一起就得到類這個(gè)概念。類是個(gè)抽象的概念,用來模擬一類事物,一旦定義了一個(gè)類,這個(gè)類就永遠(yuǎn)存在。
比如人,人有男人和女人,他們都有身高,體重等相同的屬性,他們都具有走路,吃飯,工作等這些相同的,可動(dòng)態(tài)執(zhí)行的操作,所以可以定義“人類”這樣一個(gè)類來包含他們相同的屬性和功能。車,車有轎車、卡車、公共汽車等,都有車牌、車型、顏色等屬性;行駛、停止等行為。所以可以定義“車類”來包含他們相同的屬性和功能。卡有銀行卡、消費(fèi)卡、會(huì)員卡等。都有卡號(hào)、密碼等屬性;消費(fèi)、存儲(chǔ)等行為。我們就可以定義成“卡類”,來表示他們都屬于卡。在編程的過程中我們可以把屬性通過數(shù)據(jù)變量來體現(xiàn),操作行為通過具體方法來實(shí)現(xiàn)。
4.類的設(shè)計(jì)
在面向?qū)ο蟮木幊趟枷胫校覀冃枰熏F(xiàn)實(shí)世界中的實(shí)體進(jìn)行抽象化,提煉出共同的屬性與行為,然后轉(zhuǎn)換成java代碼。
如張三李四等,都有姓名、性別、年齡、人員編號(hào)、身高、體重、家庭住址、工作、活動(dòng)等。在這些共同特點(diǎn)中,姓名、性別、年齡、人員編號(hào)、身高、體重、家庭住址等能用一個(gè)具體的值來描述的,我們稱之為屬性,在計(jì)算機(jī)世界可以用成員變量來描述。工作、活動(dòng)等這些無法用一個(gè)具體的值來描述的,在計(jì)算機(jī)世界用成員方法來描述。根據(jù)我們的需要,保留幾個(gè)常用的特點(diǎn),加上標(biāo)點(diǎn)符號(hào)。一個(gè)簡單的抽象世界的程序語言就出現(xiàn)了,見圖1。
現(xiàn)在就已經(jīng)有程序結(jié)構(gòu)的樣子了,在轉(zhuǎn)化為java語言的類時(shí),我們還需要再考慮這些成員變量的取值,可以通過取值來決定成員變量的數(shù)據(jù)類型。如,人員編號(hào),是由一段不會(huì)改變的數(shù)字串組成,而且不需要參與運(yùn)算,這樣我們就可以把人員編號(hào)定義為字符串“String”類型。姓名,是多個(gè)字符組成,也可以定義為字符串“String”類型。年齡,可隨著日期變化,而且用整數(shù)描述,就可以把年齡定義為整型“int”類型。工作、活動(dòng)這些操作我們暫時(shí)先定義“無返回值”類型。最后,在“人”前面加一個(gè)“class”,class是定義類的關(guān)鍵字。現(xiàn)在,這就是一個(gè)我們定義好的“人類”,見圖2。
在程序代碼中盡量少出現(xiàn)中文,所以我們可以把人類的屬性和行為轉(zhuǎn)換為字母表示的英文,見圖3。
為表示一個(gè)完整的類,我們?cè)偌由戏椒w,見圖4。這樣一個(gè)完整的類就設(shè)計(jì)出來了。
類設(shè)計(jì)完成后,就可以通過對(duì)象測試一下,定義了zhangsan對(duì)象,調(diào)用work方法。定義了lisi對(duì)象,調(diào)用play方法。得出運(yùn)行結(jié)果。見圖5。
4.總結(jié)
在面向?qū)ο蟮木幊趟枷胫?,類的設(shè)計(jì)涉及到了幾個(gè)概念:
類是封裝了一類對(duì)象的狀態(tài)和方法。是現(xiàn)實(shí)世界中事物的抽象集合。類具有完整的功能和相對(duì)的獨(dú)立性。對(duì)象:是現(xiàn)實(shí)世界中可以明確標(biāo)識(shí)的任何事物。在程序中,對(duì)象由類來創(chuàng)建。成員變量:是用來描述類的屬性,反映類的狀態(tài)和特征。成員方法:是用來說明類的行為,反映類中對(duì)數(shù)據(jù)的操作。
類的設(shè)計(jì)并不難,我們只要掌握好現(xiàn)實(shí)世界中的抽象和以上概念,就能設(shè)計(jì)出客戶需要的類了。