賴敏
摘 要:在面向?qū)ο蟪绦蛟O(shè)計(jì)中,類是一個(gè)抽象化的概念,而對(duì)象是該類的實(shí)例化。因?yàn)轭愂浅橄蟮?,所以類是不占用?nèi)存空間的,而對(duì)象是實(shí)例,所以對(duì)象一旦建立就要調(diào)用構(gòu)造函數(shù)為其屬性和方法分配所占用的內(nèi)存空間。類是用于創(chuàng)建對(duì)象的藍(lán)圖,它是一個(gè)定義包括在特定類型的對(duì)象中的方法和變量的軟件模板。
關(guān)鍵詞:類與對(duì)象;面向?qū)ο蟪蹋怀绦蛟O(shè)計(jì)
DOI:10.16640/j.cnki.37-1222/t.2016.09.214
1 面向?qū)ο蟪探虒W(xué)現(xiàn)狀
面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,是軟件技術(shù)這個(gè)專業(yè)針對(duì)學(xué)生培養(yǎng)的重要素質(zhì)之一。尤其是在高職高專教育的課程體系里面,面向?qū)ο蟪绦蛟O(shè)計(jì)這門課程在各個(gè)高校里面一直都位居舉足輕重的位置。
在眾多的高等職業(yè)教育里面,計(jì)算機(jī)軟件體系的課程,尤其是針對(duì)軟件開發(fā)這一體系的課程基本都是先學(xué)程序設(shè)計(jì)基礎(chǔ),然后開設(shè)面向?qū)ο蟪绦蛟O(shè)計(jì),從我從事多年的教學(xué)經(jīng)歷來看,學(xué)生們?cè)趯W(xué)習(xí)程序設(shè)計(jì)基礎(chǔ)這門基礎(chǔ)課程的時(shí)候?qū)τ诔绦虻目刂平Y(jié)構(gòu)比較難以理解,到了學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)這門課程的時(shí)候,對(duì)類與對(duì)象的理解就更加困難了,尤其是給同學(xué)們樹立類與對(duì)象的思想。
2 面向?qū)ο蟪探虒W(xué)內(nèi)容—類與對(duì)象的教學(xué)設(shè)計(jì)
在這門課程的教學(xué)當(dāng)中,如果不讓學(xué)生樹立面向?qū)ο蟮乃季S,那么學(xué)生就很難進(jìn)入本門課程的學(xué)習(xí),學(xué)習(xí)尤其要注重理解性記憶,如果全靠死記硬背把概念記住,是不可能深入學(xué)習(xí)面向?qū)ο蟮木璧?。本門課程要求學(xué)生理解面向?qū)ο缶幊趟枷?,掌握面向?qū)ο蠡靖拍睢⒓峡蚣?、多線程、IO以及異常處理,能夠運(yùn)用JDBC開發(fā)C/S模式下的中小型數(shù)據(jù)庫應(yīng)用軟件,能夠運(yùn)用JUNIT工具進(jìn)行單元測(cè)試,培養(yǎng)團(tuán)隊(duì)協(xié)作、交流溝通、自學(xué)、抗壓能力,提升軟件工程規(guī)范及編碼規(guī)范意識(shí)。
所以要達(dá)到以上目標(biāo),就要很好地給同學(xué)們樹立面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,很多教材都是編排在第一章第一節(jié)講解類的概念,在第一章第二節(jié)講解對(duì)象的概念,這種方式的講解無論是本科的學(xué)生還是??频膶W(xué)生理解起來都是很困難的。所以在做本課程的教學(xué)設(shè)計(jì)的時(shí)候,就應(yīng)該改變以前傳統(tǒng)做法,爭(zhēng)取達(dá)到讓學(xué)生做到易學(xué)易懂易做。在這里僅僅以Java語言為例子說明講解怎樣讓學(xué)生理解類與對(duì)象的思想。
首先,按照標(biāo)準(zhǔn)定義給出類和對(duì)象的概念。類是對(duì)事物的抽象和歸納,是具有相同標(biāo)準(zhǔn)的事物的集合與抽象。對(duì)象是由屬性(Attribute)和行為 (Action)兩部分組成,屬性用來描述對(duì)象的靜態(tài)特征,行為用來描述對(duì)象的動(dòng)態(tài)特征。這兩個(gè)概念,對(duì)于初次接觸面向?qū)ο筮@門課程的學(xué)生來說是很抽象的,而且是很不容易理解的,所以在講解的過程中作為教師一定要給出讓學(xué)生容易理解的例子以及代碼,幫助學(xué)生理解這個(gè)概念,而不是一味地去灌輸這個(gè)抽象的概念。在講解這個(gè)概念的時(shí)候也要盡可能地用簡(jiǎn)單通俗易懂地語言灌輸給學(xué)生,也就是要把抽象問題具體化,復(fù)雜問題簡(jiǎn)單化。比如給兩個(gè)簡(jiǎn)單的例子如下,來幫助學(xué)生理解類與對(duì)象的概念以及他們之間的聯(lián)系就一目了然。
class Person{ public class UsePerson{
String name; public static void main(String[] args){
int age; Person zhangsan=new Person();
String sex; zhangsan.name=“張三”;
public void show(){ zhangsan.age=18;
System.out.println(“姓名:”+this.name); zhangsan.sex=“男”;
System.out.println(“年齡:”+this.age); zhangsan .show();
System.out.println(“性別:”+this.sex); }
} }
}
對(duì)比以上兩段代碼,左邊這段代碼著重培養(yǎng)學(xué)生們面向?qū)ο蟮乃季S,幫助學(xué)生理解“類”這一個(gè)非常抽象的概念,這樣就把人“類”這個(gè)非常抽象的概念用代碼加以具體化,讓學(xué)生們更好地加以理解和掌握,“人類”就是一個(gè)抽象化的概念,它把人類所共有的特點(diǎn)以及人類的一些共同的動(dòng)作行為封裝在了一對(duì)大括號(hào)里面,所以說“類”是屬性和方法的集合。右邊這段代碼用以幫助理解對(duì)象這個(gè)概念,“對(duì)象”就是對(duì)類進(jìn)行實(shí)例化,在這個(gè)例子里面,“張三”就是人類的一個(gè)具體實(shí)際的例子,也是學(xué)生們用眼睛能夠觀察體會(huì)到的實(shí)體,也就是對(duì)“人類”進(jìn)行的實(shí)例化。這兩段代碼簡(jiǎn)單詳細(xì)地解釋了“類”是一個(gè)抽象化的概念,而“對(duì)象”是該類的一個(gè)實(shí)體。所以在講解這兩個(gè)概念的時(shí)候,要改進(jìn)以前的方式方法,不能為了概念而一味地去給學(xué)生灌輸概念,更不能把“類”和“對(duì)象”這兩個(gè)概念分開分步驟地去講解。二是要把這兩個(gè)有著緊密聯(lián)系的概念放在一起簡(jiǎn)單明細(xì)地去講解。
3 教學(xué)設(shè)計(jì)的小結(jié)
以這樣的方式把面向?qū)ο蟪绦蛟O(shè)計(jì)里兩個(gè)重要的概念理解了,同時(shí)也讓學(xué)生樹立了面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,那么在后續(xù)的課程里,讓學(xué)生學(xué)習(xí)類的三大特征:封裝性,繼承性,多態(tài)性,也就顯而易見了。讓眾多學(xué)生進(jìn)而深入地學(xué)習(xí)這門課程也就便得簡(jiǎn)單明了。
參考文獻(xiàn):
[1]姚駿屏,何桂蘭主編.陳素瓊,任姚鵬副主編.Java面向?qū)ο蟪绦蛟O(shè)計(jì)與系統(tǒng)開發(fā)[M].西安電子科技大學(xué)出版社,ISBN 978-7-5606-3649-8,2014(12).
[2]http://zhidao.baidu.com/question/28922601.html?fr=qrl&index=0&qbl=topic_question_0.
[3]江開耀.軟件工程與開發(fā)技術(shù)[M].西安電子科大出版社,2009.
[4]錢銀中.java程序設(shè)計(jì)案例教程[M].機(jī)械工業(yè)出版社,2009.
[5]寧麗莎.管理信息系統(tǒng)開發(fā)與軟件工程[M].各界(科技與教育),2008(01).