本書在講解Java程序設(shè)計(jì)語言的基礎(chǔ)語法之前,使用現(xiàn)實(shí)生活中的實(shí)例讓讀者從感性上體會(huì)和理解面向?qū)ο笏枷氲睦砟睿^早地融入面向?qū)ο蟮氖澜。本書的主要?nèi)容包括面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)、Java程序設(shè)基礎(chǔ)、程序的流程控制、類的特性、接口與多態(tài)、異常處理、對(duì)象的管理、I/O操作、多線程編程、網(wǎng)絡(luò)編程、Eclipse開發(fā)環(huán)境的使用、圖形用戶界面編程Swing技術(shù)以及數(shù)據(jù)庫(kù)編程。
本書適合作為普通高等院校應(yīng)用型本科計(jì)算機(jī)相關(guān)專業(yè)的入門教材,也可供其他初學(xué)者或軟件開發(fā)人員參考使用。
本書內(nèi)容主要包括:Java語言概述,Java語法基礎(chǔ)、程序流程控制、類的繼承與多態(tài)、抽象類與接口、異常處理、集合類、IO操作、多線程編程、網(wǎng)絡(luò)編程、圖形用戶界面、數(shù)據(jù)庫(kù)編程和Eclipse開發(fā)環(huán)境的使用。本書有上機(jī)指導(dǎo)配套教材,能夠滿足教學(xué)需要,也可作為初學(xué)者自學(xué)使用。主要內(nèi)容主要包括:Java語言概述,Java語法基礎(chǔ)、程序流程控制、類的繼承與多態(tài)、抽象類與接口、異常處理、集合類、IO操作、多線程編程、網(wǎng)絡(luò)編程、圖形用戶界面、數(shù)據(jù)庫(kù)編程和Eclipse開發(fā)環(huán)境的使用。全書選用的實(shí)驗(yàn)用例嚴(yán)格遵守編程規(guī)范,并提示編程思路與開發(fā)技巧,能夠使讀者掌握較為扎實(shí)的Java語言基礎(chǔ),具備Java SE程序的實(shí)際開發(fā)能力。
前言
作為一名程序開發(fā)的初學(xué)者,首先應(yīng)該掌握一種先進(jìn)科學(xué)的程序設(shè)計(jì)思想。面向?qū)ο笫且环N為眾多程序員所使用的程序設(shè)計(jì)方法,其思想是按照現(xiàn)實(shí)世界的本來面貌來理解世界,直接通過對(duì)象及其相互關(guān)系來反映世界,這樣建立起來的系統(tǒng)才能符合現(xiàn)實(shí)世界的本來面目。面向?qū)ο蟪绦蛟O(shè)計(jì)思想對(duì)于程序員來說極為重要,它是一種思維方式,直接決定了開發(fā)的軟件質(zhì)量。Java語言是Sun公司于1995年正式推出的一種程序設(shè)計(jì)語言,在眾多面向?qū)ο蟪绦蛟O(shè)計(jì)語言中脫穎而出,它具有高性能、跨平臺(tái)性、可移植性、健壯性、安全性等優(yōu)良特性,以其獨(dú)特的魅力在軟件開發(fā)領(lǐng)域占據(jù)絕對(duì)霸主的地位。
本書站在思想的高度上,讓讀者首先從感性上體會(huì)和理解面向?qū)ο笏枷氲睦砟,較早地融入面向?qū)ο蟮氖澜,然后再利用Java語言逐個(gè)講解關(guān)于面向?qū)ο蟮闹R(shí)點(diǎn),使讀者不僅能夠?qū)W習(xí)到Java語言本身,還能最終掌握面向?qū)ο蟪绦蛟O(shè)計(jì)思想的精髓。
本書面向的讀者對(duì)象主要包括普通高等院校應(yīng)用型本科計(jì)算機(jī)相關(guān)專業(yè)的學(xué)生。綜合學(xué)生特點(diǎn)和當(dāng)前軟件行業(yè)的就業(yè)需求,編者總結(jié)實(shí)際教學(xué)經(jīng)驗(yàn)與體會(huì),設(shè)計(jì)各章節(jié)內(nèi)容及教學(xué)重點(diǎn)。書中實(shí)例蘊(yùn)含的思想大部分來自實(shí)際的工程項(xiàng)目經(jīng)驗(yàn),具有一定的實(shí)用性和參考價(jià)值。書中的注意和技巧兩個(gè)環(huán)節(jié)作為理論知識(shí)的補(bǔ)充,進(jìn)一步增強(qiáng)了本書的實(shí)踐性。
本書主要講解面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)、Java程序設(shè)計(jì)基礎(chǔ)、程序的流程控制、類的特性、接口與多態(tài)、異常處理、對(duì)象的管理、I/O操作、多線程編程、網(wǎng)絡(luò)編程、Eclipse開發(fā)環(huán)境的使用、圖形用戶界面編程Swing技術(shù)以及數(shù)據(jù)庫(kù)編程等內(nèi)容。本書章節(jié)安排合理,內(nèi)容循序漸進(jìn)。
全書注重提高讀者運(yùn)用Java語言和面向?qū)ο笏枷虢鉀Q實(shí)際問題的實(shí)踐能力。在第1版的基礎(chǔ)上,本版將JDK的版本更新到8.0,介紹了必要的JDK8.0新特性。
全書分13章。
第1章介紹Java的發(fā)展歷史及Java語言的特性、面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念及意義,講解JDK的安裝及配置方法,并使用Java語言編寫第一個(gè)HelloWorld命令行程序。
第2章講解Java語言的基礎(chǔ)及程序結(jié)構(gòu),介紹Java程序的組織形式,Java中類和對(duì)象的概念、修飾符、對(duì)象的創(chuàng)建與引用,Java支持的數(shù)據(jù)類型和操作符。
第3章學(xué)習(xí)Java程序中的流程控制,包括選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)以及與程序轉(zhuǎn)移有關(guān)的其他流程控制語句,強(qiáng)調(diào)Java程序的流程控制與C語言程序設(shè)計(jì)的流程控制之間的不同。
第4章介紹Java面向?qū)ο蠹夹g(shù)的一大特性繼承,以及由繼承機(jī)制派生出的抽象類等概念,同時(shí)介紹在編程中經(jīng)常使用的內(nèi)部類等。
第5章討論深受軟件設(shè)計(jì)人員青睞的接口技術(shù)與多態(tài),學(xué)習(xí)接口的定義、應(yīng)用,及其與抽象類的區(qū)別。此外,討論如何利用多態(tài)機(jī)制實(shí)現(xiàn)向上轉(zhuǎn)型,以及如何增強(qiáng)系統(tǒng)的可擴(kuò)展性。
第6章學(xué)習(xí)異常的概念、Java異常處理機(jī)制,包括trycatch、多重catch、trycatchfinally等幾種異常流程控制的使用,throws、throw關(guān)鍵字的應(yīng)用,以及如何使用自定義異常類。
第7章講解在Java程序開發(fā)中經(jīng)常使用的一種數(shù)據(jù)結(jié)構(gòu)集合類,介紹對(duì)象數(shù)組與普通數(shù)組的區(qū)別,重點(diǎn)學(xué)習(xí)ArrayList、LinkedList、Vector類的使用,此外還包括HashSet、HashMap類的使用以及泛型的概念。
第8章學(xué)習(xí)Java的I/O技術(shù),如何完成對(duì)各種外部設(shè)備的I/O操作,重點(diǎn)掌握對(duì)文件的操作,另外還討論了I/O流與通道的概念。
第9章討論Java的多線程編程,包括線程的概念,如何在程序中實(shí)現(xiàn)多線程,線程同步的作用等。
第10章講解Java的網(wǎng)絡(luò)編程,介紹網(wǎng)絡(luò)編程基礎(chǔ)知識(shí),理解端口和套接字,掌握使用InetAddress、ServerSocket等類編寫TCP、UDP程序。
第11章介紹Eclipse集成開發(fā)環(huán)境,討論如何安裝Eclipse及其插件、創(chuàng)建Java項(xiàng)目、修改項(xiàng)目屬性、創(chuàng)建包和類以及如何運(yùn)行程序,包括對(duì)存在缺陷的程序如何利用Eclipse進(jìn)行調(diào)試。
第12章介紹Swing技術(shù),在Eclipse環(huán)境下如何安裝Visual Editor插件實(shí)現(xiàn)一個(gè)簡(jiǎn)單的圖形用戶界面,接著重點(diǎn)講解Swing中容器的布局概念及各種組件的使用。
第13章介紹數(shù)據(jù)庫(kù)編程,討論JDBC技術(shù)的使用,最終使讀者能夠采用驅(qū)動(dòng)程序訪問數(shù)據(jù)庫(kù),結(jié)合Swing技術(shù)開發(fā)簡(jiǎn)單的桌面應(yīng)用程序。
本書第1章由柯瑜編寫,第2~5章由楊娜編寫,第6~7章、第13章由于靜編寫,第8~9章由顧鴻虹編寫,第10~12章由張虹編寫。全書由于靜負(fù)責(zé)內(nèi)容結(jié)構(gòu)設(shè)計(jì)和統(tǒng)稿工作。
由于編者水平所限書中難免有疏漏之處,懇望讀者批評(píng)指正。
編者
2017年12月
目錄
第1章Java和面向?qū)ο蟮某绦蛟O(shè)計(jì)
1.1關(guān)于Java
1.1.1Java的出現(xiàn)
1.1.2Java的特性
1.1.3Java與C、C 語言的比較
1.2面向?qū)ο蟮某绦蛟O(shè)計(jì)
1.2.1面向?qū)ο笈c類的概念
1.2.2面向?qū)ο蟪绦蛟O(shè)計(jì)的意義
1.3編寫第一個(gè)Java程序
1.3.1安裝Java SE的JDK
1.3.2程序的編譯和運(yùn)行
1.3.3使用Java API的說明文檔
1.4本章小結(jié)
習(xí)題1
第2章Java程序設(shè)計(jì)基礎(chǔ)
2.1Java程序的組織形式
2.1.1Java程序的基本要素
2.1.2Java程序的基本結(jié)構(gòu)
2.1.3Java包的概念
2.2Java中的類與對(duì)象
2.2.1類成員
2.2.2Java修飾符
2.2.3對(duì)象的初始化
2.2.4引用與對(duì)象
2.3在Java中操作數(shù)據(jù)類型
2.3.1Java支持的數(shù)據(jù)類型
2.3.2Java支持的操作符
2.4本章小結(jié)
習(xí)題2
第3章程序的流程控制
3.1Java流程控制概述
3.2選擇結(jié)構(gòu)
3.2.1if語句
3.2.2switch語句
3.2.3選擇結(jié)構(gòu)的嵌套
3.3循環(huán)結(jié)構(gòu)
3.3.1while循環(huán)
3.3.2dowhile循環(huán)
3.3.3for循環(huán)
3.3.4多重循環(huán)
3.4其他流程控制語句
3.4.1break語句
3.4.2continue語句
3.4.3return語句
3.5本章小結(jié)
習(xí)題3
第4章類的特性
4.1類的繼承
4.1.1父類與子類
4.1.2方法重寫
4.1.3super關(guān)鍵字
4.2抽象類
4.2.1抽象類的概念
4.2.2抽象類的作用
4.3內(nèi)部類和匿名類
4.3.1內(nèi)部類
4.3.2內(nèi)部類與外部類的關(guān)系
4.3.3匿名類
4.4本章小結(jié)
習(xí)題4
第5章接口與多態(tài)
5.1接口
5.1.1定義與實(shí)現(xiàn)接口
5.1.2接口的特性
5.1.3接口與抽象類的區(qū)別
5.2多態(tài)
5.2.1向上轉(zhuǎn)型
5.2.2可擴(kuò)展性
5.3后期綁定
5.4本章小結(jié)
習(xí)題5
第6章異常
6.1異常基礎(chǔ)知識(shí)
6.1.1Java異常處理機(jī)制
6.1.2異常的分類
6.2異常的處理過程
6.2.1trycatch
6.2.2finally
6.2.3trycatchfinally程序塊中的return
6.2.4throws
6.2.5throw
6.3自定義異常
6.4本章小結(jié)
習(xí)題6
第7章對(duì)象的管理
7.1使用對(duì)象數(shù)組
7.1.1對(duì)象數(shù)組的特點(diǎn)
7.1.2Arrays類
7.2使用java.util包
7.2.1List集合
7.2.2Set集合
7.2.3Map集合
7.2.4Java中的泛型
7.3本章小結(jié)
習(xí)題7
第8章Java的I/O操作
8.1文件操作
8.1.1File類
8.1.2利用File操作文件
8.2面向字節(jié)的I/O操作
8.2.1InputStream
8.2.2OutputStream
8.2.3使用字節(jié)流的Filter
8.3面向字符的I/O操作
8.3.1Reader
8.3.2Writer
8.3.3使用字符流的Filter
8.4對(duì)象的序列化
8.4.1序列化與永久存儲(chǔ)
8.4.2尋找類
8.4.3對(duì)序列化的控制
8.5Java NIO
8.5.1NIO模式概述
8.5.2NIO中的緩沖
8.5.3NIO中的通道
8.5.4阻塞模式和非阻塞模式
8.6本章小結(jié)
習(xí)題8
第9章多線程編程
9.1多線程編程基礎(chǔ)
9.1.1單線程與多線程
9.1.2Java中使用多線程
9.2線程的操作方法
9.2.1線程休眠
9.2.2線程的中斷
9.2.3線程的優(yōu)先級(jí)
9.2.4線程的聯(lián)合
9.3線程之間的同步
9.3.1資源共享與資源鎖
9.3.2線程間通信
9.4使用Executors
9.5本章小結(jié)
習(xí)題9
第10章Java網(wǎng)絡(luò)編程
10.1網(wǎng)絡(luò)編程基礎(chǔ)
10.1.1網(wǎng)絡(luò)中計(jì)算機(jī)的定位
10.1.2TCP與UDP
10.2使用URL訪問服務(wù)器
10.2.1獲得URL實(shí)例
10.2.2用URL訪問網(wǎng)絡(luò)資源
10.3在Java中使用Socket
10.3.1一個(gè)簡(jiǎn)單的Socket連接
10.3.2TCP網(wǎng)絡(luò)編程
10.3.3UDP網(wǎng)絡(luò)編程
10.3.4利用NIO的非阻塞模式
10.4本章小結(jié)
習(xí)題10
第11章Eclipse開發(fā)環(huán)境的使用
11.1Eclipse簡(jiǎn)介及安裝
11.1.1安裝Eclipse
11.1.2安裝多國(guó)語言包插件
11.1.3Eclipse界面
11.2在Eclipse中創(chuàng)建項(xiàng)目和類
11.2.1創(chuàng)建Java項(xiàng)目
11.2.2項(xiàng)目屬性
11.2.3創(chuàng)建包和類
11.2.4運(yùn)行程序
11.3使用Eclipse調(diào)試功能
11.4本章小結(jié)
習(xí)題11
第12章Swing程序設(shè)計(jì)基礎(chǔ)
12.1Swing GUI設(shè)計(jì)
12.1.1Swing與AWT
12.1.2安裝WindowBuilder插件
12.1.3一個(gè)簡(jiǎn)單的Swing實(shí)例
12.1.4事件與偵聽器
12.2Swing中的容器
12.2.1容器的概念
12.2.2布局管理器
12.2.3綜合布局實(shí)例
12.3Swing中的常用組件
12.3.1標(biāo)簽
12.3.2文本框
12.3.3編輯框
12.3.4按鈕
12.3.5復(fù)選框
12.3.6單選按鈕
12.3.7下拉列表框
12.4Swing中的高級(jí)組件
12.4.1菜單
12.4.2對(duì)話框
12.4.3表格
12.4.4樹
12.5本章小結(jié)
習(xí)題12
第13章數(shù)據(jù)庫(kù)編程
13.1JDBC簡(jiǎn)介
13.2java.sql包
13.3訪問數(shù)據(jù)庫(kù)
13.3.1創(chuàng)建數(shù)據(jù)庫(kù)連接
13.3.2關(guān)閉數(shù)據(jù)庫(kù)連接
13.3.3查詢數(shù)據(jù)
13.3.4更新數(shù)據(jù)庫(kù)
13.4使用預(yù)編譯SQL語句
13.5一個(gè)桌面應(yīng)用程序的實(shí)例
13.6本章小結(jié)
習(xí)題13
參考文獻(xiàn)