內 容 簡 介
毋庸置疑,Java是一種優秀的編程語言,從誕生至今一直都很優秀!
盡管Java很優秀,但是對于初次接觸編程的人來說并不容易。本書總結了作者多年教學成果,將為初學者打開一扇通往Java世界的大門,使其少走彎路,快速入門,為今后從事相關工作打好堅實的基礎。
本書共分16章,主要內容包括:Java語言的發展、特點、運行環境、數據類型、流程控制、面向對象、變量常量、運算符與表達式、注釋、選擇語句、循環語句、跳轉語句、數組和排序、類和對象、靜態類、繼承、枚舉、接口、集合類、泛型、字符串、日期和時間處理、數學類、隨機類和異常類、多線程。在應用方面介紹了文件和目錄操作、圖形界面設計、數據庫編程以及多線程。最后,本書使用Java結合MySQL數據庫實現了一個餐飲管理系統。
本書可以作為高等院校計算機相關專業Java語言程序設計課程的教材,也可以作為Java程序設計的培訓教材,還可以作為自學者的參考書。
前 言
Java是當今非常流行的一種面向對象編程語言。該語言由Sun公司推出,具有跨平臺、可移植、分布式、簡單、可擴展等諸多特性。現在的Java已不僅僅表示一門程序語言,更是一種軟件開發平臺,目前已經演化出了J2SE、J2EE、J2ME 3個版本。憑借其易學易用、功能強大等特點,Java可以進行桌面應用、Web應用、分布式及嵌入式系統等應用程序開發,并且在信息技術、科學研究等各個領域都得到了廣泛的應用。
隨著Java 7的發布,Java平臺也增加了很多新的特性。這些新特性,不但可以提高代碼質量,而且可以提升工作效率。為了使廣大學生和工作者能真正掌握Java 7程序設計技術,領悟Java 7程序設計的快樂和享受到動態語言帶來的好處,筆者根據多年的程序開發和Java授課經驗,精心編寫了本書。本書并不單純從知識角度來講解Java 7程序設計,而是從實踐和解決開發問題的角度來介紹Java語言。在編寫的過程中,注重把Java語言中的重點、難點、要點和編程中常見的問題融合在一起進行講解。
本書編寫思路清晰、內容翔實、案例實用,詳細介紹了如何使用Java 7程序設計的方方面面。
本書內容
全書共分16章,主要內容如下。
第1章 Java入門基礎。本章介紹Java語言的基礎知識,包括概念、特點、發展歷史、分支平臺以及開發工具等多個內容。
第2章 Java基本語法。本章主要介紹Java語言的基本語法,包括數據類型、類型轉換、拆箱、裝箱、變量、常量、運算符和表達式以及注釋等內容。
第3章 流程控制語句。本章首先簡單介紹了算法的描述方式,之后又重點介紹了Java條件語句和循環語句的使用,包括if、switch、for、while、do-while和foreach等。
第4章 Java數組應用。本章主要介紹Java中的數組應用,包括一維數組、二維數組、交錯數組和多維數組等內容。此外還介紹了數組排序的幾種方法,包括冒泡排序、選擇排序、插入排序和快速排序。
第5章 集合處理。本章主要介紹Java中的集合處理,包括集合相關接口、接口類、集合基類Collection、List集合、Set集合、Map集合和泛型的使用。
第6章 字符串處理。本章主要介紹Java中的字符串處理,包括String類操作字符串、StringBuilder類操作字符串和正則表達式操作字符串等多個內容。
第7章 類和對象。本章主要介紹Java中類的應用,包括定義類,創建類的對象、內部類、抽象類以及包的使用等內容。
第8章 面向對象的特征。本章重點介紹Java實現面向對象三大特征的方法,即封裝、繼承和多態的概念及實現細節。
第9章 Java中的枚舉和接口。本章首先對枚舉和接口的概念及其語法進行了介紹,然后重點介紹其應用,包括調用枚舉類提供的方法、接口的聲明與實現等。最后簡單介紹了Java中內部類和匿名類的作用。
第10章 Java常用工具類。本章主要介紹Java中的工具類,包括Object類、封裝類、Date類以及Calendar類等。
第11章 Java中的異常處理。本章主要介紹程序開發中一些常用的異常以及如何有效地使用異常處理機制。
第12章 Java文件處理。本章詳細介紹Java中流的使用,包括流的概念和分類、系統流的使用、輸入流和輸出流的類結構、字節流和字符流的應用,以及隨機訪問文件的方法。
第13章 數據庫訪問對象。本章主要介紹使用JDBC訪問數據庫的內容,包括JDBC簡介、驅動類型、連接數據庫的步驟、數據操作對象以及如何遍歷查詢結果等。
第14章 Swing界面設計編程。本章詳細介紹使用Swing設計用戶的圖形界面,包括創建窗口和面板、布局管理器的使用、按鈕、單行和多行文本框、單選按鈕和復選框、表格、選擇文件以及各種對話框的使用。
第15章 多線程處理。本章主要介紹如何使用Java處理線程,包括創建線程類、實現線程接口、線程的生命周期、線程優先級以及同步等。
第16章 餐飲管理系統。本章講解如何使用Swing結合MySQL實現餐飲管理系統的過程。包括功能分析、數據庫設計、公共模塊設計、員工登錄、菜譜管理、成本管理以及收銀模塊。
本書特色
本書中大量內容來自真實的程序范例,使讀者能更容易地掌握Java程序設計的開發。本書難度適中,內容由淺入深,實用性強,覆蓋面廣,條理清晰。
知識點全。
本書緊緊圍繞Java語言展開講解,具有很強的邏輯性和系統性。
實例豐富。
書中各實例均經過作者精心設計和挑選,它們都是根據作者在實際開發中的經驗總結而來,涵蓋了在實際開發中所遇到的各種問題。
應用廣泛。
對于精選案例,給出了詳細步驟,結構清晰簡明,分析深入淺出,而且有些程序能夠直接在項目中使用,避免了讀者進行二次開發。
基于理論,注重實踐。
在講述過程中,不僅僅只介紹理論知識,而且在合適位置安排綜合應用實例,或者小型應用程序,通過將理論應用到實踐,來加強讀者實際應用能力,鞏固開發基礎和知識。
貼心的提示。
為了便于讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下。
提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。
注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。
技巧:通過簡短的文字,指出知識點在應用時的一些小竅門。
讀者對象
本書適合作為軟件開發入門者的自學用書,適合以下人員使用:
Java語言開發入門者。
Java語言的初學者以及在校學生。
各大中專院校的在校學生和相關授課老師。
準備從事與Java語言或J2EE技術相關的人員。
本書由李偉云編著,同時參與本書編寫及設計工作的還有侯政云、劉利利、鄭志榮、肖進、侯艷書、崔再喜、侯政洪、李海燕、祝紅濤、賀春雷等,在此表示感謝。在本書的編寫過程中,我們力求精益求精,但難免存在一些不足之處,敬請廣大讀者批評指正。
編 者
目 錄第1章 Java入門基礎 11.1 了解Java語言 11.1.1 語言概念 11.1.2 發展歷史 21.1.3 語言特點 31.1.4 應用領域 41.1.5 Java 8.0新特性 51.2 平臺架構 71.2.1 Java EE 81.2.2 Java SE 81.2.3 Java ME 81.3 開發環境——JDK 81.3.1 下載JDK 81.3.2 安裝JDK 101.3.3 配置JDK 111.4 實驗指導——開發MyTest程序 121.5 開發工具——MyEclipse 131.5.1 了解MyEclipse 131.5.2 安裝MyEclipse 131.6 實驗指導——創建第一個Java程序 151.7 習題 18第2章 Java基本語法 192.1 數據類型 192.1.1 數據類型分類 192.1.2 整數類型 202.1.3 浮點型 212.1.4 字符型 222.1.5 布爾類型 222.1.6 引用數據類型 232.2 變量 232.2.1 變量的聲明 232.2.2 變量的賦值 242.2.3 變量的作用域 252.3 常量 262.4 基本數據類型轉換 262.4.1 自動類型轉換 272.4.2 強制類型轉換 272.5 運算符和表達式 282.5.1 算術運算符 282.5.2 賦值運算符 292.5.3 關系運算符 302.5.4 邏輯運算符 312.5.5 位運算符 322.5.6 其他運算符 332.5.7 運算符的優先級 352.6 關鍵字列表 362.7 Java編碼規范 362.7.1 代碼編寫規則 372.7.2 常用代碼注釋 372.8 實驗指導——計算圓的周長和面積 382.9 習題 40第3章 流程控制語句 423.1 算法的描述方式 423.1.1 自然語言 423.1.2 傳統流程圖 433.1.3 N-S結構化流程圖 433.1.4 偽代碼 443.2 條件語句 443.2.1 簡單的if條件語句 443.2.2 if-else條件語句 453.2.3 if-else if-else條件語句 473.2.4 switch語句 493.2.5 if語句和switch語句的區別 523.2.6 if語句的嵌套 523.3 循環語句 543.3.1 for語句 543.3.2 while語句 553.3.3 do-while語句 573.3.4 foreach語句 593.3.5 死循環 603.3.6 循環的嵌套 613.4 跳轉語句 623.4.1 break語句 633.4.2 continue語句 633.4.3 return語句 643.5 實驗指導——打印指定行數的楊輝三角 663.6 實驗指導——解決與李白喝酒的問題 673.7 習題 68第4章 Java數組應用 714.1 一維數組 714.1.1 聲明一維數組 714.1.2 初始化一維數組 724.2 獲取一維數組的元素 734.2.1 獲取單個元素 734.2.2 獲取全部元素 744.3 二維數組 744.3.1 聲明二維數組 744.3.2 初始化二維數組 754.4 獲取二維數組的元素 764.4.1 獲取單個元素 764.4.2 獲取全部元素 764.4.3 獲取指定行的元素 774.4.4 獲取指定列的元素 784.5 多維數組 784.6 實驗指導——打印螺旋矩陣 794.7 Arrays類操作數組 814.7.1 數組排序 824.7.2 比較數組 834.7.3 填充數組 834.7.4 查找數組 844.7.5 復制數組 864.8 數組排序方法 884.8.1 冒泡排序法 884.8.2 選擇排序法 904.8.3 直接插入法 914.8.4 快速排序法 924.9 習題 93第5章 集合處理 965.1 集合類概述 965.1.1 集合中的接口 965.1.2 接口實現類 975.2 Collection接口 985.3 List集合 1005.3.1 ArrayList類 1005.3.2 LinkedList類 1035.4 Set集合 1055.4.1 HashSet類 1055.4.2 TreeSet類 1065.5 Map集合 1095.6 Collections類 1115.6.1 正向排序 1115.6.2 逆向排序 1135.6.3 填充 1145.6.4 復制 1155.7 實驗指導——使用泛型集合 1165.8 習題 118第6章 字符串處理 1206.1 String類概述 1206.2 String類操作字符串 1226.2.1 獲取字符串長度 1226.2.2 比較字符串 1226.2.3 替換字符串 1266.2.4 提取字符串 1276.2.5 分割字符串 1296.2.6 連接字符串 1296.2.7 轉換字符串 1306.2.8 格式化字符串 1316.2.9 其他操作 1326.3 實驗指導——字符串的加密和解密 1346.4 StringBuilder類概述 1356.5 StringBuilder類操作字符串 1366.5.1 追加字符串 1366.5.2 插入字符串 1366.5.3 反轉字符串 1376.5.4 替換字符串 1386.5.5 刪除字符串 1386.6 正則表達式操作字符串 1396.6.1 元字符 1396.6.2 限定符 1406.6.3 使用元字符和限定符 1416.7 實驗指導——正則表達式匹配IP地址 1426.8 實驗指導——判斷字符是英文還是漢字 1436.9 習題 144第7章 類和對象 1477.1 類 1477.1.1 聲明類 1477.1.2 類的成員 1487.1.3 構造方法 1517.1.4 main()方法 1527.2 對象 1527.2.1 創建對象 1527.2.2 使用對象 1537.2.3 銷毀對象 1547.3 實驗指導——創建和使用類與對象 1547.4 內部類 1557.4.1 成員內部類 1557.4.2 局部內部類 1567.4.3 嵌套內部類 1577.4.4 匿名內部類 1587.5 抽象類 1597.6 this關鍵字 1617.6.1 構造方法中使用this 1617.6.2 this作為參數 1627.6.3 匿名內部類中使用this 1637.7 包 1647.7.1 系統包 1647.7.2 自定義包 1657.8 實驗指導——不同包之間類的使用 1667.9 習題 166第8章 面向對象的特征 1698.1 封裝 1698.1.1 了解封裝 1698.1.2 實現封裝 1708.2 實驗指導——通過代碼封裝Book類并測試 1728.3 繼承 1738.3.1 了解繼承 1738.3.2 實現繼承 1748.3.3 使用super關鍵字 1768.3.4 使用final關鍵字 1778.3.5 使用繼承的原則 1788.4 實驗指導——利用內部類實現多重繼承 1808.5 多態 1828.5.1 了解多態 1828.5.2 實現多態 1838.5.3 方法重載 1868.6 習題 189第9章 Java中的枚舉和接口 1929.1 枚舉 1929.1.1 枚舉聲明 1929.1.2 枚舉類 1939.1.3 為枚舉添加方法 1959.1.4 EnumMap與EnumSet 1979.2 接口 1999.2.1 接口概念和意義 1999.2.2 接口聲明和繼承 1999.2.3 接口實現 2009.2.4 接口回調 2019.2.5 接口和抽象類的區別 2029.3 內部類 2039.3.1 局部內部類 2049.3.2 靜態內部類 2059.4 匿名類 2069.5 實驗指導——認識動物 2079.6 習題 209第10章 Java常用工具類 21210.1 Object類 21210.2 包裝類 21410.2.1 Number類 21410.2.2 Double類與Float類 21410.2.3 與整型有關包裝類 21610.2.4 Character類 21710.2.5 Boolean類 21910.3 日期操作類 21910.3.1 Date類 21910.3.2 Calendar類 22110.4 實驗指導——日期的高級操作 22310.5 格式化日期類 22510.5.1 DateFormat類 22510.5.2 SimpleDateFormat類 22610.6 數學操作類 22810.6.1 靜態常量 22810.6.2 靜態方法 22810.7 實驗指導——格式化數字 23110.8 隨機數類 23310.8.1 隨機數的概念 23310.8.2 隨機數的算法 23310.8.3 隨機數的實現 23310.9 實驗指導——根據生成的隨機數求最值 23510.10 習題 236第11章 Java中的異常處理 23811.1 什么是異常 23811.2 Java異常類型 23911.3 捕獲異常 24111.3.1 異常語句結構 24111.3.2 使用try-catch語句捕獲異常 24111.3.3 使用多重catch語句捕獲異常 24311.3.4 使用try-catch-finally語句捕獲異常 24411.4 自定義異常 24611.5 拋出異常和聲明異常 24811.5.1 拋出異常 24811.5.2 聲明異常 25011.5.3 throw和throws的區別 25111.6 實驗指導——校驗購買數量 25211.7 習題 254第12章 Java文件處理 25712.1 Java流簡介 25712.1.1 理解輸入/輸出流 25712.1.2 輸入流 25812.1.3 輸出流 25912.1.4 系統流 26012.2 字節流應用 26212.2.1 字節數組輸入/輸出流 26212.2.2 文件字節輸入/輸出流 26412.2.3 對象輸入/輸出流 26812.2.4 緩沖區輸入/輸出流 26912.2.5 數據輸入/輸出流 27112.2.6 字節打印流 27312.3 字符流應用 27612.3.1 文件字符輸入/輸出流 27612.3.2 字符緩存區輸入/輸出流 27912.3.3 字符打印流 28012.4 文件操作 28212.5 隨機訪問文件 28312.6 實驗指導——隨機讀取商品信息 28512.7 習題 287第13章 數據庫訪問對象 28913.1 認識數據庫 28913.1.1 了解數據庫 28913.1.2 數據庫分類 29013.2 認識JDBC 29013.2.1 了解JDBC 29113.2.2 了解JDBC API 29113.2.3 JDBC驅動類型 29213.2.4 連接數據庫步驟 29313.3 JDBC驅動程序 29413.3.1 加載JDBC驅動程序 29413.3.2 數據庫驅動類 29613.4 數據庫連接對象 29613.4.1 提供JDBC連接的URL 29613.4.2 創建數據庫連接 29713.4.3 數據庫連接接口 29813.5 數據操作對象 30113.5.1 Statement對象 30113.5.2 PreparedStatement對象 30313.5.3 CallableStatement對象 30513.6 查詢結果集接口 30713.6.1 使用ResultSet 30713.6.2 ResultSet的方法 30813.6.3 ResultSetMetaData對象 31013.7 關閉數據庫連接 31213.8 實驗指導——操作會員類的數據 31213.9 習題 316第14章 Swing界面設計編程 31914.1 Swing簡介 31914.2 容器類組件 32114.2.1 容器組件層次結構 32114.2.2 JFrame窗口 32214.2.3 JPanel面板 32414.3 布局管理器 32514.3.1 邊框布局管理器 32514.3.2 流式布局管理器 32714.3.3 卡片布局管理器 32814.3.4 網格布局管理器 32914.3.5 網格包布局管理器 33014.3.6 盒布局管理器 33314.4 基礎組件 33414.4.1 按鈕組件 33414.4.2 標簽組件 33614.4.3 單行文本框組件 33714.4.4 文本域組件 33914.4.5 復選框組件 34014.4.6 單選按鈕組件 34114.4.7 下拉列表組件 34214.5 高級組件 34514.5.1 表格組件 34614.5.2 標簽面板組件 34714.5.3 樹組件 35014.5.4 文件選擇器組件 35314.6 對話框 35514.6.1 輸入對話框 35514.6.2 消息對話框 35614.6.3 確認對話框 35614.6.4 選項對話框 35714.7 實驗指導——制作計算器 35814.8 習題 361第15章 多線程處理 36315.1 多線程 36315.1.1 了解進程 36315.1.2 了解線程 36415.2 創建線程 36415.2.1 使用Thread類 36415.2.2 使用Runnable接口 36815.2.3 兩種方法比較 36915.3 線程的生命周期 37015.4 實驗指導——生命周期例子演示 37115.5 線程的優先級和執行順序 37315.5.1 優先級概述 37415.5.2 使用優先級 37415.6 線程同步 37615.7 結束線程 37715.8 習題 377第16章 餐飲管理系統 37916.1 系統分析 37916.1.1 需求分析 37916.1.2 功能分析 38016.1.3 系統功能模塊劃分 38116.2 數據庫設計 38216.2.1 概念設計 38216.2.2 邏輯設計 38316.3 公共模塊設計 38616.3.1 數據訪問層 38616.3.2 模型類 38916.3.3 工具類 39116.4 登錄模塊 39116.5 管理員模塊設計 39416.5.1 界面設計 39416.5.2 功能切換模塊 39516.5.3 人事管理模塊 39516.5.4 登錄管理模塊 39616.5.5 菜譜管理模塊 39716.5.6 成本管理模塊 39816.5.7 萬年歷模塊 39816.6 收銀員模塊設計 399習題答案 400