《Java程序設(shè)計案例教程》根據(jù)作者多年的教學經(jīng)驗和軟件開發(fā)經(jīng)驗總結(jié)而來,以大量的實例進行示范和解說,通俗易懂而又有一定的深度。
《Java程序設(shè)計案例教程》共分為12章,首先講述了Java的基本知識,包括JDK的使用、數(shù)據(jù)類型、流程控制等基礎(chǔ)語法知識。隨后介紹了面向?qū)ο蟮木幊讨R,包括封裝和繼承、抽象類、接口、內(nèi)部類、重載、覆蓋等,同時還介紹了Java提供的一些實用工具類,如數(shù)組、字符串等。然后介紹了Java中的一些高級技術(shù),包括異常處理、集合、泛型等。后介紹了到實際工程開發(fā)所需要的一些知識,主要是文件讀寫、多線程設(shè)計和網(wǎng)絡(luò)程序設(shè)計。
《Java程序設(shè)計案例教程》既可作為高等學校計算機及相關(guān)專業(yè)的Java程序設(shè)計和面向?qū)ο笳n程的入門教材,亦可作為使用Java語言進行工程開發(fā)的技術(shù)人員的參考用書。
《Java程序設(shè)計案例教程》配有電子教案,需要的教師可登錄www.cmpedu.com免費注冊,審核通過后下載,或聯(lián)系編輯索取(QQ:2966938356,電話:010-88379739)。
適讀人群 :計算機及相關(guān)專業(yè)本科生
1)每個知識點都采用示例講解為主、理論分析為輔的方式進行介紹。
2)本書的后半部分則著重介紹工程開發(fā)有關(guān)的知識,包括文件讀寫、編碼轉(zhuǎn)換、異常處理、多線程編寫、網(wǎng)絡(luò)程序編寫等。
3)配有作業(yè)系統(tǒng)和全部的實例源代碼。
Java是目前流行的程序開發(fā)語言,作為一種完全面向?qū)ο蟮某绦蛟O(shè)計語言,它具有明顯的優(yōu)點:設(shè)計簡潔而優(yōu)美,使用方便而高效,既像Basic那樣易于入門,又像C/C++那樣具有強大的實際應用能力。而且與其他純粹的語言不同,Java其實是一個完整的技術(shù)平臺,這也就決定了學習Java和其他語言的一些區(qū)別。
《Java程序設(shè)計案例教程》深入淺出、由易到難地介紹了有關(guān)Java的所有語言基礎(chǔ)知識,每個知識點都采用示例講解為主、理論分析為輔的方式進行介紹。對于初學者容易犯的錯誤,都有詳細的說明和提示。本書的后半部分則著重介紹工程開發(fā)有關(guān)的知識,包括文件讀寫、編碼轉(zhuǎn)換、異常處理、多線程編寫、網(wǎng)絡(luò)程序編寫等,這些內(nèi)容是作者多年從事工程開發(fā)所積累的經(jīng)驗和技巧,希望從事工程開發(fā)的讀者仔細閱讀這一部分。
《Java程序設(shè)計案例教程》每個例子都著重于Java知識點本身,盡量淺顯易懂,不涉及其他專門知識。為了讓讀者養(yǎng)成良好的編程習慣,本書的程序代碼均盡量按照軟件工程中的規(guī)范來編寫。全書配合了大量的示例程序、圖例及代碼說明,所有示例程序作者均仔細調(diào)試過。
《Java程序設(shè)計案例教程》共分12章(帶星號*的章節(jié)為選講章節(jié),其他章節(jié)為必修章節(jié)),各章內(nèi)容具體如下。
第1和第2章是Java基礎(chǔ)知識,介紹了Java的開發(fā)運行環(huán)境、數(shù)據(jù)類型、流程控制等。最后以幾個實例引導讀者步入程序設(shè)計的大門。這兩章是整個Java程序設(shè)計的基礎(chǔ)。
第3~6章介紹了如何使用Java面向?qū)ο蟮奶匦赃M行程序設(shè)計。主要介紹了對象和類的定義與使用;數(shù)組和字符串;常用的工具類;面向?qū)ο蟮母呒壧匦裕憾鄳B(tài)和繼承;一些面向?qū)ο蟮臄U展功能:抽象類、內(nèi)部類和包的使用。
第7~9章介紹了Java編寫實用程序時必不可少的一些功能,包括異常處理機制、輸入和輸出、文件讀寫、多線程的實現(xiàn)。
第10和第11章介紹了Java中的一些高級技術(shù),包括泛型和集合。這些內(nèi)容是編寫復雜實用程序的基礎(chǔ),利用它們,可以大大降低編程的繁瑣程度和難度。
第12章詳細介紹了C/S模式的網(wǎng)絡(luò)程序設(shè)計,主要是利用Socket進行網(wǎng)絡(luò)通信。
《Java程序設(shè)計案例教程》由劉新主編,嚴思靜、曹明剛參編。其中,嚴思靜編寫了第1章和第2章,劉新編寫了第3章和第5~12章,曹明剛編寫了第4章。張輝、李亭葳參與了本書的校對工作,在此一并表示感謝。全書由劉新統(tǒng)稿。
由于篇幅所限,本書未提供習題。作為補充,本書配有作業(yè)系統(tǒng),需要的教師可發(fā)送郵件,獲取免費使用該系統(tǒng)布置的程序設(shè)計作業(yè)的授權(quán)。本書所有的示例程序亦在此網(wǎng)站下載。
由于時間倉促,書中難免有疏漏和不足之處,歡迎讀者批評指正。
前言
第1章開發(fā)運行環(huán)境
1.1Java的運行環(huán)境與虛擬機
1.2Java的開發(fā)環(huán)境
1.2.1JDK的安裝
1.2.2設(shè)置系統(tǒng)環(huán)境變量
1.2.3編譯命令的使用
1.2.4解釋執(zhí)行命令的使用
1.2.5一個簡單的集成開發(fā)工具
1.3案例:一個簡單的Java應用程序
第2章語言基礎(chǔ)
2.1Java語言概述
2.1.1Java語言特點
2.1.2Java程序的構(gòu)成
2.1.3程序文本風格
2.2數(shù)據(jù)及類型轉(zhuǎn)換
2.2.1基本數(shù)據(jù)類型
2.2.2常量
2.2.3變量
2.2.4數(shù)據(jù)類型轉(zhuǎn)換
2.3運算符與表達式
2.3.1算術(shù)運算符和算術(shù)表達式
2.3.2關(guān)系運算符和關(guān)系表達式
2.3.3邏輯運算符和邏輯表達式
2.3.4條件運算符和條件表達式
2.3.5位運算符和位運算表達式
2.3.6賦值運算符和賦值表達式
2.3.7表達式的求值順序
2.4流程控制語句
2.4.1順序語句
2.4.2分支語句
2.4.3循環(huán)語句
2.5控制臺輸入和輸出
2.5.1控制臺輸入類Scanner
2.5.2格式化輸出printf
2.6應用實例
2.6.1案例1:求最大公約數(shù)和最小公倍數(shù)
2.6.2案例2:Fibonacci數(shù)列
2.6.3案例3:拆分數(shù)字
2.6.4案例4:輸出九九乘法表
第3章面向?qū)ο蠡A(chǔ)
3.1面向?qū)ο蟮幕靖拍?
3.1.1對象
3.1.2類
3.1.3消息
3.1.4面向?qū)ο蟮?個基本特征
3.2類與對象
3.2.1類的聲明和定義
3.2.2對象的使用
3.3成員變量
3.3.1成員變量的定義
3.3.2成員變量的訪問權(quán)限
3.3.3實例成員變量和靜態(tài)成員變量
3.4成員方法
3.4.1方法的聲明和定義
3.4.2方法的調(diào)用
3.4.3隱含參數(shù)this
3.5構(gòu)造方法
3.5.1無參數(shù)構(gòu)造方法的定義和使用
3.5.2帶參數(shù)構(gòu)造方法的定義和使用
3.5.3this關(guān)鍵字和構(gòu)造方法的調(diào)用
3.6靜態(tài)方法
3.6.1靜態(tài)方法的聲明和定義
3.6.2靜態(tài)方法和實例方法的區(qū)別
3.6.3靜態(tài)代碼塊
3.6.4再論靜態(tài)成員變量
3.7main()方法和命令行參數(shù)
3.8案例: 學生類示例
第4章常用工具類
4.1數(shù)組
4.1.1一維數(shù)組
4.1.2二維數(shù)組
4.1.3for-each循環(huán)
4.1.4案例1:數(shù)組排序
4.1.5案例2:楊輝三角
4.2字符串
4.2.1String對象
4.2.2StringBuffer對象
4.2.3案例3:字符串排序
4.3Runtime類
4.3.1內(nèi)存管理
4.3.2執(zhí)行其他程序
4.4System類
4.4.1利用currentTimeMillis()記錄程序執(zhí)行的時間
4.4.2利用exit()退出虛擬機
4.4.3獲取環(huán)境屬性
4.5Math類
4.5.1利用隨機數(shù)求π值
4.5.2利用三角函數(shù)求π值
4.5.3指數(shù)和對數(shù)函數(shù)
4.5.4取整函數(shù)
4.6Random類的使用
4.7日歷類
4.7.1Date類的使用
4.7.2使用SimpleDateFormat格式化輸出時間
4.7.3Calendar類的特色
4.7.4案例4:利用GregorianCalendar輸出日歷
4.8Formatter類
4.8.1Formatter類的簡單使用
4.8.2時間格式轉(zhuǎn)換符詳解
4.8.3格式說明符語法圖
4.9類型包裝器
第5章繼承和多態(tài)
5.1繼承的基本原理
5.2子類對父類的繼承
5.3繼承機制
5.3.1屬性的隱藏
5.3.2方法的覆蓋
5.3.3構(gòu)造方法沒有繼承機制
5.3.4父類變量引用子類對象
5.3.5繼承的內(nèi)部處理
5.4super關(guān)鍵字
5.4.1使用super引用父類的成員
5.4.2使用super調(diào)用父類的構(gòu)造方法
5.5接口與多重繼承
5.5.1接口的定義
5.5.2接口的繼承
5.5.3接口的實現(xiàn)
5.6重載
5.6.1普通方法的重載
5.6.2構(gòu)造方法的重載
5.6.3重載的解析
5.6.4重載與覆蓋的區(qū)別
5.7運行時多態(tài)
5.7.1實例方法的運行時多態(tài)
5.7.2成員變量運行時的表現(xiàn)
5.7.3靜態(tài)方法運行時的表現(xiàn)
5.8案例:圖形類示例
第6章特殊類與包
6.1抽象類與抽象方法
6.1.1抽象方法的聲明
6.1.2抽象類的定義
6.1.3抽象方法與回調(diào)函數(shù)
6.2最終類與最終方法
6.3內(nèi)部類
6.3.1內(nèi)部類的定義
6.3.2內(nèi)部類訪問外部類的成員
6.3.3內(nèi)部類之間的相互使用
6.3.4在外部使用內(nèi)部類
6.3.5匿名內(nèi)部類
6.3.6內(nèi)部類的作用
6.4包
6.4.1包的創(chuàng)建
6.4.2包的使用
6.4.3JAR文件的創(chuàng)建和使用
6.4.4JDK中的常用包
第7章異常處理
7.1異常處理機制簡介
7.1.1異常處理的作用
7.1.2Java的異常處理機制
7.1.3異常類的層次結(jié)構(gòu)
7.2異常處理類型
7.2.1運行時異常
7.2.2檢查型異常
7.2.3自定義異常
7.3異常處理機制
7.3.1捕獲和處理異常
7.3.2拋出異常
7.3.3try-catch-finally語句的嵌套
7.3.4try-with-resource語句
7.3.5用戶自定義異常
7.4案例:使用異常機制來實現(xiàn)鍵盤輸入
第8章輸入和輸出
8.1文件和輸入/輸出流
8.2字節(jié)流
8.2.1InputStream中的方法
8.2.2OutputStream中的方法
8.2.3文件輸入流FileInputStream
8.2.4文件輸出流FileOutputStream
8.2.5案例1:保存用戶輸入的數(shù)據(jù)到文件
8.2.6案例2:顯示文件內(nèi)容
8.2.7案例3:文件的復制
8.3字符流
8.3.1InputStreamReader類中的方法
8.3.2OutputStreamWriter類中的方法
8.3.3案例4:保存鍵盤輸入到文件
8.3.4案例5:文件編碼轉(zhuǎn)換
8.4文件屬性處理
8.4.1File類中的方法
8.4.2案例6:文件列表
8.5隨機訪問文件
8.5.1RandomAccessFile類中的方法
8.5.2案例7:文件加密
第9章多線程
9.1線程的概念
9.1.1多線程的特點
9.1.2線程的狀態(tài)
9.2Thread類
9.2.1Thread類的構(gòu)造方法
9.2.2Thread類的常用方法
9.3多線程程序的編寫
9.3.1利用Thread的子類創(chuàng)建線程
9.3.2實現(xiàn)Runnable接口創(chuàng)建線程
9.3.3使用isAlive()和join()等待子線程結(jié)束
9.3.4設(shè)置線程優(yōu)先級
9.4線程的通信與協(xié)調(diào)
9.4.1線程的互斥
9.4.2線程的同步
9.4.3暫停、恢復和停止線程
9.4.4案例:生產(chǎn)者-消費者問題
*第10章泛型
10.1泛型概述
10.1.1案例1:一個關(guān)于泛型的簡單例子
10.1.2案例2:帶兩個類型參數(shù)的泛型類
10.2泛型的基礎(chǔ)知識
10.2.1有界類型
10.2.2通配符參數(shù)
10.2.3泛型方法
10.2.4泛型接口
10.3泛型類的繼承
10.3.1以泛型類為父類
10.3.2以非泛型類為父類
10.3.3運行時類型識別
10.3.4強制類型轉(zhuǎn)換
10.3.5繼承規(guī)則
10.4泛型的本質(zhì)
10.4.1擦拭
10.4.2擦拭帶來的錯誤
10.5泛型的局限
10.5.1不能使用基本類型
10.5.2不能使用泛型類異常
10.5.3不能使用泛型數(shù)組
10.5.4不能實例化參數(shù)類型對象
*第11章集合
11.1集合接口與抽象類
11.1.1Collection接口
11.1.2Iterator接口
11.1.3AbstractCollection抽象類
11.1.4幾個常用術(shù)語
11.2集合類的使用
11.2.1順序表(ArrayList)的使用
11.2.2鏈表(LinkedList)的使用
11.2.3優(yōu)先隊列(PriorityQueue)的使用
11.2.4哈希集合(HashSet)的使用
11.2.5哈希映射類(HashMap)的使用
11.2.6有序樹(TreeSet)的使用
11.2.7有序樹映射類(TreeMap)的使用
11.3常用算法
11.3.1Collections中的簡單算法
11.3.2排序
11.3.3二分查找
11.4遺留的類和接口
11.4.1Enumeration接口簡介
11.4.2向量類(Vector)簡介
11.4.3棧(Stack)使用示例
11.4.4字典(Dictionary)簡介
11.4.5哈希表(Hashtable)簡介
第12章網(wǎng)絡(luò)程序設(shè)計
12.1與網(wǎng)絡(luò)相關(guān)的常用術(shù)語
12.2InetAddress類使用示例
12.3URL類和URLConnection類的使用
12.3.1案例1:用URL類實現(xiàn)一個簡單的瀏覽器
12.3.2案例2:用URLConnection類實現(xiàn)文件下載
12.4Socket的使用
12.4.1客戶端創(chuàng)建Socket對象
12.4.2服務器端創(chuàng)建ServerSocket對象
12.4.3案例3:一對一的通信
12.4.4案例4:一對多的通信
12.4.5案例5:簡單的聊天程序
12.5UDP數(shù)據(jù)報通信
12.5.1DatagramSocket的使用方法
12.5.2DatagramPacket的使用方法
12.5.3案例6:用UDP實現(xiàn)的聊天程序