第一篇:完成Java面向?qū)ο蟪绦蛟O(shè)計實驗課的心得體會
Java面向?qū)ο蟪绦蛟O(shè)計實驗課的心得體會
經(jīng)過這幾周對Java面向?qū)ο蟪绦蛟O(shè)計的學(xué)習(xí),讓我更加了解到Java學(xué)習(xí)的重要性。
在實驗課上,我們完成多個實驗,在這個階段的學(xué)習(xí)中,我從認(rèn)識到熟悉,而后到能夠自主運(yùn)用。通過對Java的了解,我發(fā)現(xiàn)它確實有很多方便之處,它集抽象性、封裝性、繼承性和多態(tài)性于一體,實現(xiàn)了代碼重用和代碼擴(kuò)充,提高了軟件開發(fā)的效率。對于我們這個專業(yè)來說學(xué)好Java語言是很重要的,所以在實驗的過程中我都盡力理解java編程思想、掌握基本技巧,盡量學(xué)到最多的知識。
學(xué)習(xí)程序設(shè)計的基本目的就是培養(yǎng)描述實際問題的程序化解決方案的關(guān)鍵技能,Java面向?qū)ο蟪绦蛟O(shè)計是一門實踐性比較強(qiáng)的課程,在實際中,我們必須把理論和實踐結(jié)合起來。在實驗中,我們理解理論課上的知識,然后運(yùn)用到實際的操作中,我們必須在現(xiàn)有的理論的基礎(chǔ)上,進(jìn)行實踐。多次實驗后,也讓我看到了現(xiàn)在學(xué)習(xí)的一個很大弱點:只聽不練,永遠(yuǎn)不會熟練運(yùn)用;空記技巧,忽略思想,會在多變的習(xí)題中十分無奈。
Java思想:Java是一門面向?qū)ο蛘Z言,他定義一切都是對象
面向?qū)ο螅褪敲鎸ΜF(xiàn)實;
現(xiàn)實中的一切都是對象,他們有分類,就產(chǎn)生了“類”;
他們有不同,類和類之間的不同,使用類來區(qū)分;
同一個類中不同的對象的區(qū)別,使用成員區(qū)分。所以,面向?qū)ο蟮膬?nèi)部邏輯是分類。
面向?qū)ο缶幊趟枷刖拖髷?shù)學(xué)上的一些概念,如:空間、群、環(huán)、域等
原始的編程思想就象古典數(shù)學(xué),人們只在一個集合上探討問題,沒有系統(tǒng)的方法(即運(yùn)算)定義,于是仁者見仁、智者見智,這樣在一定程度上造成了理論的一種混亂局面,不利于科學(xué)的發(fā)展。于是近代數(shù)學(xué)向公理化發(fā)展,這是什么意思呢?就是說,人們除了在限定論域(即上面的集合,面向?qū)ο笠灿写烁拍睿┩猓€在此論域上加進(jìn)了一套通用的、公認(rèn)的運(yùn)算(方法);集合加上集合上定義的運(yùn)算就構(gòu)成了數(shù)學(xué)上的空間、群等,在計算機(jī)領(lǐng)域里,就變成為“類”。這種集合上定義了操作的東西利用起來就方便多了,這使得人們討論問題時都在給定集合的運(yùn)算能力上下工夫,即有通用性可事半功倍。
面向?qū)ο蟮木幊趟枷刖鸵虢来鷶?shù)的分析思想,首先要確定“論域”,即工程所涉及到的所有的“對象”,然后要分類處理,把隸屬同一類別的對象集合在一起(做成一個集合),定義他們之間的運(yùn)算性質(zhì)及可以進(jìn)行的操作,這樣就構(gòu)建了一個類,當(dāng)然以后用到這個類的對象時都要通過已經(jīng)定義了的操作來完成各項功能,這就是常要求的類的“類的成員變量要通過共有函數(shù)來操作”。
我想真正的面向?qū)ο缶幊趟枷氩粦?yīng)該是編程思想,應(yīng)該是面向?qū)ο蟮姆治龇椒ú艑Γ?/p>
我的理解:
1、將分析過程為抽象的過程:簡言之:分成多個小問題(組成部分),直到無法再細(xì);
2、對每個對象(小問題)進(jìn)行分析,抽象,提取處共同的內(nèi)容(數(shù)據(jù)成員和操作方法),3、有相似的對象的,構(gòu)造基類;再有基類派生出各個確定的對象(小問題);
4、解決問題的過程就是操作這些對象的過程。
我的理解:
與實際生活聯(lián)系起來。
將要處理的?問題?抽象成一個或多個?事件?
找一個地方使用我的智慧
1。了解系統(tǒng)的功能。列舉出它的對外接口,即對于使用者來說它有什么功能。把這整個系統(tǒng)作為一個對象。
2。環(huán)境。系統(tǒng)不是運(yùn)行在真空中的,操作系統(tǒng)等外部環(huán)境都可能會影響它。所以把環(huán)境也作為一個大的對象。
3。內(nèi)部。在系統(tǒng)的內(nèi)部,一般都比較復(fù)雜,一般的做法是規(guī)定一個粒度,枚舉出該粒度上所有的物體。比如說人體,如果在器官的粒度上,就有心,肝,肺。而小于該粒度的物體(或稱對象),比如血細(xì)胞,就忽略,作為其它物體(或稱子系統(tǒng)的內(nèi)部對象)。
4。子系統(tǒng)。不斷縮小粒度,沿用步驟1~3,直到不能再抽象為止。
5。無形的物體。一個完整的互連的系統(tǒng)需要許多無形的物體,比如消息等了,一般這樣的對象比較難發(fā)現(xiàn)。當(dāng)你發(fā)現(xiàn)各個子系統(tǒng)無法正確合作或理順關(guān)系時,試著加入一些輔助對象。一切都是為了讓人明白,有能讓機(jī)器理解的思想
我想分析和抽象能力的高低是個關(guān)鍵,首先要從問題域分析和抽象出準(zhǔn)確的對象模型,再根據(jù)這些模型進(jìn)行處理,當(dāng)然在過程種少不了樓上前輩們說的一些思想和細(xì)節(jié),但是別忘了,我們的目的是解決問題,不要為了面向?qū)ο蠖嫦驅(qū)ο螅?/p>
我想分析和抽象的能力對這個問題是個關(guān)鍵。首先要在問題域仔細(xì)分析、抽象得到相關(guān)的對象模型,然后才是相應(yīng)的設(shè)計。可是面向?qū)ο笾皇俏覀兘鉀Q問題一種思想,切不可忘了問題本身,弄成為了面向?qū)ο蠖嫦驅(qū)ο罅耍‘?dāng)然過程種少不了樓上一些前輩說的思想和細(xì)節(jié)了。
耕具我多年的實踐:面向?qū)ο蟀▋蓚€思想:
從大往小想,從小往大做
從難往易想,從易往難做
同意一下觀點-----能深入淺出,真高手也!
真正的面向?qū)ο缶幊趟枷刖褪峭粢磺嘘P(guān)于計算機(jī)的東西,從問題領(lǐng)域考慮問題, :-)把問題從大到小都抽象成對象(指針只是對象的使用形式),在設(shè)計和編寫程序的時候把你設(shè)計的對象合理的編排組合就是面向?qū)ο缶幊塘恕?/p>
面向?qū)ο螅褪敲鎸ΜF(xiàn)實;
現(xiàn)實中的一切都是對象,他們有分類,就產(chǎn)生了“類”;
他們有不同,類和類之間的不同,使用類來區(qū)分; 同一個類中不同的對象的區(qū)別,使用成員區(qū)分。
所以,面向?qū)ο蟮膬?nèi)部邏輯是分類。
對象:
對象是人們要進(jìn)行研究的任何事物,從簡單的一個小分子到復(fù)雜的汽車飛機(jī)都可以看做對象,只是有時對象要根據(jù)人們研究問題的需要來確定,對象不一定是具體的,有時也可以表示抽象的規(guī)則或計劃。
類:
類在java中是具有相同或相似性質(zhì)的對象的抽象體現(xiàn)形式。也就是說,類的實例化就是創(chuàng)建對象的過程類的實例就是對象。
第二篇:java面向?qū)ο蟪绦蛟O(shè)計教案
武漢大學(xué)珞珈學(xué)院 系/教研室 Java 面 向 對 象 程 序 設(shè) 計 課 教 案
主講教師:熊春秀 編寫時間:2011-4-30
第一章:概述
第 1、2 節(jié):面向?qū)ο蟮幕靖拍睢⒚嫦驅(qū)ο蟪绦蛟O(shè)計概述 授課時間:2011-2-
22、23
計劃學(xué)時數(shù):1 教學(xué)任務(wù)與目的:讓學(xué)生理解面向?qū)ο蟮幕靖拍?教學(xué)重點:掌握面向?qū)ο蟮幕靖拍?教學(xué)難點:理解面向?qū)ο蟪绦蛟O(shè)計的方法 教學(xué)方法:多媒體+板書 參考書目:《面向?qū)ο蟪绦蛟O(shè)計導(dǎo)論》,[美]C.Thomas wu著,電子工業(yè)出版社 專業(yè)詞匯:Java虛擬機(jī)、Applet程序 備注
第二章:Java特點及運(yùn)行環(huán)境
第 1、2、3 節(jié):Java語言特點、Java應(yīng)用程序及運(yùn)行環(huán)境、Java Applet程序及運(yùn)行環(huán)境 授課時間:2011-2-
22、23
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會JDK的下載、安裝與環(huán)境配置。教學(xué)重點:掌握編譯和執(zhí)行Java程序的基本步驟
教學(xué)難點:理解Java程序的入口并能夠通過命令行傳遞參數(shù) 教學(xué)方法:多媒體+板書 參考書目:《面向?qū)ο蟪绦蛟O(shè)計導(dǎo)論》,[美]C.Thomas wu著,電子工業(yè)出版社 專業(yè)詞匯:JDK、lib、bin 備注 第三章:Java語言基礎(chǔ)
第 1、2 節(jié):Java程序的構(gòu)成、數(shù)據(jù)類型、表達(dá)式以及流程控制語句 授課時間:2011-3-
1、2
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會Java基本的數(shù)據(jù)類型和表示方法、數(shù)值類型的運(yùn)算、邏輯運(yùn)算和比較、條件執(zhí)行語句(包括三種條件語句和switch語句)、循環(huán)控制語句(包括for、while、do while循環(huán)及相應(yīng)的輔助語句)、字符串類String和BufferString以及數(shù)組的聲明及使用。
教學(xué)重點:掌握J(rèn)ava基本的數(shù)據(jù)類型和表示方法
教學(xué)難點:理解Java程序的循環(huán)控制語句(包括for、while、do while循環(huán)及相應(yīng)的輔助語句)
教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社 專業(yè)詞匯:變量、數(shù)據(jù)類型、循環(huán)控制語句 備注 第三章:Java語言基礎(chǔ) 第 3 節(jié):Java與C比較
授課時間:2011-3-
8、9
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生在C語言的基本上進(jìn)一步學(xué)習(xí)Java語言。教學(xué)重點:掌握J(rèn)ava語言與C語言的區(qū)別與聯(lián)系。教學(xué)難點:理解Java語言在C語言上的改進(jìn)。教學(xué)方法:多媒體+板書 參考書目:《Java2參考大全(第四版)》,[美]Herbert Schildt著,張玉清、吳浦峰、尚勇等譯,清華大學(xué)出版社。專業(yè)詞匯:Java、C 備注 第四章:抽象、封裝與類
第 1 節(jié):抽象、封裝與Java類的概念
授課時間:2011-3-
15、16
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會面向?qū)ο蟮幕咎卣鳌⒄莆杖绾味x一個類以及如何生成對象、深入掌握方法的定義及技巧、深入掌握類的訪問權(quán)限與封裝機(jī)制、深入掌握包的定義與包的使用方法。
教學(xué)重點:掌握類的定義與對象的生成。教學(xué)難點:理解類的抽象與封裝機(jī)制。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:抽象、封裝、類 備注 第四章:抽象、封裝與類 第 2 節(jié):系統(tǒng)定義的類
授課時間:2011-3-
22、23
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會使用系統(tǒng)定義的類,并掌握與用戶自定義類的區(qū)別。教學(xué)重點:掌握如何定義所需要的類。
教學(xué)難點:熟悉Java平臺定義了哪些經(jīng)常要用到、而且滿足我們需要的類。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:系統(tǒng)定義的類、用戶自定義類 備注 第四章:抽象、封裝與類
第 3 節(jié):類、域和方法的修飾符
授課時間:2011-3-
29、30
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會類的聲明。
教學(xué)重點:掌握如何定義類的修飾和方法的修飾符。教學(xué)難點:熟悉類的變量的定義與使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:成員變量、類變量、成員方法、類方法 備注 第五章:繼承與多態(tài)
第 1、2 節(jié):Java的繼承與派生、域的繼承與隱藏 授課時間:2011-4-
5、6
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生全面掌握面向?qū)ο蟮幕咎卣鳌⒄莆杖绾问褂美^承性來到達(dá)軟件的重用、深入掌握繼承過程中域的隱藏和方法的覆蓋技巧。教學(xué)重點:掌握如何使用繼承性來到達(dá)軟件的重用。教學(xué)難點:熟悉繼承過程中域的隱藏和方法的覆蓋技巧。教學(xué)方法:多媒體+板書 參考書目:《Java2 實用教程》,耿祥義、張躍平編著,清華大學(xué)出版社。專業(yè)詞匯:繼承派生、域、隱藏 備注 第五章:繼承與多態(tài)
第 3、4 節(jié):方法的繼承、重載與覆蓋、this與super、構(gòu)造函數(shù)的繼承與重載 授課時間:2011-4-
12、13
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生通過繼承可以更有效地組織程序結(jié)構(gòu),明確類之間的關(guān)系,并充分利用已有的類來創(chuàng)建新類,通過繼承可以實現(xiàn)代碼的重用,以完成更復(fù)雜的設(shè)計、開發(fā)。教學(xué)重點:掌握類的重載與覆蓋的區(qū)別與聯(lián)系。教學(xué)難點:熟悉類的重載與覆蓋使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:繼承、重載、覆蓋、this、super 備注 第五章:繼承與多態(tài)
第 5、6 節(jié):多態(tài)性的實現(xiàn)、接口聲明與實現(xiàn) 授課時間:2011-4-
19、20
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入掌握抽象類和抽象方法的定義,掌握多態(tài)通過統(tǒng)一多個相關(guān)類的對外接口,在運(yùn)行時根據(jù)不同的情況執(zhí)行不同的操作,提高類的抽象度和靈活性,深入掌握接口的定義和使用技巧。
教學(xué)重點:熟悉多態(tài)性實現(xiàn)的兩種方式以及接口的實現(xiàn)。教學(xué)難點:熟悉多態(tài)性與接口的實現(xiàn)方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:多態(tài)性、接口 備注 第六章:工具類與算法
第 1、2 節(jié):語言基礎(chǔ)類庫、Applet類與小程序的基本原理 授課時間:2011-4-
26、27
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:深入了解Applet生命周期的主要方法和特點、熟練掌握Applet程序的編寫方法、深入了解Applet的安全機(jī)制及其合理運(yùn)用。教學(xué)重點:熟練掌握Applet程序的編寫方法。
教學(xué)難點:深入了解Applet的安全機(jī)制及其合理運(yùn)用。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:Applet、生命周期 備注 第六章:工具類與算法
第 3、4 節(jié):數(shù)組、字符串、常用算法
授課時間:2011-5-
3、4
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會字符串類String和BufferString、數(shù)組的聲明及使用。教學(xué)重點:熟練掌握字符串與數(shù)組的使用方法。教學(xué)難點:深入了解數(shù)組的使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:數(shù)組、字符串 備注 第七章:用戶圖形界面的設(shè)計
第 1、2 節(jié):用戶自定義成分、事件驅(qū)動設(shè)計 授課時間:2011-5-
10、11
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生學(xué)會使用面向?qū)ο蟮某绦蛟O(shè)計方法構(gòu)建圖形用戶界面、深入了解抽象窗口工具包(AWT)、掌握事件處理基本原理和方法。教學(xué)重點:熟練掌握圖形用戶界面的開發(fā)方法。教學(xué)難點:深入了解圖形界面的各種事件。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:AWT、GUI 備注 第七章:用戶圖形界面的設(shè)計
第 3、4 節(jié):GUI對象,包括:按鈕、文本框、鼠標(biāo)、鍵盤等事件的處理、布局設(shè)計 授課時間:2011-5-
17、18
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入了解GUI構(gòu)件及掌握布局控制方法、熟練掌握菜單和對話框、掌握簡單繪圖方法。
教學(xué)重點:熟練使用Java語言提供的布局管理器來管理組件在容器中的布局。教學(xué)難點:深入了解組件在程序中安排中位置和大小使用方法。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:布局管理器、容器 備注 第八章:Java高級編程
第 1、2、3節(jié):異常處理、多線程機(jī)制、Java程序?qū)W(wǎng)上資源的訪問 授課時間:2011-5-
24、25
計劃學(xué)時數(shù):3 教學(xué)任務(wù)與目的:讓學(xué)生深入理解多線程的基本概念、熟練掌握創(chuàng)建線程的兩種基本方法、熟練處理線程的同步問題和死鎖問題、深入理解異常的基本概念、熟悉和掌握J(rèn)ava平臺定義異常類、熟練掌握創(chuàng)建自定義異常類的方法。教學(xué)重點:熟練掌握創(chuàng)建線程的兩種基本方法。教學(xué)難點:深入了解線程的同步問題和死鎖問題。教學(xué)方法:多媒體+板書 參考書目:《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,印旻編著,清華大學(xué)出版社。專業(yè)詞匯:同步、死鎖、多線程、異常
第三篇:Java面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱
Java面向?qū)ο蟪绦蛟O(shè)計課程教學(xué)大綱
Object-Oriented Programming with Java Syllabus
課程名稱 課程類別 建設(shè)單位/教研室 前后課程 適用專業(yè)、層次 Java面向?qū)ο蟪绦蛟O(shè)課程英文名Object-Oriented Programming with Java 計 稱 專業(yè)必修課 學(xué)分/學(xué)時 4.0/42+42 計算機(jī)系/軟件工程教研室 考核方式 考試 C語言程序設(shè)計
軟件工程、計算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程
Upon completion of this course, students should master the basic knowledge of Java language, understand and grasp the basic object-oriented programming design ideas and skillfully use Java language to write, compile and debug programs.These would lay a good foundation for students on independently finish the work of program development with Java in the future.教學(xué)目的
The emphasis: 1.The origin of Java, Why should we learn Java language, Java cross-platform principle analysis(JVM)and Java Environment variable configuration.2.Data and Expressions: including Character Strings, Variables and Assignment, Primitive Data Types, Expressions, Data Conversion, Interactive Programs.3.Oriented object programming ideas: including Class, Object, Variables, Methods, Encapsulation, Inheritance, Polymorphism, Interface and so on.4.Java statements: including conditionals and loops statements.5.Arrays: Declaring and using one-dimensional arrays and two-dimensional arrays.6.Exceptions: including exception handling, uncaught exceptions, and try-catch statement and so on.7.GUI: including event handling and graphics user interface.The difficulty:
Object-oriented concept and idea, establishing application model and algorithm of description, the algorithm optimization of program and so on.教材和主要參考資料: Text and references Text :
John Lewis “Java程序設(shè)計教程(第六版)英文版” 電子工業(yè)出版社 ISBN-978-7-121-08808-7 References:
1.《Java編程思想(英文版 第3版)》,(美)Bruce Eckel編,機(jī)械工業(yè)出版社出版社; 2.Java程序設(shè)計基礎(chǔ)》,(美)Gary J.Bronson編, 趙德奎 林仕平譯,北京大學(xué)出版社。
3.Cay S.Horstmann, Gary Cornell.Java 2核心技術(shù) 卷I:基礎(chǔ)知識.機(jī)械工業(yè)出版社, 2001.4.Cay S.Horstmann, Gary Cornell.Java 2核心技術(shù) 卷II:高級特性.機(jī)械工業(yè)出版社, 2001.教學(xué)內(nèi)容 學(xué)時 基本要求
按章、節(jié)具體列出
教學(xué)內(nèi)容 Topic 具體列出教學(xué)的基本要求,如了解、理解、掌握及應(yīng)用等。
By the end of chapter ,students should understand Chapter 1 Introduction
Chapter 2 Data and ExpressionsChapter 3 Using Classes and Objects Chapter 4 Writing Classes 3+3 To be able to have a fundamental understanding of software role in a computer system.? To know components of a computer ? To understand how those components interact ? To grasp how computers store and manipulate information ? To know how computers are connected into networks to share information.? To profile programming and programming languages ? To profile an introduction to Java ? To grasp object-oriented concepts 3+6 Explore some of the basic types of data used in a Java program and the use of expressions to perform calculations.? To understand character strings, concatenation, and escape sequences.? To grasp the declaration and use of variables.? To be familiar with Java primitive data types.? To understand expressions and operator precedence.? To grasp the syntax and processing of expressions.? To understand the types of data conversions and the mechanisms for
accomplishing them.? To know how to create interactive programs.? To understand the basic graphic concepts and the techniques for drawing
shapes.? To know the concept of a Java applet.4+4 Use the predefined classes in the Java class library that are provided to us to make the process of writing programs easier.? To grasp the creation of objects and the use of object reference variables.? To be familiar with the services provided by the String class.? To know how the java standard class library is organized into packages.? To be familiar with the services provided by the Random and Math class.? To grasp ways to format output using the NumberFormat and DecimalFormat
classes.? To be familiar with enumerated types.? To understand wrapper classes and the concept of autoboxing.? To understand components and containers used in graphics user interfaces.? To know a label component and the use of images.6+6 We've been using predefined classes.Now we will learn to write our own classes to define objects.? To grasp the structure and content of a class definition.? To understand the concept of object state using instance data.? To know the effect of visibility modifiers on methods and data.? To grasp the structure of a method definition, including parameters and return
values.? To grasp the structure and purpose of a constructor.? To grasp the creation of graphical objects.? To understand the concepts needed to create an interactive graphical user
interface.Chapter 5 Conditionals and Loops
Chapter 6 OBJECT-ORIENTED DESIGN
Chapter 7 Arrays
Chapter 8 Inheritance ? To know some basic GUI components and events.4+4 Now we will examine programming statements that allow us to make decisions and repeat processing steps in a loop.? To know the flow of control through a method.? To understand Boolean expressions that can be used to make decisions.? To grasp to perform basic decision making using if and switch statements.? To understand issues pertaining to the comparison of certain types of data.? To grasp familiarly to execute statements repetitively using while, do, and for
loops.? To understand the concept of an iterator object and use one to read a text file.? To know how to draw with the aid of conditionals and loops.? To know more GUI components and events.4+4 Now we can extend our discussion of the design of classes and objects ? To know key issues related to the design of object-oriented software.? To techniques for identifying the classes and objects needed in a program.? To understand the relationships among classes.? To understand the effect on the static modifier on methods and data.? To grasp the creation of a formal object interface.? Further grasp the definition of enumerated type classes.? To grasp issues related to the design of methods, including method
overloading.? To know issues related to the design of graphics user interface, including
layout managers.6+3 Arrays are objects that help us organize large amounts of information ? Define and use arrays for basic data organization.? To know bounds checking and techniques for managing capacity.? To learn to compare the issues related to arrays as objects and arrays of
objects.? To grasp the use of command-line arguments.? To grasp the syntax and use of variable-length parameter lists.? To be familiar with the creation and use of multidimensional arrays.? To be familiar with the ArrayList class and its generic parameter.? To know more mouse and keyboard events.6+6 Inheritance is a fundamental object-oriented design technique used to create and organize reusable classes.? To know the derivation of new classes from existing ones.? To understand the concept and purpose of method overriding.? To grasp the design of class hierarchies.? To grasp the issue of visibility as it relates to inheritance.? To have the ability to derive on interface from another.? To grasp object-oriented design in the context of inheritance.? To know the inheritance structure for GUI components.? To explore the creation of listeners by extending adaptor classes.Chapter 9 Polymorphism 3+3 Chapter 10 Exceptions 3+3 有關(guān)說明:
擬稿(簽名):謝彥麒 Polymorphism is an object-oriented concept that allows us to create versatile software designs ? To understand polymorphism and explore its benefits.? To understand the concept of dynamic binding.? To grasp to use inheritance relationships to create polymorphic references.? To grasp to use interfaces to create polymorphic references.? To grasp sorting and searching using polymorphic implementations.? To be familiar with object-oriented design in the context of polymorphism.? To know the processing of events as an example of polymorphism.? To know more GUI components.Exception handling is an important aspect of object-oriented design ? To know the purpose of exceptions.? To know exception messages and the call stack trace.?
To be familiar with the usage of the try-catch statement for handling exception.? To understand the concept of exception propagation.?
To be familiar with the exception class hierarchy in the Java standard class library.? To be familiar with I/O exception and the ability to write text files.? To know how to create GUI using mnemonics and tool tips.?
To know additional GUI components and containers.核稿(簽名): 審批(簽名): 年 月 日
第四篇:JAVA面向?qū)ο蟪绦蛟O(shè)計教學(xué)大綱
《JAVA面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)大綱
Oriented object Programming in JAVA 編號: 08065121
適用專業(yè):計算機(jī)科學(xué)與技術(shù)、網(wǎng)絡(luò)工程 學(xué)時數(shù):32 學(xué)分?jǐn)?shù):2 執(zhí)筆者:田小玲 編寫日期:2009年11月
一、課程的性質(zhì)和目的
本課程是為計算機(jī)科學(xué)與技術(shù)以及網(wǎng)絡(luò)工程專業(yè)本科生開設(shè)的專業(yè)選修課,是一門面向?qū)ο蟮木幊陶Z言,通過本課程的學(xué)習(xí),培養(yǎng)和提高學(xué)生面向?qū)ο蟪绦蛟O(shè)計的能力和Java語言在web開發(fā)中的應(yīng)用能力。
二、課程教學(xué)內(nèi)容
第一章 面向?qū)ο筌浖_發(fā)概述(2學(xué)時)1.內(nèi)容
面向?qū)ο髥栴}求解的提出、面向?qū)ο髥栴}求解的概述、對象、類與實體、對象的屬性與相互關(guān)系、面向?qū)ο蟮能浖_發(fā)過程、面向?qū)ο蟪绦蛟O(shè)計方法的優(yōu)點、開發(fā)環(huán)境設(shè)置及開發(fā)工具簡介。
2.要求
(1)了解:面向?qū)ο筌浖_發(fā)概述,面向?qū)ο蟮能浖_發(fā)過程及面向?qū)ο蟪绦蛟O(shè)計 方法的優(yōu)點。
(2)掌握:對象的屬性與相互關(guān)系,對象、類與實體的基本概念。(3)熟練掌握:開發(fā)環(huán)境設(shè)置及開發(fā)工具簡介(補(bǔ)充)。3.重點
對象、類與實體的基本概念。
4.難點
面向?qū)ο蟪绦蛟O(shè)計方法的理解。第二章 Java概述(2學(xué)時)1.內(nèi)容
Java語言的特點、Java虛擬機(jī)及垃圾回收機(jī)制、JDK目錄結(jié)構(gòu)、Java 的API結(jié)構(gòu)及Java程序結(jié)構(gòu)、第一個Java Application程序、第一個Java Applet程序、圖形界面的輸入輸出、字符界面的輸入輸出。
2.要求
(1)了解:Java語言的發(fā)展歷史及特點,Java Application程序及Java Applet程 序,圖形界面的輸入輸出,字符界面的輸入輸出。
(2)掌握:Java語言實現(xiàn)機(jī)制(補(bǔ)充),Java體系結(jié)構(gòu)(補(bǔ)充)。(3)熟練掌握:Java Application程序的結(jié)構(gòu)。3.重點
Java Application程序的結(jié)構(gòu)。
4.難點
Java語言實現(xiàn)機(jī)制。
第三章 Java語言基礎(chǔ)(2學(xué)時)1.內(nèi)容
數(shù)據(jù)類型、變量與常量、表達(dá)式、流程控制語句。2.要求
(1)了解:java語言的發(fā)展。
(2)掌握:數(shù)據(jù)類型、變量與常量的定義及使用。(3)熟練掌握:表達(dá)式的使用,流程控制語句。3.重點
表達(dá)式的使用,流程控制語句。
4.難點
流程控制語句的運(yùn)用。
第四章 抽象、封裝與類(6學(xué)時)
1.內(nèi)容
抽象與封裝、Java的類、類的修飾符、域、方法、訪問控制符。2.要求
(1)了解:抽象、封裝概念,系統(tǒng)定義的類。
(2)掌握:類的修飾符(abstract和final),域(包括靜態(tài)域、靜態(tài)初始化器、最終域和易失域),方法(包括抽象方法、靜態(tài)方法、最終方法)。
(3)熟練掌握:用戶程序自定義類及創(chuàng)建對象與定義構(gòu)造函數(shù),訪問控制符(包括public、缺省訪問控制符、private、protected)的運(yùn)用。
3.重點
自定義類、創(chuàng)建對象與定義構(gòu)造函數(shù)。
4.難點
四種訪問控制符的運(yùn)用。第五章 繼承與多態(tài)(4學(xué)時)1.內(nèi)容
Java的繼承、多態(tài)、Java的重載、構(gòu)造函數(shù)的繼承與重載、包及接口的概念。2.要求
(1)了解:繼承及多態(tài)的概念,Java接口的概念。(2)掌握:Java的方法重載,包的創(chuàng)建及引用。(3)熟練掌握:構(gòu)造函數(shù)的繼承與重載。
3.重點
方法的重載、類的繼承。4.難點
屬性的隱藏、方法的覆蓋。第六章 工具類與算法(2學(xué)時)
1.內(nèi)容
語言基礎(chǔ)類庫(包括Object類、數(shù)據(jù)類型類、Math類及System類)、Applet類與Applet小程序、數(shù)組。
2.要求
(1)了解:Applet類與Applet小程序。(2)掌握:Java語言基礎(chǔ)類庫。(3)熟練掌握:數(shù)組的聲明及初始化。3.重點
數(shù)組的聲明及初始化、數(shù)組的應(yīng)用。4.難點
編寫Applet小程序。
第七章 圖形用戶界面的設(shè)計與實現(xiàn)(8學(xué)時)
1.內(nèi)容
圖形用戶界面概述、GUI標(biāo)準(zhǔn)組件概述及布局設(shè)計、Java的事件處理機(jī)制。2.要求
(1)了解:圖形界面組件之間的層次關(guān)系、容器的概念和作用。(2)掌握:圖形用戶界面程序的基本結(jié)構(gòu)。(3)熟練掌握:事件監(jiān)聽機(jī)制。3.重點
圖形用戶界面程序的基本結(jié)構(gòu)。4.難點
Java的事件處理機(jī)制。
第八章 Java高級編程(6學(xué)時)
1.內(nèi)容
異常處理、Java多線程機(jī)制、Swing GUI 組件、流式輸入輸出與文件處理、用Java實現(xiàn)底層網(wǎng)絡(luò)通信、Java程序?qū)W(wǎng)上資源的訪問。
2.要求
(1)了解:例外的概念、Java中線程的基本概念、Java的線程類與Runnable接口及如何在程序中實現(xiàn)多線程、Java輸入輸出類庫及文件的處理與隨機(jī)訪問、使用Java實現(xiàn)底層網(wǎng)絡(luò)通信、Java程序?qū)W(wǎng)上資源的訪問。
3(2)掌握:例外處理機(jī)制。
(3)熟練掌握:Swing GUI組件的運(yùn)用。3.重點
例外處理機(jī)制、Swing GUI組件的創(chuàng)建。
4.難點
自定義異常類。
三、課程教學(xué)的基本要求
課程教學(xué)的基本要求包含三項:上機(jī)環(huán)節(jié)、作業(yè)要求、考試方式。1.上機(jī)環(huán)節(jié)
根據(jù)課堂講授的理論,并結(jié)合上機(jī)操作讓學(xué)生及時掌握每章節(jié)所學(xué)的知識,通過實操可加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計的思想及Java程序設(shè)計的領(lǐng)會。
2.作業(yè)要求
(1)作業(yè)要求:獨立思考完成、書寫工整、按時交(2)作業(yè)量:每次課均布置作業(yè),作業(yè)量約2~3題(3)總作業(yè)量:約30~40道題 3.考試方式
(1)考試方式:閉卷筆試(2)評定成績要求:
總成績=平時成績×30%+考試成績×70%
四、本課程與其它課程的聯(lián)系與分工
1.前期課程:
程序設(shè)計基礎(chǔ)、計算機(jī)網(wǎng)絡(luò)、C語言程序設(shè)計、C++程序設(shè)計 2.后續(xù)課程:
軟件工程、Web應(yīng)用程序開發(fā)
五、建議教材與教學(xué)參考書
[1] 印旻.《Java語言與面向?qū)ο蟪绦蛟O(shè)計》,清華大學(xué)出版社 [2] 於東軍,楊靜宇.《Java程序設(shè)計與應(yīng)用開發(fā)》,清華大學(xué)出版社 [3] 辛運(yùn)幃.《Java程序設(shè)計》,清華大學(xué)出版社 [4] 姜剛.《Java語言程序設(shè)計》,人民郵電出版社 [5] 閻菲.《Java程序設(shè)計教程》,中國水利水電出版社
第五篇:《Java面向?qū)ο蟪绦蛟O(shè)計》實驗-實驗八(輸入輸出流)
廣西科技大學(xué)
計通學(xué)院
《Java面向?qū)ο蟪绦蛟O(shè)計》實驗
實驗八
輸入輸出流
學(xué)生姓名:×××
學(xué)
號:×××
班
級:×××
指導(dǎo)老師:×××
專
業(yè):計算機(jī)科學(xué)與技術(shù)
提交日期:×××年×× 月××日
實驗報告內(nèi)容
1. 實驗?zāi)康?/p>
掌握字符輸入、輸出流用法; 掌握使用Scanner類解析文件; 掌握Console流的使用。
2. 實驗內(nèi)容
實驗教材-第12章實驗1、2、3 字符輸入輸出流;Scanner類和Console類。
要求: 完善程序,給出實驗結(jié)果截圖;
完成試驗后練習(xí)。
3. 程序代碼及運(yùn)行結(jié)果:
實驗1 舉重成績單
// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null;
while((str=bufferRead.readLine())!=null){
double totalScore=Fenxi.getTotalScore(str);str=str+“總成績:”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close();} catch(IOException e){ System.out.println(e.toString());} } }
// Fenxi.java
import java.util.*;public class Fenxi { public static double getTotalScore(String s){ String regex = “[^0123456789.]”;String digitMess = s.replaceAll(regex,“*”);StringTokenizer fenxi = new StringTokenizer(digitMess,“*”);double totalScore=0;while(fenxi.hasMoreTokens()){ double score=Double.parseDouble(fenxi.nextToken());totalScore=totalScore+score;} return totalScore;
} }
// score.txt
姓名:張三,抓舉成績 106kg,挺舉 189kg。姓名:李四,抓舉成績 108kg,挺舉 186kg。姓名:周五,抓舉成績 112kg,挺舉 190kg。
運(yùn)行結(jié)果如圖1所示
圖1
實驗2 統(tǒng)計英文單詞 // WordStatistic.java import java.io.*;import java.util.*;public class WordStatistic { Vector
} catch(IOException exp){ System.out.println(exp.toString());} } void setFileName(String name){ file=new File(name);try{ sc=new Scanner(file);sc.useDelimiter(regex);} catch(IOException exp){ System.out.println(exp.toString());} } void WordStatistic(){ try{ while(sc.hasNext()){ String word=sc.next();allWord.add(word);if(!noSameWord.contains(word))noSameWord.add(word);} } catch(Exception e){} } public Vector
} }
// OutputWordMess.java import java.util.*;public class OutputWordMess { public static void main(String[] args){ Vector if(count[n]>count[m]){ String temp=noSameWord.elementAt(m); noSameWord.setElementAt(noSameWord.elementAt(n), m);noSameWord.setElementAt(temp, n);int t=count[m];count[m]=count[n];count[n]=t;} } } for(int m=0;m 運(yùn)行結(jié)果如圖2所示 圖2 實驗3 密碼流 // PassWord.java import java.io.*;public class PassWord { public static void main(String[] args){ boolean success=false;int count=0;Console cons;char[] passwd;cons=System.console();while(true){ System.out.print(“輸入密碼:”); passwd=cons.readPassword(); count++; String password= new String(passwd); if(password.equals(“tiger123”)){ success=true; System.out.println(“您第”+count+“次輸入的密碼正確!”); break; }else{ System.out.println(“您第”+count+“次輸入的密碼”+password+“不正確!”); }if(count==3){ System.out.println(“您”+count+“次輸入的密碼都不正確!”); System.exit(0); } } if(success){ File file=new File(“score1.txt”); try{ FileReader inOne=new FileReader(file); BufferedReader inTow=new BufferedReader(inOne); String s=null; while((s=inTow.readLine())!=null){ System.out.println(s); } inOne.close(); inTow.close(); }catch(IOException ioe){} } } } // score.txt 姓名:張三,抓舉成績 106kg,挺舉 189kg。姓名:李四,抓舉成績 108kg,挺舉 186kg。姓名:周五,抓舉成績 112kg,挺舉 190kg。 運(yùn)行結(jié)果如圖3所示 圖3 4. 實驗后的練習(xí): 實驗1 有如下格式的成績單(文本格式)score.txt。姓名:張三,數(shù)學(xué)72分,物理67分,英語70分。姓名:李四,數(shù)學(xué)92分,物理98分,英語88分。 姓名:周五,數(shù)學(xué)68分,物理80分,英語77分。要求按行讀入取成績單,并在該行的后面尾加上該同學(xué)的總成績,然后再將該行寫入到一個名字為scoreAnalysis.txt的文件中。// AnalysisResult.java import java.io.*;import java.util.*;public class AnalysisResult { public static void main(String[] args){ File fRead=new File(“score.txt”);File fWrite=new File(“scoreAnalysis.txt”);try{ Writer out=new FileWriter(fWrite,true);BufferedWriter bufferWrite=new BufferedWriter(out);Reader in=new FileReader(fRead);BufferedReader bufferRead=new BufferedReader(in);String str=null; while((str=bufferRead.readLine())!=null){ double totalScore=Fenxi.getTotalScore(str);str=str+“總分:”+totalScore;System.out.println(str);bufferWrite.write(str);bufferWrite.newLine();} bufferRead.close();bufferWrite.close(); } catch(IOException e){ System.out.println(e.toString());} } } // Fenxi.java import java.util.*;public class Fenxi { public static double getTotalScore(String s){ Scanner scanner=new Scanner(s);scanner.useDelimiter(“[^0123456789.]+”);double totalScore=0;while(scanner.hasNext()){ try{ double score=scanner.nextDouble();totalScore=totalScore+score;} catch(InputMismatchException exp){ String t=scanner.next();} } return totalScore;} } // score.txt 姓名:張三,數(shù)學(xué)72分,物理67分,英語70分。姓名:李四,數(shù)學(xué)92分,物理98分,英語88分。姓名:周五,數(shù)學(xué)68分,物理80分,英語77分。 運(yùn)行結(jié)果如圖4所示 圖4 實驗2 按字典序輸出全部不相同的單詞。// Dictionary.java import java.util.*;public class Dictionary { public static void main(String args[]){ Vector WordStatistic statistic=new WordStatistic(); statistic.setFileName(“hello.txt”); statistic.WordStatistic();//statistic調(diào)用WordStatistic()方法 allWord=statistic.getAllWord(); noSameWord=statistic.getNoSameWord(); System.out.println(“共有”+allWord.size()+“個英文單詞”); System.out.println(“有”+noSameWord.size()+“個互不相同英文單詞”); System.out.println(“按字典順序排列:”); String s[]=new String [noSameWord.size()]; for(int i=0;i s[i]=noSameWord.elementAt(i); } Arrays.sort(s); for(int i=0;i System.out.println(s[i]+“ ”); } } } 運(yùn)行結(jié)果如圖5所示 圖5 實驗3 編寫一個程序,程序運(yùn)行時,要求用戶輸入的密碼是:hello。如果用戶輸入了正確的密碼。程序?qū)⑤敵觥澳愫茫瑲g迎你!”。程序允許用戶2次輸入的密碼不正確,一旦超過2次,程序?qū)⒘⒖掏顺觥?/ PassWord.java import java.io.*;import java.util.Scanner;public class PassWord{ public static void main(String args[]){ int count=0;Console cons;String passwd;Scanner sc=new Scanner(System.in);//cons=System.console(); while(true){ System.out.print(“輸入密碼:”); passwd=sc.next();// count++; String password=new String(passwd); if(password.equals(“hello”)){ System.out.println(“你好,歡迎你!”); break; } else{ System.out.println(“您第”+count+“次輸入的密”+password+“不正確”); } if(count==3){ System.out.println(“您”+count+“次輸入的密碼都不正確”); System.exit(0); } } } } 運(yùn)行結(jié)果如圖6所示 圖6 5. 實驗心得和體會 這次實驗中,我感覺比較難理解和掌握的就是Console類 了,在實驗3 密碼流的代碼在eclipse中運(yùn)行出錯如下圖所示: 就是輸入不了密碼,后來通過找尋解決方法,才知道了在JDK 6中java.io.Console類專用來訪問基于字符的控制臺設(shè)備,然后使用cmd命令提示符來運(yùn)行就可以輸入密碼和顯示結(jié)果了。 通過這次實驗,大概了解了字符輸入、輸出流用法,如何去使用Scanner類解析文件,對Console類的使用有個大概的認(rèn)知。總而言之,這次實驗收獲蠻大的,敲代碼的效率比以往提高了,出錯率也少了。