本書以面向?qū)ο蟪绦蛟O(shè)計的思想為主線,全面細致地介紹了Java程序設(shè)計的基礎(chǔ)知識、特點及相關(guān)應(yīng)用,注重引導(dǎo)讀者從C語言的以函數(shù)為主的面向過程程序設(shè)計,過渡到以類和對象為主的面向?qū)ο蟮某绦蛟O(shè)計。本書共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數(shù)組與集合,異常和異常處理,輸入/輸出與文件管理,數(shù)據(jù)庫編程、多線程,Java網(wǎng)絡(luò)編程,JavaFX基礎(chǔ)和JavaFX Scene Builder等方面的內(nèi)容。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者的學(xué)習(xí)用書和各類Java程序設(shè)計培訓(xùn)班的教學(xué)用書。
除了Java程序設(shè)計基礎(chǔ)知識外,引入JavaFX等相關(guān)知識,區(qū)別于其他Java教材
劉瑞新老師的Java新作
Java是一種經(jīng)典的程序設(shè)計語言,它全面支持面向?qū)ο蟮某绦蛟O(shè)計方法。因此,Java在國內(nèi)外各個領(lǐng)域中得到了廣泛的應(yīng)用,有著極高的市場占有率。本教材以Eclipse 4.7 + JRE 10.0為開發(fā)平臺,結(jié)合大量易于理解的實例,面向初步學(xué)習(xí)了C語言的讀者,從面向?qū)ο蟪绦蛟O(shè)計的角度,循序漸進地展開了Java程序設(shè)計基礎(chǔ)知識和編程技術(shù)的介紹。在內(nèi)容講述上以深入淺出的布局,結(jié)合直觀的圖示、演練、實訓(xùn)以及在源代碼中盡可能多地添加注釋等手段,使讀者能夠較輕松地理解面向?qū)ο缶幊痰幕靖拍詈退枷搿?br> 本教材重點突出面向?qū)ο蟮某绦蛟O(shè)計思想,不僅在講述內(nèi)容上詳細介紹了面向?qū)ο蟮南嚓P(guān)概念及編程技術(shù),而且在幾乎所有演練、實訓(xùn)中采用“任務(wù)驅(qū)動”的方式,強調(diào)使用面向?qū)ο蟮某绦蛟O(shè)計方法來實現(xiàn)程序功能。注重引導(dǎo)讀者從C語言的以函數(shù)為主的面向過程程序設(shè)計,過渡到以類和對象為主的面向?qū)ο蟮某绦蛟O(shè)計方法。
本教材共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數(shù)組與集合,異常和異常處理,輸入/輸出與文件管理,數(shù)據(jù)庫編程、多線程,Java網(wǎng)絡(luò)編程,JavaFX基礎(chǔ)和JavaFX Scene Builder等方面的內(nèi)容。
作者講授程序設(shè)計語言課程多年,并參加過許多實際應(yīng)用系統(tǒng)的開發(fā),有豐富的教學(xué)經(jīng)驗和實踐經(jīng)驗。在教材內(nèi)容的處理上,緊緊抓住面向?qū)ο蟮某绦蛟O(shè)計思想這條主線,使學(xué)生通過本教材的學(xué)習(xí),不但能學(xué)會Java程序設(shè)計的基本知識、設(shè)計思想和方法,還能很容易地過渡到其他面向?qū)ο蟪绦蛟O(shè)計語言的學(xué)習(xí)與使用上。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者和各類Java程序設(shè)計培訓(xùn)班的教學(xué)用書。本書配套有完整的教學(xué)用PPT課件,并提供所有演練、實訓(xùn)的源代碼,需要的讀者可從機械工業(yè)出版社教學(xué)服務(wù)網(wǎng)(http://www.cmpedu.com)中下載。
本書由崔淼、趙曉華主編,其中,李鴻雁編寫第1、10章,崔淼編寫第2、3、4、5章,劉瑞新、劉克純、駱秋容、翟麗娟、徐維維編寫第6章,彭姣編寫第7章,許萌編寫第8章,趙曉華編寫第9章,蘇繼斌編寫第11、12章,程序的上機調(diào)試、代碼優(yōu)化及教學(xué)課件由趙曉華制作完成。本書由劉瑞新教授統(tǒng)稿。編寫過程中得到了許多一線教師的大力支持,提出了許多寶貴意見,使本書更加符合教學(xué)規(guī)律,在此感謝。
由于計算機信息技術(shù)發(fā)展迅速,書中難免有不足和謬誤之處,懇請廣大讀者批評指正。
前言
第1章 Java語言概述1
1.1 Java語言的特點及相關(guān)概念1
1.1.1 Java語言的特點1
1.1.2 與Java相關(guān)的幾個概念2
1.2 Java與面向?qū)ο蟮某绦蛟O(shè)計3
1.2.1 Java應(yīng)用程序的構(gòu)成3
1.2.2 創(chuàng)建、編譯和執(zhí)行Java應(yīng)用程序4
1.2.3 Java源程序的編寫要求7
1.3 Java的數(shù)據(jù)類型7
1.3.1 基本類型和引用類型8
1.3.2 變量與常量9
1.3.3 數(shù)據(jù)類型的轉(zhuǎn)換12
1.3.4 字符串的常用操作方法14
1.3.5 常用數(shù)學(xué)方法和隨機數(shù)14
1.4 運算符和表達式15
1.4.1 算術(shù)運算符與算術(shù)表達式15
1.4.2 關(guān)系運算符與關(guān)系表達式16
1.4.3 布爾運算符與布爾表達式17
1.5 安裝和使用Java IDE環(huán)境18
1.5.1 安裝和使用Eclipse18
1.5.2 安裝和使用NetBeans23
1.6 實訓(xùn) Eclipse和NetBeans的
安裝和使用24
1.6.1 實訓(xùn)目的24
1.6.2 實訓(xùn)要求24
第2章 類和對象26
2.1 面向?qū)ο蟪绦蛟O(shè)計的概念26
2.1.1 面向?qū)ο笈c傳統(tǒng)編程方法的不同26
2.1.2 類和對象概述27
2.2 類的方法29
2.2.1 數(shù)據(jù)的輸入和輸出29
2.2.2 選擇結(jié)構(gòu)程序設(shè)計30
2.2.3 循環(huán)結(jié)構(gòu)程序設(shè)計36
2.2.4 方法的聲明和調(diào)用40
2.2.5 方法的重載42
2.2.6 方法調(diào)用中的參數(shù)傳遞43
2.3 創(chuàng)建和使用類43
2.3.1 類的管理和類成員44
2.3.2 創(chuàng)建類45
2.3.3 字段與局部變量的區(qū)別47
2.3.4 創(chuàng)建和使用類的對象47
2.4 類成員的封裝48
2.4.1 字段的封裝48
2.4.2 方法的封裝49
2.5 構(gòu)造方法和匿名對象50
2.5.1 類的構(gòu)造方法50
2.5.2 匿名對象52
2.6 實訓(xùn) 創(chuàng)建和使用類53
2.6.1 實訓(xùn)目的53
2.6.2 實訓(xùn)要求53
2.6.3 實訓(xùn)步驟55
第3章 深入理解類及其成員59
3.1 類之間的關(guān)系59
3.1.1 UML簡介59
3.1.2 依賴關(guān)系61
3.1.3 關(guān)聯(lián)關(guān)系61
3.1.4 聚合與組合62
3.2 方法的特殊用法62
3.2.1 在構(gòu)造方法中調(diào)用其他構(gòu)造方法62
3.2.2 私有構(gòu)造方法和單例模式63
3.2.3 參數(shù)長度可變的方法64
3.3 類的實例成員和靜態(tài)成員65
3.3.1 Java變量的內(nèi)存分配機制65
3.3.2 實例成員65
3.3.3 靜態(tài)字段66
3.3.4 靜態(tài)方法68
3.3.5 靜態(tài)初始化器68
3.4 final修飾符70
3.4.1 使用final修飾類及其成員70
3.4.2 使用final修飾基本類型和引用
類型變量的區(qū)別71
3.5 使用第三方類文件71
3.5.1 使用其他源程序文件或字節(jié)碼
文件中的類71
3.5.2 使用Eclipse的導(dǎo)出功能創(chuàng)建
JAR包74
3.5.3 安裝和使用FatJAR插件75
3.5.4 引用第三方JAR包77
3.5.5 反編譯.class文件78
3.6 實訓(xùn) 團隊合作項目開發(fā)79
3.6.1 實訓(xùn)目的79
3.6.2 實訓(xùn)要求79
3.6.3 實訓(xùn)步驟80
第4章 繼承、抽象類、接口和多態(tài)87
4.1 繼承87
4.1.1 創(chuàng)建類的子類87
4.1.2 調(diào)用父類構(gòu)造方法和super
關(guān)鍵字89
4.1.3 方法的重寫與父類字段的隱藏93
4.1.4 Object類94
4.1.5 繼承的利弊與使用原則98
4.2 抽象類和接口98
4.2.1 抽象類98
4.2.2 接口102
4.2.3 接口的引用105
4.2.4 接口與抽象類的比較106
4.3 內(nèi)部類和匿名內(nèi)部類107
4.3.1 內(nèi)部類107
4.3.2 匿名內(nèi)部類109
4.4 多態(tài)110
4.4.1 通過重載和重寫實現(xiàn)多態(tài)111
4.4.2 通過動態(tài)綁定實現(xiàn)多態(tài)111
4.5 實訓(xùn) 創(chuàng)建和使用抽象類112
4.5.1 實訓(xùn)目的112
4.5.2 實訓(xùn)要求112
4.5.3 實訓(xùn)步驟113
第5章 數(shù)組與集合115
5.1 數(shù)組的概念115
5.1.1 一維數(shù)組115
5.1.2 二維數(shù)組118
5.2 數(shù)組的操作122
5.2.1 數(shù)組的復(fù)制122
5.2.2 使用foreach循環(huán)123
5.2.3 數(shù)組的排序、查找和比較124
5.2.4 使用Arrays類操作數(shù)組126
5.3 將字符串轉(zhuǎn)換成數(shù)組128
5.3.1 將字符串轉(zhuǎn)換成字符數(shù)組129
5.3.2 將有分隔符的字符串轉(zhuǎn)換成數(shù)組130
5.4 集合132
5.4.1 ArraysList類132
5.4.2 LinkedList類134
5.4.3 使用Hashtable類136
5.5 實訓(xùn) 設(shè)計一個簡單圖書管理
程序142
5.5.1 實訓(xùn)目的142
5.5.2 實訓(xùn)要求142
5.5.3 實訓(xùn)步驟143
第6章 異常和異常處理147
6.1 異常的概念147
6.1.1 錯誤與異常147
6.1.2 Java的異常處理機制148
6.2 異常處理151
6.2.1 try finally語句151
6.2.2 throw和throws語句153
6.3 自定義異常155
6.3.1 定義和使用自定義異常155
6.3.2 異常使用的注意事項157
6.4 實訓(xùn) 使用自定義異常157
6.4.1 實訓(xùn)目的157
6.4.2 實訓(xùn)要求158
6.4.3 實訓(xùn)步驟158
第7章 輸入/輸出與文件管理160
7.1 Java的I/O系統(tǒng)160
7.1.1 流的概念160
7.1.2 Java的輸入/輸出類庫161
7.2 字節(jié)流162
7.2.1 InputStream和OutputStream類162
7.2.2 輸入/輸出流的應(yīng)用163
7.3 字符流169
7.3.1 使用FileReader和FileWriter類169
7.3.2 BufferedReader和
BufferedWriter類172
7.4 文件的非流式操作175
7.4.1 File類175
7.4.2 使用Scanner和PrintWriter類實現(xiàn)
文件的讀寫176
7.4.3 讀取Web上的文件179
7.4.4 隨機文件訪問180
7.5 對象的序列化與反序列化183
7.5.1 Serializable接口和transient