本書旨在面向較大的用戶范圍,因此在內容編排上做了精心的安排,首先介紹Java語言的特點和開發環境設置,進而介紹java語言的編程基礎,包括基本語法、流程控制和數組與字符串等。在第三、四、五章開始介紹Java語言的面向對象程序設計方法,包括封裝性、繼承性、多態性、異常處理以及基本類庫。第六、七章介紹圖形用戶界面(GUI)和小程序設計(Applet),第八、九章介紹輸入輸出與文件處理、多線程,*后一部分內容介紹網絡編程相關知識。
本教材在內容的編排上做了精心的設置與選取,敘述由淺入深,循序漸進。
前言
Java是由 Sun公司開發的面向對象程序設計語言,具有安全、跨平臺、可移植、健壯等顯著特點,因此得到了廣泛的應用。
本書從教學實際出發,合理安排知識結構,通過豐富的實例,由淺入深地講解了Java的基本知識和使用方法。全書共14章,主要內容如下。
第1章簡單介紹了Java的基礎知識,用JDK和MyEclipse兩種工具來開發程序。
第2章Java語言基礎,詳細介紹了Java的基本語法,常量和變量,數據類型,運算符,選擇和循環語句的簡單應用,用案例的方式說明。
第3章面向對象技術,詳細介紹了面向對象的基本概念,類的定義,類成員變量的定義和方法的定義,方法參數等知識,用案例的方式詳細說明類和對象的應用。
第4章Java類和對象的高級特征,詳細介紹了包、繼承、特殊類、接口等幾個常用的概念和應用,通過案例詳細說明了它們的使用方法。
第5章Java的API,API是Java程序與運行它的系統軟件之間的接口,介紹了一些常用的類,如String、Runtime、日期操作和Math,通過案例詳細介紹類的屬性和方法,以及在實際編程中的應用。
第6章Swing桌面開發,在Java中的界面開發通過代碼的方式編寫控件,介紹了Swing組件包含的控件,布局管理器的種類,如FlowLayout、BorderLayout、GridLayout、GridBagLayout 等。通過案例詳細介紹了在桌面開發中,布局管理器和各種組件如何配合,實現對界面的設計。
第7章事件處理,在Java開發中,事件處理無處不在,本章介紹了事件處理的原理,不同事件對應的不同接口及內部類和匿名類等,通過案例詳細介紹了動作事件、鼠標事件和鍵盤事件的應用。
第8章輸入輸出流,根據流的操作是字符還是字節,分為字節流和字符流。詳細介紹了InputStream、OutputStream、Reader和Writer這4個基本類的方法,通過案例詳細介紹了如何應用這4個基本類。
第9章多線程,介紹了線程的概念,用繼承Thread類和實現Runnable接口來創建線程,線程同步和線程通信。通過案例詳細介紹了線程的創建方法,如何在線程同步中實現對共享資源的訪問,線程通信中如何實現生產者和消費者間的合作。
第10章網絡編程,介紹了網絡編程是客戶端與服務器間的聯系,理解TCP和UDP如何實現網絡間的通信,通過案例詳細介紹了如何使用TCP和UDP,如何在客戶端與服務器間實現數據通信。
第11章集合,介紹集合的三種集合框架,即List、Set和Map,通過案例詳細介紹了集合的創建、元素的操作、元素的遍歷等。
第12章異常處理,介紹了異常的處理機制,發生異常時處理的方法,通過案例詳細介紹了在實際應用中如何使用異常來處理。
第13章MySQL的簡單介紹,介紹了MySQL數據庫的創建、操作和Java的實際連接,通過案例詳細說明了在Java中操作數據庫的步驟。
第14章簡單考試系統,為加強對Java的系統學習,介紹了一個綜合案例簡單考試系統,詳細說明了如何進行系統分析、數據庫設計、詳細設計,在不斷的學習中積累實際編程的方法,鞏固學習的效果,加強實際編程的能力。
本書由范立南、李華主編,第1章由范立南編寫,第2章由李華編寫,第3~5章由唐璐編寫,第6、7章由趙宏偉編寫,第 8~10章由涂斌斌編寫,第11章由孫斌編寫,第12~14章由夏紅剛編寫。
在編寫本書的過程中作者參考了相關文獻,在此向這些文獻的作者表示感謝。此外,書中程序有部分來源于學生,部分程序來源于網絡,在此對提供網絡共享的朋友表示感謝。
由于時間倉促,且作者的水平有限,書中難免有疏漏和不足之處,懇請廣大讀者批評指正,編者的郵箱為li_xin_hua@aliyun.com。
編者2018年6月
目錄
第1章Java開發
1.1Java的特點
1.2Java開發工具JDK
1.2.1JDK的安裝
1.2.2JDK的環境配置
1.2.3JDK安裝的目錄
1.3簡單的Java程序
1.3.1第一個簡單的程序
1.3.2修改第一個程序
1.3.3Applet程序
1.3.4Scanner類
1.4Java開發工具MyEclipse
1.4.1MyEclipse軟件的安裝
1.4.2MyEclipse軟件的應用
1.4.3利用MyEclipse建立程序
1.4.4程序目錄
1.4.5簡單調試并設置斷點
1.4.6導入已存在的Java文件
小結
習題
第2章Java語言基礎
2.1Java基礎語法
2.1.1標識符
2.1.2關鍵字
2.1.3注釋
2.1.4花括號
2.1.5分號
2.1.6空白行
2.2常量和變量
2.2.1常量
2.2.2變量
2.2.3變量的分類
2.3數據類型
2.3.1邏輯類型
2.3.2字符類型
2.3.3整數類型
2.3.4浮點類型
2.3.5數據類型轉換
2.4運算符和表達式
2.4.1算術運算符
2.4.2關系運算符
2.4.3位運算符
2.4.4邏輯運算符
2.4.5賦值運算符
2.4.6條件運算符
2.5if選擇語句
2.5.1簡單if語句
2.5.2if/else選擇語句
2.6switch語句
2.7for語句
2.8while語句
2.9do…while語句
2.10break和continue
2.11數組
2.11.1一維數組
2.11.2二維數組
2.11.3數組的應用
2.12綜合實例
小結
習題
第3章面向對象技術
3.1面向對象的基本概念
3.1.1面向對象程序設計思想
3.1.2面向對象程序設計的特點
3.2類
3.2.1類的定義
3.2.2類的主方法
3.2.3成員變量與局部變量
3.2.4類的構造方法
3.3對象
3.3.1對象的創建
3.3.2對象的使用
3.3.3對象的銷毀
3.4類中的方法
3.4.1類自身成員方法之間的相互調用
3.4.2類中定義帶參數的成員方法
3.4.3類中定義帶參數的構造方法
3.5匿名對象
小結
習題
第4章Java類和對象的高級特征
4.1包
4.1.1創建包
4.1.2使用包中的類
4.1.3系統中常見的包
4.2類的訪問級別
4.3靜態修飾符
4.3.1靜態變量
4.3.2靜態方法
4.3.3靜態初始化器
4.4繼承
4.4.1子類的創建
4.4.2重載和覆蓋
4.4.3this和super關鍵字
4.5特殊類
4.5.1最終類
4.5.2抽象類
4.5.3內部類
4.5.4匿名內部類
4.6接口
4.6.1接口的定義
4.6.2接口的實現
4.6.3接口的繼承
4.6.4利用接口實現類的多重繼承
小結
習題
第5章Java的API
5.1API
5.2String類和StringBuffer類
5.2.1String類的初始化
5.2.2String類的常用方法
5.2.3StringBuffer類
5.3Runtime類
5.4System類
5.5日期操作類
5.5.1Date類
5.5.2Calendar類
5.5.3DateFormat類
5.5.4SimpleDateFormat類
5.6Math類
小結
習題
第6章Swing桌面開發
6.1AWT概述
6.2Swing概述
6.2.1Swing組件的類型
6.2.2JFrame類
6.3JPanel面板類
6.4基本組件
6.4.1JLabel標簽類
6.4.2JButton按鈕類
6.4.3JTextField文本類
6.4.4JCheckBox選擇框
6.4.5JRadioButton單選按鈕
6.5布局管理器
6.5.1FlowLayout
6.5.2BorderLayout
6.5.3GridLayout
6.5.4GridBagLayout
6.6綜合實例
6.6.1FlowLayout布局的界面
6.6.2Swing組件的應用
6.6.3設計簡易計算器
小結
習題
第7章事件處理
7.1簡單實例
7.2事件類
7.3事件處理接口
7.4適配器
7.5匿名內部類
7.6ActionEvent
7.7MouseEvent
7.8KeyEvent
7.9綜合實例
7.9.1ActionEvent事件的應用
7.9.2MouseEvent事件的應用
小結
習題
第8章輸入輸出流
8.1流的分類
8.1.1InputStream流
8.1.2OutputStream流
8.1.3Reader類
8.1.4Writer類
8.1.5流的常用類
8.2文件流
8.2.1FileOutputStream類
8.2.2FileInputStream類
8.2.3FileWriter類
8.2.4FileReader類
8.3緩沖流
8.3.1BufferedOutputStream類
8.3.2BufferedInputStream類
8.3.3BufferedWriter類
8.3.4BufferedReader類
8.4轉換流
8.4.1InputStreamReader
8.4.2OutputStreamWriter
8.5數據流
8.5.1DataInputStream
8.5.2DataOutputStream
8.6Object流
8.7Print流
8.8綜合實例
8.8.1文本文件復制
8.8.2緩沖技術實現文本文件復制
8.8.3MP3文件復制
8.8.4將鍵盤錄入的數據保存到文件中
小結
習題
第9章多線程
9.1線程的概念
9.1.1進程和線程
9.1.2Java中的線程
9.2線程的創建
9.2.1繼承Thread類
9.2.2實現Runnable接口
9.2.3兩者的區別與聯系
9.3線程的狀態
9.4線程的方法
9.5線程同步
9.5.1同步代碼塊
9.5.2同步方法
9.5.3特殊域變量
9.5.4可重入鎖
9.5.5區別和聯系
9.6線程間通信
9.7線程的常用方法
9.7.1線程的sleep方法
9.7.2線程的join方法
9.7.3線程的yield方法
9.7.4線程的優先級
9.8綜合實例
9.8.1生產者和消費者
9.8.2改進生產者和消費者
小結
習題
第10章網絡編程
10.1網絡通信
10.1.1網絡的基本概念
10.1.2InetAddress類
10.1.3網絡通信方式
10.2基于UDP的網絡編程
10.2.1數據報
10.2.2發送數據報
10.2.3接收數據報
10.2.4UDP的簡單網絡編程
10.3基于TCP的網絡編程
10.3.1Socket通信過程
10.3.2Socket類
10.3.3ServerSocket類
10.3.4TCP的簡單網絡編程
10.4綜合實例
10.4.1基于UDP的聊天程序
10.4.2基于TCP的程序
小結
習題
第11章集合
11.1集合的介紹
11.1.1集合的分類
11.1.2Collection
11.2List
11.2.1ArrayList
11.2.2迭代器
11.2.3LinkedList
11.2.4Vector
11.3Set
11.3.1HashSet
11.3.2TreeSet
11.4泛型
11.5Map
11.5.1HashMap
11.5.2TreeMap
11.6綜合實例
11.6.1對字符串的長度排序
11.6.2不重復輸出隨機錄入的整數
11.6.3獲取字符串中每一個字母出現的次數
小結
習題
第12章異常處理
12.1異常處理的介紹
12.2異常分類
12.2.1運行時異常
12.2.2非運行時異常
12.3異常的捕獲和處理
12.4異常處理的案例
12.4.1try…catch
12.4.2try…catch…finally
12.4.3throw處理
12.4.4throws處理
小結
習題
第13章MySQL的簡單介紹
13.1MySQL簡介
13.2MySQL的使用
13.3HeidiSQL
13.3.1HeidiSQL的訪問
13.3.2創建數據庫exam
13.4JDBC
13.5Java連接MySQL數據庫
13.5.1找到JAR包
13.5.2讀取db.properties文件
13.5.3數據庫的數據處理
小結
習題
第14章簡單考試系統
14.1考試系統的目的
14.2系統分析
14.3數據庫分析
14.4詳細設計
14.4.1客戶端的配置
14.4.2entity包
14.4.3main包
14.4.4service包
14.4.5ui包
14.4.6dao包
14.5界面設計
14.5.1歡迎界面
14.5.2登錄界面
14.5.3考試界面
14.5.4答題界面
14.5.5考試結果
14.6導入考試系統
小結
參考文獻
附錄習題部分答案