內容簡介
本書循序漸進、通俗易懂地介紹了Java語言編程的基礎知識,將讀者帶入Java語言的殿堂。
本書共分3篇14章。第1篇系統地介紹了Java語言的誕生與發展、Java編程環境的搭建及基本語法的使用。第2篇系統地講解了Java編程中的函式、數組、字元串操作的概念與運用,且列出了常用的算法以供參考學習。第3篇通過典型的實例,使讀者系統地感受軟體開發的整體過程。本書貼近實際,針對性強;並且每章中都含有例題以及其程式原始碼,幫助讀者熟練掌握基本知識及其運用。
本書適用於初、中級程式設計師,同時也可用作高校相關專業和社會培訓班的教材。
前 言
Java語言是一門完全面向對象的語言,有著得天獨厚的優勢,現在已是世界上使用最多的程式語言。它被廣泛地套用於各行各業,小到手機,大到巨型伺服器都有它的身影。Java的廣泛套用也促進了其自身的發展,如今的Java已經變成一個成熟的程式語言了。
面對Java的強勢地位,很多人想掌握這門語言,但是學習時總是不得要領,編者工作的時候,經常遇到新人的提問,很多問題非常簡單,只要提示一句就夠了,可就是這句話,不知道難倒了多少入門者。正是鑒於此,編者萌生了寫一本書的想法,結合自己多年的開發經驗,讓初學者能夠快速掌握Java。
本書特點
本書的主要特點如下:
由一線開發人員編寫,貼近企業需求;
只講開發需要的內容,對於一些邊邊角角的技術,基本不涉及;
簡化理論,強化實驗,讓學生在編碼的過程中體會編程思想;
每個實驗都有明確的目的,做到不重複、不遺漏,確保學一個會一個;
保證每個例子都能調試通過;
代碼注釋細緻,保證學生能很快學會。
本書內容
Java近年來迅速得到套用的語言,其作為新一代的面向對象的程式設計語言,已經成為目前最具吸引力且功能強大的程式設計語言。本書主要講解了該語言的基本語法知識,主要內容如下。
第1章首先帶領讀者了解Java的發展與特點,並且介紹了Java開發工具包,最後舉實例講解Java程式開發的一般流程。
第2章介紹了基礎Java數據類型及各種數據類型之間的轉換方式,並且介紹了各種標識符的命名規範。
第3章介紹了Java的基本運算符,並且介紹了常用的數學包,為下一步的學習打下基礎。
第4章介紹了程式設計中常用的分支與循環控制方法以及相應的語句實現。
第5章介紹了Java面向對象的程式設計,包括類、包、繼承、抽象等內容。
第6章介紹了編程中最基本的函式的概念及其使用方法。
第7章介紹了數組的概念,並且介紹了數組初始化、相互賦值以及數組的常用操作等知識點。
第8章介紹了字元串的概念,並且介紹了常用的字元串操作方法,以及在函式中輸入輸出字元串的方法。
第9章介紹了I/O及檔案操作,包括多個檔案操作類的使用,如File、Stream、Random AccessFile等。
第10章介紹了Swing界面設計及常用的Swing界面的用法,並著重說明了版面布局和事件處理的編程實現。
第11章介紹了Java編程中常用的數據結構和算法。通過具體的編程實例,詳細地介紹了Java中的棧、佇列以及排序方法。
第12章介紹了網路程式設計,重點介紹了Socket類的用法。
第13章介紹了程式設計的風格、代碼的布局、命名及合理的注釋等內容。這些雖然不是Java的語法內容,但了解該章知識,可以使編程更有條理,更有可讀性,從而提升編程效率。
第14章通過經典的實例“學生成績統計”,系統全面地回顧學過的知識,通過實例連線各個知識點,使讀者較直觀地了解程式的開發過程。
本書讀者
本書適合初、中級程式設計師閱讀,也可用作高效相關專業師生和社會培訓班學院的參考教材。
本書編者
本書主要由宋禮鵬、夏永恆編寫,其他參與編寫的人員有劉成、馬臣雲、潘娜、阮履學、陶則熙、王大強、王磊、徐琦、許少峰、顏盟盟、楊娟、楊瑞萍、于海波、俞菲、曾苗苗、趙瑩、朱存等。由於編者水平有限,書中難免存在不足和疏漏之處,懇請讀者批評指正
目 錄
第1篇 Java語法基礎
第1章 Java簡介 2
1.1 Java簡介 2
1.1.1 Java語言的不同平台 2
1.1.2 Java語言發展的歷程 2
1.1.3 Java語言的特點 3
1.2 安裝開發工具包 4
1.2.1 下載JDK6.0 4
1.2.2 安裝JDK6.0 5
1.2.3 環境變數的設定 7
1.2.4 驗證JDK是否成功安裝 9
1.3 安裝後JDK目錄的解讀 10
1.3.1BIN檔案夾 10
1.3.2lib檔案夾 11
1.4 demo資料夾與Java示例 12
1.4.1 Applet時鐘程式演示 13
1.4.2 Applet弧線演示程式 14
1.4.3 Java記事本程式 16
1.4.4 Java格式化書寫板 17
1.4.5 Java 2D效果演示程式 17
1.4.6 Java 3D效果演示程式 20
1.4.7 Java Swing演示程式 21
1.5 學會使用API 22
1.5.1 安裝JDK幫助文檔 22
1.5.2 如何使用JDK幫助文檔 24
1.6 第一個Java程式 26
1.6.1 編寫原始碼 26
1.6.2 編譯運行 27
1.7 類和對象簡介 28
1.8 原始碼注釋 29
1.8.1單行注釋29
1.8.2 區域注釋 31
1.8.3 文檔注釋 32
1.9 綜合實例:計算三角形的周長 35
1.10 小結 35
1.11 練習題 36
第2章 數據類型 37
2.1 基本數據類型 37
2.1.1 整型 37
2.1.2 浮點型 41
2.1.3 字元型 43
2.1.4 布爾型 45
2.2 基本數據類型之間的轉換 46
2.2.1 自動類型轉換 46
2.2.2 強制類型轉換 48
2.3 常量 50
2.3.1 標識符 50
2.3.2 常量及其賦值 51
2.4 變數 53
2.4.1 變數的聲明及初始化 54
2.4.2 變數的作用域 56
2.4.3 表達式中數據類型的自動提升 57
2.5 基本數據類型的對象包裝類 59
2.6 綜合實例 61
2.6.1 定義基本的數據類型變數並輸出 61
2.6.2 使用自動類型轉換和強制類型轉換 62
2.7 小結 63
2.8 練習題 64
第3章 運算符 65
3.1 算術運算符 65
3.1.1 “+”運算符 65
3.1.2 “-”運算符 66
3.1.3 “*”運算符 68
3.1.4 “/”運算符 69
3.1.5 “%”運算符 72
3.2 自增自減運算符 74
3.3 關係運算符 76
3.3.1 等於/不等於運算符 76
3.3.2 比較大小運算符 77
3.4 邏輯運算符 79
3.5 三元運算符 81
3.6 位運算符 82
3.6.1 整型數據在記憶體中的表示 82
3.6.2 取反運算符(~) 83
3.6.3 按位與運算符(&) 84
3.6.4 按位或運算符(|) 85
3.6.5 按位異或運算符(^) 87
3.7 移位運算符 88
3.7.1左移運算符(<<) 89
3.7.2 帶符號右移運算符(>>) 91
3.7.3 無符號右移運算符(>>>) 93
3.8 賦值運算符 94
3.8.1 普通賦值運算符 94
3.8.2 運算賦值運算符 96
3.9 字元串連線運算符 97
3.10 運算符的優先權 98
3.11 常用的數學類——java.lang.Math 100
3.11.1 數學常量 101
3.11.2 java.lang.Math類中的函式 101
3.12 綜合實例 104
3.12.1 求圓的周長與面積 105
3.12.2 複雜的數學運算 105
3.12.3 運用表達式解決實際的分頁問題 106
3.13 小結 107
3.14 練習題 108
第4章 流程控制 109
4.1 順序結構 109
4.2 if條件語句 110
4.2.1 簡略形式 110
4.2.2 完全形式 111
4.2.3 嵌套形式 113
4.3 switch多分支語句 116
4.3.1 基本語法 117
4.3.2 嵌套結構 120
4.4 while循環語句 122
4.5 do-while循環語句 124
4.6 for循環語句 127
4.6.1 基本語法 127
4.6.2 聲明的三大組成部分 129
4.6.3嵌套循環132
4.7 break語句 134
4.8 continue語句 137
4.9 綜合實例 139
4.9.1 解一元二次方程 139
4.9.2九九乘法表 140
4.10 小結 141
4.11 練習題 142
第2篇 Java高級技術
第5章 面向對象程式設計 144
5.1 面向對象的基本概念 144
5.1.1 面向過程的程式設計和面向對象的程式設計 144
5.1.2 對象和封裝 145
5.1.3 類和實例 145
5.2 類 145
5.2.1 類的定義 145
5.2.2 成員變數和局部變數 146
5.2.3 成員方法 147
5.2.4 構造方法 148
5.3 包 148
5.3.1 包的定義 148
5.3.2 運行包中的類 149
5.4 類的繼承 150
5.4.1 繼承的概念 150
5.4.2 繼承數據成員和方法 151
5.4.3 覆蓋 152
5.5 類的多態性 154
5.6 抽象類 155
5.6.1 抽象類的定義 155
5.6.2 抽象類的套用 156
5.7 接口 157
5.7.1 接口的定義 157
5.7.2 接口的使用 158
5.7.3 接口的繼承 159
5.8 內部類 160
5.8.1 匿名類(Anonymous class) 160
5.8.2 靜態類(static class) 161
5.8.3 成員類(member class) 161
5.8.4局部類(local class) 162
5.9 和類相關的其他關鍵字 163
5.9.1 final修飾符 163
5.9.2 static修飾符 163
5.9.3 this關鍵字 163
5.9.4 super關鍵字 164
5.10 綜合實例 164
5.11 小結 165
5.12 練習題 165
第6章 函式 166
6.1 函式的理解 166
6.2 自定義函式 167
6.3 函式的參數 169
6.4 函式的返回值 173
6.4.1 return語句 173
6.4.2 返回值類型 175
6.5 static關鍵字 177
6.5.1 靜態變數 177
6.5.2 靜態代碼塊 178
6.5.3靜態函式179
6.6 函式的調用 180
6.6.1 一般形式 180
6.6.2 函式表達式 181
6.6.3 函式作為參數 182
6.7 函式的遞歸調用 184
6.8 綜合實例 186
6.8.1 字元選單函式 186
6.8.2 排列組合公式函式 188
6.9 小結 189
6.10 練習題 190
第7章 數組 191
7.1 數組的聲明和創建 191
7.1.1 一維數組 191
7.1.2 多維數組 193
7.2 數組的初始化 197
7.2.1 默認初始化 197
7.2.2 枚舉初始化 200
7.2.3 循環初始化 201
7.3 數組作為函式的參數 203
7.3.1 數組元素作為函式參數 203
7.3.2 數組名作為函式參數 205
7.3.3 數組名作為函式返回類型 207
7.4 數組的常用操作 209
7.4.1 數組的長度 210
7.4.2 數組的填充 211
7.4.3 數組的複製 213
7.4.4 數組的比較 215
7.4.5 數組的排序 216
7.4.6 在數組中搜尋指定元素 218
7.4.7 把數組轉換為字元串 219
7.5 綜合實例 220
7.5.1 斐波那契數組 221
7.5.2 統計與分析學生成績 222
7.6 小結 224
7.7 練習題 224
第8章 字元串 225
8.1 字元串的聲明及賦值 225
8.2 字元串函式 226
8.2.1 字元串的截取 227
8.2.2 字元串的查找 228
8.2.3 字元串的替換 231
8.2.4 返回一個數據類型值的字元串形式 232
8.2.5 大小寫轉換 233
8.2.6 字元串插入 234
8.2.7 字元串的連線 236
8.2.8 字元串的比較 237
8.2.9 字元串的長度 240
8.2.10 去除字元串的前後空格 241
8.2.11 獲得字元串中的指定字元 241
8.2.12 測試字元串的前後綴 243
8.2.13 使用split函式進行字元串分割 244
8.2.14 使用StringTokenizer類進行字元串分割 246
8.3 關於args 247
8.4 輸入和輸出 248
8.5 字元串與函式 249
8.5.1 字元串作為函式的參數 250
8.5.2 字元串數組作為函式的參數 251
8.5.3 字元串作為函式返回類型 252
8.5.4 字元串數組作為函式返回類型 253
8.6 綜合實例 254
8.6.1 程式中根據需要輸入字元串 254
8.6.2猜字遊戲257
8.7 小結 258
8.8 練習題 258
第9章 I/O及檔案操作 260
9.1 檔案類 260
9.1.1 常用構造函式 260
9.1.2 常用方法 261
9.1.3 檔案的創建 261
9.1.4 檔案的刪除和更名 263
9.2 流 264
9.2.1 輸入流與輸出流 264
9.2.2 標準輸入輸出流 265
9.2.3 流的常用方法 265
9.2.4 I/O讀寫時可能遇到的異常 266
9.3 隨機訪問檔案類 268
9.3.1 常用構造函式 268
9.3.2 常用方法 268
9.3.3 隨機訪問檔案實例 269
9.4 可序列化接口 273
9.5 檔案壓縮 275
9.6 綜合實例 276
9.6.1 讀取檔案內容操作 276
9.6.2 檔案壓縮實例 279
9.7 小結 281
9.8 練習題 281
第10章 Swing 282
10.1 Swing介紹 282
10.1.1 Swing的特點 282
10.1.2 Swing實現GUI的過程 282
10.2 Swing組件 283
10.2.1 JFrame、JInternalFrame 283
10.2.2 Border、Icon、JButton 285
10.2.3 JCheckBox、JRadioButton、JList 286
10.2.4jtable286
10.2.5 JTextField、JPasswordField 287
10.2.6 JTree 287
10.2.7 JSplitPane 287
10.3 Swing的版面布局 288
10.3.1 BorderLayout 288
10.3.2FlowLayout289
10.3.3 GridLayout 291
10.3.4 CardLayout 292
10.3.5 GridBagLayout 294
10.3.6 BoxLayout 296
10.4 事件處理 298
10.4.1 事件處理的基本步驟 298
10.4.2 事件處理器 299
10.4.3 註冊事件監聽器 299
10.4.4 事件適配器 299
10.4.5 內部類的套用 300
10.5 綜合實例 300
10.6 小結 302
10.7 練習題 302
第11章 常見數據結構和算法 303
11.1 數據結構 303
11.1.1 棧的基本概念 303
11.1.2 棧的實現 304
11.1.3 佇列 307
11.1.4 佇列的實現 307
11.2 排序 310
11.2.1 冒泡排序 311
11.2.2 選擇排序 314
11.2.3 插入排序 318
11.3 綜合實例 322
11.3.1 用棧實現簡單表達式的計算 322
11.3.2 用棧實現字元串的倒序 328
11.3.3 用棧實現括弧匹配的檢查 330
11.3.4 用佇列計算排隊時間 333
11.4 小結 336
11.5 練習題 336
第12章 網路程式設計 337
12.1 網路通信概述 337
12.1.1 什麼是網路通信 337
12.1.2 網路協定基礎 337
12.1.3 Java中所涉及的網路套用類 338
12.2 使用URL類 338
12.2.1 URL類中常用的方法 339
12.2.2 使用URLConnetion類 339
12.3 使用InetAddress類獲取IP位址 341
12.4 使用套接字Socket類 343
12.4.1 Socket類與ServerSocket類 343
12.4.2 建立與伺服器的連線 345
12.5 使用套接字Datagram類 351
12.5.1 Datagram(數據報)套接字 351
12.5.2 使用Datagram實現數據傳輸 352
12.6 綜合實例 354
12.6.1 URL類對象的創建及使用 354
12.6.2 簡單的網頁瀏覽器 355
12.7 小結 357
12.8 練習題 357
第3篇 項目開發實例
第13章程式設計風格360
13.1 代碼布局的思想 360
13.2 布局技術 362
13.2.1 分組 362
13.2.2 空行 363
13.2.3 縮進 364
13.3 代碼的布局 365
13.3.1 循環語句的代碼布局 365
13.3.2 switch語句的代碼布局 366
13.3.3 單條語句的代碼布局 367
13.4 注釋 368
13.4.1 高效的注釋 368
13.4.2 正確使用行注釋和塊注釋 369
13.4.3 注釋的布局 371
13.5 命名規則 372
13.5.1 變數的命名 372
13.5.2 類相關的命名 373
13.6 使用函式 374
13.7 小結 376
13.8 練習題 376
第14章 學生成績統計 377
14.1 程式分析 377
14.2 程式編寫 377
14.2.1 選單選擇 378
14.2.2 數據錄入 379
14.2.3 數據列表子程式 380
14.2.4 數據統計子程式 381
14.2.5 學生信息查詢子程式 383
14.2.6 刪除數據子程式 384
14.2.7 其他子程式 385
14.2.8 程式的編寫和運行 386
14.3 小結 389