本書以面向?qū)ο蟪绦蛟O計的思想為主線,全面細致地介紹了Java程序設計的基礎知識、特點及相關應用,注重引導讀者從C語言的以函數(shù)為主的面向過程程序設計,過渡到以類和對象為主的面向?qū)ο蟮某绦蛟O計。本書共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數(shù)組與集合,異常和異常處理,輸入/輸出與文件管理,數(shù)據(jù)庫編程、多線程,Java網(wǎng)絡編程,JavaFX基礎和JavaFX Scene Builder等方面的內(nèi)容。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者的學習用書和各類Java程序設計培訓班的教學用書。
除了Java程序設計基礎知識外,引入JavaFX等相關知識,區(qū)別于其他Java教材
劉瑞新老師的Java新作
Java是一種經(jīng)典的程序設計語言,它全面支持面向?qū)ο蟮某绦蛟O計方法。因此,Java在國內(nèi)外各個領域中得到了廣泛的應用,有著極高的市場占有率。本教材以Eclipse 4.7 + JRE 10.0為開發(fā)平臺,結(jié)合大量易于理解的實例,面向初步學習了C語言的讀者,從面向?qū)ο蟪绦蛟O計的角度,循序漸進地展開了Java程序設計基礎知識和編程技術的介紹。在內(nèi)容講述上以深入淺出的布局,結(jié)合直觀的圖示、演練、實訓以及在源代碼中盡可能多地添加注釋等手段,使讀者能夠較輕松地理解面向?qū)ο缶幊痰幕靖拍詈退枷搿?br> 本教材重點突出面向?qū)ο蟮某绦蛟O計思想,不僅在講述內(nèi)容上詳細介紹了面向?qū)ο蟮南嚓P概念及編程技術,而且在幾乎所有演練、實訓中采用“任務驅(qū)動”的方式,強調(diào)使用面向?qū)ο蟮某绦蛟O計方法來實現(xiàn)程序功能。注重引導讀者從C語言的以函數(shù)為主的面向過程程序設計,過渡到以類和對象為主的面向?qū)ο蟮某绦蛟O計方法。
本教材共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數(shù)組與集合,異常和異常處理,輸入/輸出與文件管理,數(shù)據(jù)庫編程、多線程,Java網(wǎng)絡編程,JavaFX基礎和JavaFX Scene Builder等方面的內(nèi)容。
作者講授程序設計語言課程多年,并參加過許多實際應用系統(tǒng)的開發(fā),有豐富的教學經(jīng)驗和實踐經(jīng)驗。在教材內(nèi)容的處理上,緊緊抓住面向?qū)ο蟮某绦蛟O計思想這條主線,使學生通過本教材的學習,不但能學會Java程序設計的基本知識、設計思想和方法,還能很容易地過渡到其他面向?qū)ο蟪绦蛟O計語言的學習與使用上。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者和各類Java程序設計培訓班的教學用書。本書配套有完整的教學用PPT課件,并提供所有演練、實訓的源代碼,需要的讀者可從機械工業(yè)出版社教學服務網(wǎng)(http://www.cmpedu.com)中下載。
本書由崔淼、趙曉華主編,其中,李鴻雁編寫第1、10章,崔淼編寫第2、3、4、5章,劉瑞新、劉克純、駱秋容、翟麗娟、徐維維編寫第6章,彭姣編寫第7章,許萌編寫第8章,趙曉華編寫第9章,蘇繼斌編寫第11、12章,程序的上機調(diào)試、代碼優(yōu)化及教學課件由趙曉華制作完成。本書由劉瑞新教授統(tǒng)稿。編寫過程中得到了許多一線教師的大力支持,提出了許多寶貴意見,使本書更加符合教學規(guī)律,在此感謝。
由于計算機信息技術發(fā)展迅速,書中難免有不足和謬誤之處,懇請廣大讀者批評指正。
前言
第1章 Java語言概述1
1.1 Java語言的特點及相關概念1
1.1.1 Java語言的特點1
1.1.2 與Java相關的幾個概念2
1.2 Java與面向?qū)ο蟮某绦蛟O計3
1.2.1 Java應用程序的構(gòu)成3
1.2.2 創(chuàng)建、編譯和執(zhí)行Java應用程序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ù)學方法和隨機數(shù)14
1.4 運算符和表達式15
1.4.1 算術運算符與算術表達式15
1.4.2 關系運算符與關系表達式16
1.4.3 布爾運算符與布爾表達式17
1.5 安裝和使用Java IDE環(huán)境18
1.5.1 安裝和使用Eclipse18
1.5.2 安裝和使用NetBeans23
1.6 實訓 Eclipse和NetBeans的
安裝和使用24
1.6.1 實訓目的24
1.6.2 實訓要求24
第2章 類和對象26
2.1 面向?qū)ο蟪绦蛟O計的概念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)程序設計30
2.2.3 循環(huán)結(jié)構(gòu)程序設計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 實訓 創(chuàng)建和使用類53
2.6.1 實訓目的53
2.6.2 實訓要求53
2.6.3 實訓步驟55
第3章 深入理解類及其成員59
3.1 類之間的關系59
3.1.1 UML簡介59
3.1.2 依賴關系61
3.1.3 關聯(liá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的導出功能創(chuàng)建
JAR包74
3.5.3 安裝和使用FatJAR插件75
3.5.4 引用第三方JAR包77
3.5.5 反編譯.class文件78
3.6 實訓 團隊合作項目開發(fā)79
3.6.1 實訓目的79
3.6.2 實訓要求79
3.6.3 實訓步驟80
第4章 繼承、抽象類、接口和多態(tài)87
4.1 繼承87
4.1.1 創(chuàng)建類的子類87
4.1.2 調(diào)用父類構(gòu)造方法和super
關鍵字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 實訓 創(chuàng)建和使用抽象類112
4.5.1 實訓目的112
4.5.2 實訓要求112
4.5.3 實訓步驟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ù)組的復制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 實訓 設計一個簡單圖書管理
程序142
5.5.1 實訓目的142
5.5.2 實訓要求142
5.5.3 實訓步驟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 實訓 使用自定義異常157
6.4.1 實訓目的157
6.4.2 實訓要求158
6.4.3 實訓步驟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 輸入/輸出流的應用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