本書以面向對象程序設計的思想為主線,全面細致地介紹了Java程序設計的基礎知識、特點及相關應用,注重引導讀者從C語言的以函數為主的面向過程程序設計,過渡到以類和對象為主的面向對象的程序設計。本書共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數組與集合,異常和異常處理,輸入/輸出與文件管理,數據庫編程、多線程,Java網絡編程,JavaFX基礎和JavaFX Scene Builder等方面的內容。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者的學習用書和各類Java程序設計培訓班的教學用書。
除了Java程序設計基礎知識外,引入JavaFX等相關知識,區(qū)別于其他Java教材
劉瑞新老師的Java新作
Java是一種經典的程序設計語言,它全面支持面向對象的程序設計方法。因此,Java在國內外各個領域中得到了廣泛的應用,有著極高的市場占有率。本教材以Eclipse 4.7 + JRE 10.0為開發(fā)平臺,結合大量易于理解的實例,面向初步學習了C語言的讀者,從面向對象程序設計的角度,循序漸進地展開了Java程序設計基礎知識和編程技術的介紹。在內容講述上以深入淺出的布局,結合直觀的圖示、演練、實訓以及在源代碼中盡可能多地添加注釋等手段,使讀者能夠較輕松地理解面向對象編程的基本概念和思想。
本教材重點突出面向對象的程序設計思想,不僅在講述內容上詳細介紹了面向對象的相關概念及編程技術,而且在幾乎所有演練、實訓中采用“任務驅動”的方式,強調使用面向對象的程序設計方法來實現程序功能。注重引導讀者從C語言的以函數為主的面向過程程序設計,過渡到以類和對象為主的面向對象的程序設計方法。
本教材共分為12章,主要包括Java語言概述,類和對象,深入理解類及其成員,繼承、抽象類、接口和多態(tài),數組與集合,異常和異常處理,輸入/輸出與文件管理,數據庫編程、多線程,Java網絡編程,JavaFX基礎和JavaFX Scene Builder等方面的內容。
作者講授程序設計語言課程多年,并參加過許多實際應用系統(tǒng)的開發(fā),有豐富的教學經驗和實踐經驗。在教材內容的處理上,緊緊抓住面向對象的程序設計思想這條主線,使學生通過本教材的學習,不但能學會Java程序設計的基本知識、設計思想和方法,還能很容易地過渡到其他面向對象程序設計語言的學習與使用上。
本書適合作為高等院校計算機專業(yè)教材使用,同時也可作為廣大計算機愛好者和各類Java程序設計培訓班的教學用書。本書配套有完整的教學用PPT課件,并提供所有演練、實訓的源代碼,需要的讀者可從機械工業(yè)出版社教學服務網(http://www.cmpedu.com)中下載。
本書由崔淼、趙曉華主編,其中,李鴻雁編寫第1、10章,崔淼編寫第2、3、4、5章,劉瑞新、劉克純、駱秋容、翟麗娟、徐維維編寫第6章,彭姣編寫第7章,許萌編寫第8章,趙曉華編寫第9章,蘇繼斌編寫第11、12章,程序的上機調試、代碼優(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與面向對象的程序設計3
1.2.1 Java應用程序的構成3
1.2.2 創(chuàng)建、編譯和執(zhí)行Java應用程序4
1.2.3 Java源程序的編寫要求7
1.3 Java的數據類型7
1.3.1 基本類型和引用類型8
1.3.2 變量與常量9
1.3.3 數據類型的轉換12
1.3.4 字符串的常用操作方法14
1.3.5 常用數學方法和隨機數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 面向對象程序設計的概念26
2.1.1 面向對象與傳統(tǒng)編程方法的不同26
2.1.2 類和對象概述27
2.2 類的方法29
2.2.1 數據的輸入和輸出29
2.2.2 選擇結構程序設計30
2.2.3 循環(huán)結構程序設計36
2.2.4 方法的聲明和調用40
2.2.5 方法的重載42
2.2.6 方法調用中的參數傳遞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 構造方法和匿名對象50
2.5.1 類的構造方法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 關聯關系61
3.1.4 聚合與組合62
3.2 方法的特殊用法62
3.2.1 在構造方法中調用其他構造方法62
3.2.2 私有構造方法和單例模式63
3.2.3 參數長度可變的方法64
3.3 類的實例成員和靜態(tài)成員65
3.3.1 Java變量的內存分配機制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 調用父類構造方法和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 內部類和匿名內部類107
4.3.1 內部類107
4.3.2 匿名內部類109
4.4 多態(tài)110
4.4.1 通過重載和重寫實現多態(tài)111
4.4.2 通過動態(tài)綁定實現多態(tài)111
4.5 實訓 創(chuàng)建和使用抽象類112
4.5.1 實訓目的112
4.5.2 實訓要求112
4.5.3 實訓步驟113
第5章 數組與集合115
5.1 數組的概念115
5.1.1 一維數組115
5.1.2 二維數組118
5.2 數組的操作122
5.2.1 數組的復制122
5.2.2 使用foreach循環(huán)123
5.2.3 數組的排序、查找和比較124
5.2.4 使用Arrays類操作數組126
5.3 將字符串轉換成數組128
5.3.1 將字符串轉換成字符數組129
5.3.2 將有分隔符的字符串轉換成數組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類實現
文件的讀寫176
7.4.3 讀取Web上的文件179
7.4.4 隨機文件訪問180
7.5 對象的序列化與反序列化183
7.5.1 Serializable接口和transient