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