本書介紹Java語言的基礎(chǔ)知識及程序設(shè)計的基本方法,全書以實際問題的求解過程為向?qū)В怀鰪膯栴}到算法,再到程序的一種思維過程,強調(diào)計算機求解問題的思路引導(dǎo)與程序設(shè)計思維方式的訓(xùn)練。全書分為學(xué)習篇和實驗篇。學(xué)習篇是課程學(xué)習的主要內(nèi)容,共分10章,其內(nèi)容體系大致分為三個部分。第一部分為第1章~第3章,這一部分從對Java語言的初步認識入手,介紹Java語言的基本數(shù)據(jù)類型與運算、程序的3種基本結(jié)構(gòu)及其實現(xiàn)方法,包括概述、程序的數(shù)據(jù)描述以及程序控制結(jié)構(gòu)。第二部分為第4章~第6章,這一部分是Java的核心與特色內(nèi)容,介紹面向?qū)ο蟪绦蛟O(shè)計的概念和基本方法,包括類與對象、封裝、繼承與多態(tài)以及異常處理與輸入/輸出。第三部分為第7章~第10章,這一部分是對基礎(chǔ)知識的擴充和發(fā)展,介紹Java的實際應(yīng)用,包括多線程、網(wǎng)絡(luò)程序設(shè)計、數(shù)據(jù)庫應(yīng)用以及圖形用戶界面開發(fā)技術(shù)。
本書可作為高等學(xué)校計算機程序設(shè)計課程的教材,也可供計算機應(yīng)用人員閱讀參考。
理論篇和實驗篇相結(jié)合;
注重計算思維能力培養(yǎng);
可作為門程序設(shè)計課程教學(xué)。
計算機程序設(shè)計基礎(chǔ)是高校計算機基礎(chǔ)教學(xué)的核心課程,它以一種高級程序設(shè)計語言作為實現(xiàn)工具,介紹程序設(shè)計的基本思想和方法。通過本課程的學(xué)習,使學(xué)生掌握利用計算機解決問題的基本思路和方法,了解程序設(shè)計語言的組成要素和基本特征,具有編寫程序和調(diào)試程序的基本技能。學(xué)習程序設(shè)計既可為學(xué)習后繼相關(guān)計算機課程奠定基礎(chǔ),也有助于學(xué)生更加深刻地理解計算機求解問題的基本思想和方法,因而計算機程序設(shè)計課程也是計算思維能力培養(yǎng)的重要載體,應(yīng)成為對學(xué)生進行計算思維能力培養(yǎng)最直接、最具操作性的課程。
Java語言是目前流行的程序設(shè)計語言之一。隨著Internet技術(shù)的發(fā)展,特別是Web應(yīng)用開發(fā)技術(shù)的發(fā)展,Java語言受到業(yè)界的廣泛青睞,許多企業(yè)選擇Java及其相關(guān)技術(shù)來構(gòu)建它們的應(yīng)用系統(tǒng)。這一方面是因為Java語言具有面向?qū)ο、平臺無關(guān)性、可移植性、強壯性和安全性等優(yōu)良特性,另一方面也因為Java技術(shù)對各個層次的分布式應(yīng)用(包括嵌入式應(yīng)用、桌面應(yīng)用與企業(yè)級應(yīng)用)都提供了全面系統(tǒng)的方法與技術(shù)。因此,目前Java已不僅僅是一種單純的程序設(shè)計語言,而變成了一種支撐Internet應(yīng)用的龐大技術(shù)體系,是一種開發(fā)軟件的標準、規(guī)范與架構(gòu)的統(tǒng)稱。事實上,語言只是整個Java體系構(gòu)架中的一部分,學(xué)習Java本身也不僅僅在于學(xué)習如何使用Java語言的語法,更多的時候是在學(xué)習如何應(yīng)用Java所提供的資源與各種標準,以開發(fā)出架構(gòu)更好、維護更容易的軟件。
本書介紹Java語言的基礎(chǔ)知識及程序設(shè)計的基本方法,全書以實際問題的求解過程為向?qū),突出從問題到算法,再到程序的一種思維過程,強調(diào)計算機求解問題的思路引導(dǎo)與程序設(shè)計思維方式的訓(xùn)練。全書分為學(xué)習篇和實驗篇。學(xué)習篇是課程學(xué)習的主要內(nèi)容,共分10章,其內(nèi)容體系大致分為三個部分。第一部分為第1章~第3章,這一部分從對Java語言的初步認識入手,介紹Java語言的基本數(shù)據(jù)類型與運算、程序的3種基本結(jié)構(gòu)及其實現(xiàn)方法,包括概述、程序的數(shù)據(jù)描述以及程序控制結(jié)構(gòu)。第二部分為第4章~第6章,這一部分是Java的核心與特色內(nèi)容,介紹面向?qū)ο蟪绦蛟O(shè)計的概念和基本方法,包括類與對象、封裝、繼承與多態(tài)以及異常處理與輸入/輸出。第三部分為第7章~第10章,這一部分是對基礎(chǔ)知識的擴充和發(fā)展,介紹Java的實際應(yīng)用,包括多線程、網(wǎng)絡(luò)程序設(shè)計、數(shù)據(jù)庫應(yīng)用以及圖形用戶界面開發(fā)技術(shù)。
學(xué)習Java語言程序設(shè)計,上機實踐十分重要。只有通過上機實踐,才能熟練掌握Java的語法知識,充分理解程序設(shè)計的基本思想和方法,并將所學(xué)知識應(yīng)用到實際中去。為了方便讀者上機練習,實驗篇中提供了14個實驗,每個實驗都和課程學(xué)習內(nèi)容相配合,讀者可以根據(jù)實際情況從每個實驗中選擇部分內(nèi)容作為上機練習。實驗內(nèi)容既包含與Java語法規(guī)則相關(guān)的內(nèi)容,也包含許多實際問題的程序設(shè)計,從而增強學(xué)生的學(xué)習興趣,提高學(xué)生分析問題和解決問題的能力。
本書注重Java基礎(chǔ)知識的介紹,結(jié)合Java流程控制語句介紹了程序設(shè)計的基本知識和一些常用算法,因此本書可以作為第一門程序設(shè)計課程教學(xué)使用。同時,本書也強調(diào)面向?qū)ο蟪绦蛟O(shè)計的核心技術(shù)和基本應(yīng)用技術(shù),因此也可供具有一定程序設(shè)計基礎(chǔ)和經(jīng)驗的讀者閱讀參考。
本書由劉衛(wèi)國擔任主編,參加編寫的有童鍵、舒衛(wèi)真、彭勝、黎明、姚昱旻、柳小文、郭美、肖敏、李首洪、李博、鄒奇林、周克濤、孫士闖、張娟、毛穎等。鄒北驥教授、施榮華教授、彭小寧教授對本書的編寫給予了許多指導(dǎo),在此表示誠摯的感謝。
由于作者學(xué)識水平有限,書中的疏漏或錯誤之處在所難免,懇請廣大讀者批評指正。
作 者
2016年5月
劉衛(wèi)國,博士,中南大學(xué)教授,教育部文科計算機基礎(chǔ)教學(xué)指導(dǎo)分委員會委員,美國加州大學(xué)圣地亞哥分校(UCSD)訪問學(xué)者。從事大學(xué)計算機課程教學(xué)工作,承擔省部級教學(xué)改革項目5項,曾獲省教學(xué)成果二等獎、省高等學(xué)校優(yōu)秀教材獎,主編高等教育“十一五”國家級規(guī)劃教材3部,曾獲茅以升鐵路教育專項獎(教學(xué)專項獎)。主要從事網(wǎng)絡(luò)與信息安全、智能信息處理領(lǐng)域研究,發(fā)表相關(guān)研究論文40余篇,承擔完成國家自然科學(xué)基金、省自然科學(xué)基金等項目多項。
學(xué)習篇
第1章 概 述
1.1 Java語言的發(fā)展歷史與應(yīng)用
1.1.1 Java語言的發(fā)展歷史
1.1.2 Java語言的應(yīng)用
1.2 Java語言的特點
1.3 Java程序的運行機制
1.3.1 Java程序的分類
1.3.2 Java程序的運行過程
1.3.3 Java虛擬機
1.4 Java程序的運行環(huán)境
1.4.1 Java平臺的版本選擇
1.4.2 Java開發(fā)工具—JDK
1.4.3 Java集成開發(fā)環(huán)境—NetBeans
1.4.4 簡單的Java程序
本章小結(jié)
習題1
第2章 程序的數(shù)據(jù)描述
2.1 Java符號集
2.1.1 Java中的標識符
2.1.2 Java的關(guān)鍵字
2.1.3 Java的分隔符
2.2 常量和變量
2.2.1 常量
2.2.2 變量
2.3 基本數(shù)據(jù)類型
2.3.1 整型
2.3.2 浮點型
2.3.3 字符型
2.3.4 布爾型
2.3.5 基本數(shù)據(jù)類型值間的轉(zhuǎn)換
2.3.6 基本數(shù)據(jù)類型類
2.4 常用數(shù)值計算方法
2.5 運算符和表達式
2.5.1 賦值運算
2.5.2 算術(shù)運算
2.5.3 關(guān)系運算與邏輯運算
2.5.4 位運算符
2.5.5 其他運算
2.5.6 運算符的優(yōu)先級及結(jié)合性
2.6 字符串
2.6.1 String類
2.6.2 StringBuffer類
2.7 數(shù)組
2.7.1 數(shù)組的概念與創(chuàng)建
2.7.2 數(shù)組的引用
本章小結(jié)
習題2
第3章 程序控制結(jié)構(gòu)
3.1 程序設(shè)計概述
3.1.1 程序設(shè)計的基本步驟
3.1.2 算法及其描述
3.2 順序結(jié)構(gòu)程序
3.2.1 Java語句
3.2.2 基本輸入輸出
3.2.3 順序結(jié)構(gòu)程序舉例
3.3 選擇結(jié)構(gòu)程序
3.3.1 單分支條件語句
3.3.2 雙分支條件語句
3.3.3 多分支條件語句
3.3.4 開關(guān)語句switch
3.3.5 分支結(jié)構(gòu)程序舉例
3.4 循環(huán)結(jié)構(gòu)程序
3.4.1 for循環(huán)語句
3.4.2 while循環(huán)語句
3.4.3 do-while循環(huán)語句
3.4.4 嵌套循環(huán)
3.4.5 循環(huán)結(jié)構(gòu)程序舉例
3.5 跳轉(zhuǎn)語句
3.5.1 break語句
3.5.2 continue語句
本章小結(jié)
習題3
第4章 類與對象
4.1 面向?qū)ο蟮幕靖拍?
4.1.1 對象、類和消息
4.1.2 面向?qū)ο蟮奶匦?
4.2 Java類
4.2.1 類的基本結(jié)構(gòu)
4.2.2 類的成員
4.2.3 構(gòu)造方法
4.3 Java對象
4.3.1 對象的創(chuàng)建和初始化
4.3.2 對象的引用和清除
4.3.3 方法的調(diào)用
4.4 包
4.4.1 包的概念
4.4.2 包的創(chuàng)建與使用
本章小結(jié)
習題4
第5章 封裝、繼承與多態(tài)
5.1 封裝
5.1.1 封裝的概念
5.1.2 訪問控制符
5.2 繼承
5.2.1 繼承的概念
5.2.2 繼承的應(yīng)用
5.2.3 this與super
5.2.4 繼承的終止
5.3 多態(tài)
5.3.1 方法重載
5.3.2 方法覆蓋與變量多態(tài)
5.3.3 抽象類
5.4 接口
5.4.1 接口的概念
5.4.2 接口的應(yīng)用
5.4.3 抽象類與接口的比較
本章小結(jié)
習題5
第6章 異常處理與輸入輸出
6.1 異常處理
6.1.1 異常的概念
6.1.2 異常的處理
6.1.3 異常類的層次結(jié)構(gòu)
6.1.4 自定義異常
6.1.5 異常處理的使用原則
6.2 Java的I/O處理
6.2.1 I/O流的概念
6.2.2 基本的I/O類
6.2.3 實體流與過濾流
6.2.4 標準輸入輸出對象
6.3 字節(jié)流應(yīng)用
6.3.1 InputStream和OutputStream
6.3.2 常用實體流
6.3.3 常用過濾流
6.3.4 使用示例
6.4 字符流應(yīng)用
6.4.1 Reader和Writer
6.4.2 字符流中的實體流和過濾流
6.4.3 InputStreamReader和OutputStreamWriter
6.4.4 使用示例
6.5 文件處理
6.5.1 File類
6.5.2 文件的順序讀寫
6.5.3 文件的隨機訪問
本章小結(jié)
習題6
第7章 多線程
7.1 進程與線程
7.1.1 進程的概念
7.1.2 線程的概念
7.2 線程的創(chuàng)建
7.2.1 繼承Thread類
7.2.2 實現(xiàn)Runnable接口
7.2.3 兩種創(chuàng)建方式的比較
7.2.4 線程的生命周期
7.3 線程的調(diào)度與同步機制
7.3.1 線程調(diào)度
7.3.2 線程的同步
7.4 線程的通信
7.5 多線程應(yīng)用實例
本章小結(jié)
習題7
第8章 網(wǎng)絡(luò)程序設(shè)計
8.1 網(wǎng)絡(luò)程序設(shè)計基礎(chǔ)知識
8.1.1 TCP/IP簡介
8.1.2 地址、域名與端口號
8.1.3 InetAddress類
8.2 URL編程
8.2.1 URL類
8.2.2 URLConnection類
8.3 Socket編程
8.3.1 Socket的概念
8.3.2 Socket編程
8.4 Datagram編程
8.4.1 Datagram的概念
8.4.2 Datagram編程的方法
本章小結(jié)
習題8
第9章 數(shù)據(jù)庫應(yīng)用開發(fā)
9.1 JDBC概述
9.1.1 數(shù)據(jù)庫的基本概念
9.1.2 JDBC的原理
9.2 數(shù)據(jù)庫訪問
9.2.1 JDBC的常用接口和類
9.2.2 JDBC數(shù)據(jù)庫連接
9.2.3 JDBC數(shù)據(jù)庫操作
本章小結(jié)
習題9
第10章 Java圖形用戶界面設(shè)計
10.1 圖形用戶界面設(shè)計概述
10.1.1 Java圖形用戶界面工具
10.1.2 Java圖形用戶界面的構(gòu)成
10.2 容器和布局管理器
10.2.1 Swing的常用容器
10.2.2 常用的布局管理器
10.3 Swing的常用控件
10.3.1 Swing標簽和文本框
10.3.2 Swing命令按鈕
10.3.3 Swing的組合框和列表框
10.3.4 Swing復(fù)選框和單選按鈕
10.3.5 Swing中的高級控件
10.4 使用Netbeans開發(fā)簡單的GUI應(yīng)用
10.4.1 Netbeans的GUI生成器
10.4.2 Netbeans的GUI開發(fā)案例
本章小結(jié)
習題10
實驗篇
實驗1 簡單的Java程序
實驗2 程序的數(shù)據(jù)描述
實驗3 順序結(jié)構(gòu)程序
實驗4 選擇結(jié)構(gòu)程序
實驗5 循環(huán)結(jié)構(gòu)程序
實驗6 字符串處理與數(shù)組應(yīng)用
實驗7 Java類與對象
實驗8 類的繼承和多態(tài)機制
實驗9 異常處理
實驗10 輸入輸出處理
實驗11 多線程編程
實驗12 網(wǎng)絡(luò)程序設(shè)計
實驗13 數(shù)據(jù)庫應(yīng)用開發(fā)
實驗14 圖形用戶界面設(shè)計
參考文獻