北理工《Java程序設計》課程教學資源索引(新增Android基礎——課件全套更新完畢)

北理工《Java程序設計》課程教學資源索引


說明:

本資源爲北京理工大學計算機學院2011年《Java技術及應用》課程的最新課件,主講教師金旭亮,隨課程的進行而同步發佈,可以自由傳播,但不得用於商業盈利目的。

本課程針對零Java編程基礎的計算機專業學生,前提是學過C語言。

課程主要講授J2SE,教學目的是帶領學生邁入Java開發的大門,初步理解和把握面向對象的思想與理論,爲進一步學習J2EE,或者Android開發掃清障礙。

所提供之示例均使用Eclipse Indigo,在JDK 1.6下調試通過。


                                                    金旭亮

                                               2011.9.13


=======================================================================

第一部分  Java開發基礎


第一講:Java導論與開發環境包括兩個PDF文檔,主要介紹Java的基礎知識、Java開發環境的搭建,以及Java開發工具的選擇和使用,是Java學習的第一步。

1 Java導論與Java開發環境  2 Eclipse初步

第二講 Java應用程序與Applet包容一個pdf文檔及相關示例源碼。本講主要介紹兩種最基本的Java程序類型,並介紹Java編程的一些基礎知識。

第三講 Java語法基礎包容兩個pdf文檔及相關示例源碼。

1 Java語法基礎  2 程序控制結構

這一講基本上介紹完了Java最基本的語法,學生已經可以使用Java編寫簡單的”結構化“程序。另外,爲方便學習,資源包中還添加了從Oracle網站上下載的Java語言規範3.0(pdf版本)。

第四講  數組

與C不一樣,Java中的數組是一個對象,並且擁有一些獨特的性質(比如可以定義“不整齊”的多維數組,本質上是以“數組”爲“元素類型”的一維數組),另外,數組在實際開發中用得很廣泛,本講介紹了數組排序與查找的示例,並佈置了一個作業:將數字轉換爲”漢字表達“。此作業的參考答案在下次課程中給出。

第五講 方法

本講介紹Java編程中與”方法“相關的特性,其中的重點是”方法重載(overload)“的概念。另外,本講還介紹了JDK中用於處理日期Calenda類的使用方法,同學們將會發現這個類擁有一些比較特殊的行爲特性,這些特性可能有點違背“常識”。Calenda類的設計是好是壞,就由同學們自己感悟吧。

第六講 字符串

Java中字符串是一個對象,它的最大特點是“只讀”。同學們需要理解爲什麼Java要將字符串設置爲只讀的,字符串賦值的真正含義,如果的確需要一個能修改內容的字符串,應該選用哪個類。除此之外,還簡要介紹了另幾個與字符串處理相關的類。


到此爲止,Java編程基礎介紹完畢。後繼的課程將系統介紹Java的面向對象特性,這些是重點內容,對同學們參與實際項目開發非常重要,必須紮實掌握。


第二部分  Java面向對象特性


第七講  面向對象理論基礎

本講以一個小學數學題爲例,講解結構化方法與面向對象方法差異,並介紹了OOA、OOD和OOP的概念,對“愚公移山”這一傳統故事從“軟件開發”的視角進行重新解釋,幫助同學們直觀地瞭解面向對象軟件的開發過程。

第八講 創建與使用類

類和對象是面向對象編程的兩個核心概念,本講介紹了Java面向對象編程中至關重要的內容:類的“模板”,原始數據類型與對象類型變量的內存模式,類的靜態成員,類初始化塊,包裝類,特別地,在本講的最後介紹了JDK所提供的一個字節碼反彙編器javap,向同學們展示了使用javap分析代碼的基本技巧 。

第九講 包

主要介紹如何使用包中的類,如何自定義包,下載的資源中除了本講相關資料外,還包括第五講佈置的作業參考答案。

第十講 繼承、接口與多態

本講介紹面向對象的核心特性,以一個“動物園”示例直觀展示了多態應用於開發所帶來的好處,並通過javap反彙編展示編譯器是如何爲多態代碼生成字節碼指令,而這些指令又是如何在運行時實現多態特性的。

第十一講 內部類

本講內容比較簡單,主要是Java的內部類特性。內部類在實際開發中用得較多,關鍵點在於瞭解清楚內部類如何訪問外部類中的成員。

第十二講 異常處理

本講介紹Java異常處理機制的基礎知識,這部分內容比較重要,在實際開發中有廣泛的應用。

第十三講 對象組合與數據結構

本講集中介紹Java面向對象編程的基本技巧,特別是如何使用Java實現常見的鏈表、隊列、樹等數據結構。用面向對象的思想編程實現各種數據結構,是每一名Java軟件工程師所必須具備的基本技能

另外,本資源包中還包容了兩個課程設計題目

1 設計一個支持多級括號及運算符優先級的“四則運算計算器”

2 設計一個能求解線性方程組的程序

通過完成這兩個程序設計題目,能充分鍛鍊同學們的開發能力,促進對數據結構與算法的學習。有關數據結構與算法的問題經常會成爲大公司的面試題。

第十四講 對象集合

JDK中提供了數十個大大小小的對象集合類型,基本上能滿足開發中的實際需求。但由於歷史原因,JDK中的這些集合類在設計上存在着一些不合理的地方,包容了一些陷阱。本講會涉及一些這方面的內容,同時展示如何通過閱讀JDK源碼理解Java集合類的特性,並幫助同學們“繞開”這些隱藏的陷阱。

第十五講 泛型程序設計

依稀記得在Java剛出來沒多久時,記者採訪Java之父——James Gosling,他說Java不打算引入泛型,但形勢比人強,當一種語言被廣泛使用時,原先覺得並不重要的功能反而突顯出來,Java最終還是引入了泛型。但由於最初並未考慮泛型,所以JVM基本上對泛型是“無視”的,這導致javac不得不將泛型代碼“翻譯”爲傳統的代碼。本講介紹了Java泛型編程的特點,其中有關編譯器翻譯泛型代碼的“擦除”原理是重點,理解它是把握Java泛型編程特性的關鍵。

到此爲止,有關Java面向對象基本特性介紹完畢,後面將介紹JDK中另外一些比較深入的技術領域。


第三部分 深入Java技術領域


第十六講 Java GUI界面設計與事件處理

本講包容4個PDF文檔以及數十個代碼示例,系統地介紹了Java AWT與Swing開發GUI應用程序的基礎知識。雖然由於性能問題,直接使用Java開發桌面應用相當罕見,但本部分所涉及到的知識卻相當有用,特別是AWT事件處理模型,在實際開發中有廣泛的應用,需仔細理解並把握。另外,有關容器的概念,有關佈局管理器的功用,都能自然地延伸到Android應用開發領域。

JDk中有關Java 2D API部分的內容並未介紹,JavaFX和SWT也僅是提了一下,需要用到它們的同學請自學。

第十七講 文件與流操作

Java中存取文件內容是通過流對象實現的,而在J2EE開發中,很多技術都要應用流來傳輸與存儲信息,因此掌握本講的內容是進一步學習J2EE技術的前提。JDK中與流相關的類型有數十個,相當地繁雜,本講選擇了一些進行詳細介紹,其餘的只是提供一些實例供大家自行閱讀。

第十八講 序列化

序列化是一個很重要的技術,它的主要用途是把內存中的對象保存到一個流中。其他領域的技術有很多都應用了序列化,因此,它也是必須掌握的內容。


第十九講 反射

本講包容3個內容:1 反射技術基礎 2 JavaBean 3 註解。這三個技術在許多Java框架中用得很多。默認情況下,本講用到的組件Eclipse中都已默認安裝,爲了方便起見,在資源包中也提供了獨立的組件包,可以在Eclipse中添加到項目的Build Path中。


第二十講 Ant

Ant是Java平臺上一個非常優秀的自動化構建工具,簡單易用同時又功能強大。本講介紹Ant的相關知識。爲了便於學習,我從Apache網站上下載了Ant 1.8.2的組件包、文檔與源碼,一併加入到了教學資源包中。


第二十一講 多線程

在多核時代,多線程是所有Java開發者必須掌握的技能。本講介紹了Java多線程開發的基礎知識,並從JDK中選取典型的常用的組件(比如各種鎖和線程安全的數據結構)進行了介紹。我從互聯網上搜集到了一些公司面試的真實Java多線程試題,將它們作爲教學實例一併加入到了教學資源包中,相信會對同學們順利通過技術面試有所幫助。

到此爲止,本學期有關J2SE部分的基礎教學內容講授完畢。作爲Java平臺技術的自然延伸,下一講將介紹Android平發平臺的基礎知識。


第二十二講 Android開發技術基礎

包容4個PDF文檔及若干個示例項目,主要介紹Android開發環境的搭建、Android應用的開發過程及Android編程中的核心概念,其目的主要是幫助學生初步瞭解Android平臺,爲其順利進行Android開發打開大門。


至此,《Java技術及應用》課程全部更新完畢,這套教學資源彙集了我所讀過的多本Java技術書籍以及多個在互聯網上公開發布的其他網友奉獻的技術資源,難於一一列舉,特在此對奉獻這些免費優質技術資源的人表示感謝。我個人主要完成的工作是,對這些龐雜的技術資源進行了整理與重構,便於教師教學和學生自學,希望我所發佈的這些資料能給Java教師提供更豐富的教學資源,也能幫助廣大初學者更有效率地學習和掌握軟件技術。


謝謝大家!


                                                                            金旭亮

                                                                          2011.11.1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章