關(guān)于我們
書單推薦
新書推薦
|
Java程序設(shè)計(jì)精編教程/微課版
本書分別講解了基本數(shù)據(jù)類型、枚舉和數(shù)組、運(yùn)算符、表達(dá)式和語句、類、對(duì)象和接口、面向?qū)ο蟮膸讉(gè)基本原則、重要的設(shè)計(jì)模式、常用實(shí)用類、Java Swing圖形用戶界面、對(duì)話框、Java輸入輸出流、泛型與集合框架、JDBC數(shù)據(jù)庫操作、Java多線程機(jī)制、Java網(wǎng)絡(luò)基礎(chǔ)以及Java Applet等內(nèi)容。
基礎(chǔ)與實(shí)戰(zhàn)。相關(guān)概念及知識(shí)點(diǎn)都輔以相應(yīng)的實(shí)例,通俗易懂,便于理解掌握面向?qū)ο蟮木幊趟枷搿?br />
實(shí)用與流行。涵蓋了Java開發(fā)過程中重要的及流行的方法和技巧,講解細(xì)致,環(huán)環(huán)相扣。
教學(xué)與互動(dòng)。文字?jǐn)⑹鲎⒅乜勺x性,知識(shí)組織注意合理性,提供輔助在線教學(xué)平臺(tái)。
本書精選Java核心內(nèi)容和重要的實(shí)用技術(shù),注重Java語言的面向?qū)ο筇匦裕瑥?qiáng)調(diào)面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,在實(shí)例上側(cè)重實(shí)用性和啟發(fā)性,在類、對(duì)象、繼承、接口等重要的基礎(chǔ)知識(shí)上側(cè)重編程思想,在實(shí)用類、輸入輸出流、Java 網(wǎng)絡(luò)技術(shù)、JDBC數(shù)據(jù)庫操作等實(shí)用技術(shù)方面?zhèn)戎貙?shí)用。通過本書的學(xué)習(xí),讀者可以掌握J(rèn)ava面向?qū)ο缶幊痰乃枷牒蚃ava編程中的一些重要技術(shù)。
在第3版中,除了更新了JDK 1.8(也稱為JDK 8)的版本外,在內(nèi)容上做了適當(dāng)?shù)恼{(diào)整,特別增加了每章的上機(jī)實(shí)踐內(nèi)容。對(duì)第14章做了比較大的調(diào)整,由原來的操作Access數(shù)據(jù)庫,更改為操作JDK新版本自帶的Derby數(shù)據(jù)庫。刪除了很少使用的第15章的內(nèi)容。 全書共分為14章。第1章主要介紹Java產(chǎn)生的背景和Java平臺(tái),讀者可以了解到Java是怎樣做到“一次寫成,處處運(yùn)行”的; 第2章講述Java程序的基本結(jié)構(gòu); 第3章講解簡單數(shù)據(jù)類型; 第4章主要介紹Java運(yùn)算符和控制語句; 第5章、第6章和第7章是本書的重點(diǎn)內(nèi)容之一,講述類與對(duì)象、子類與繼承、接口與實(shí)現(xiàn)等內(nèi)容; 第8章講解內(nèi)部類和異常類,特別強(qiáng)調(diào)使用內(nèi)部類的原則以及學(xué)習(xí)自定義異常的重要性; 第9章講述常用的實(shí)用類,包括字符串、日期、正則表達(dá)式、模式匹配以及數(shù)學(xué)計(jì)算等實(shí)用類,特別講解怎樣使用Scanner類解析字符串; 第10章講解Java中的輸入輸出流技術(shù),特別介紹怎樣使用輸入輸出流來克隆對(duì)象、Java的文件鎖技術(shù)以及使用Scanner解析文件等重要內(nèi)容; 第11章是基于Java Swing的GUI圖形用戶界面設(shè)計(jì),講解常用的組件和容器,特別詳細(xì)講解事件處理; 第12章講述Java多線程技術(shù),通過許多有啟發(fā)的例子來幫助讀者理解多線程編程; 第13章講解Java在網(wǎng)絡(luò)編程中的一些重要技術(shù),涉及URL、Socket、InetAddress、DatagramPacket等重要的類,特別講解Java遠(yuǎn)程調(diào)用(RMI); 第14章主要講解Java怎樣使用JDBC操作數(shù)據(jù)庫,講解了預(yù)處理、事務(wù)處理、批處理等重要技術(shù)。 本書實(shí)例的源程序以及電子教案可以從清華大學(xué)出版社網(wǎng)站上免費(fèi)下載,以供讀者學(xué)習(xí)使用; 也可以加入耿祥義教材教學(xué)QQ群討論相關(guān)內(nèi)容。 編者 2017年6月
第1章Java入門
1.1Java的平臺(tái)無關(guān)性 1.1.1平臺(tái)與機(jī)器指令 1.1.2C/C++程序依賴平臺(tái) 1.1.3虛擬機(jī)與平臺(tái) 1.2Java之父——James Gosling 1.3Java的地位 1.3.1網(wǎng)絡(luò)地位 1.3.2語言地位 1.3.3需求地位 1.4安裝JDK 1.4.1平臺(tái)簡介 1.4.2安裝Java SE平臺(tái) 1.5Java程序的開發(fā)步驟 1.6一個(gè)簡單的Java應(yīng)用程序 1.6.1編寫源文件 1.6.2編譯 1.6.3運(yùn)行 1.7上機(jī)實(shí)踐 習(xí)題 第2章Java應(yīng)用程序的基本結(jié)構(gòu) 2.1問題的提出 2.2簡單的Circle類 2.3使用Circle類創(chuàng)建對(duì)象 2.3.1用類聲明對(duì)象 2.3.2為對(duì)象分配變量 2.3.3使用對(duì)象 2.4在應(yīng)用程序中使用對(duì)象 2.5Java應(yīng)用程序的基本結(jié)構(gòu) 2.6在一個(gè)源文件中編寫多個(gè)類 2.7編程風(fēng)格 2.7.1Allmans風(fēng)格 2.7.2Kernighan風(fēng)格 2.7.3注釋 2.8上機(jī)實(shí)踐 習(xí)題 第3章標(biāo)識(shí)符與簡單數(shù)據(jù)類型 3.1標(biāo)識(shí)符與關(guān)鍵字 3.1.1標(biāo)識(shí)符 3.1.2關(guān)鍵字 3.2簡單數(shù)據(jù)類型 3.2.1邏輯類型 3.2.2整數(shù)類型 3.2.3字符類型 3.2.4浮點(diǎn)類型 3.3簡單數(shù)據(jù)類型的級(jí)別與類型轉(zhuǎn)換運(yùn)算 3.4從命令行窗口輸入、輸出數(shù)據(jù) 3.4.1輸入基本型數(shù)據(jù) 3.4.2輸出基本型數(shù)據(jù) 3.5上機(jī)實(shí)踐 習(xí)題 第4章運(yùn)算符、表達(dá)式與語句 4.1運(yùn)算符與表達(dá)式 4.1.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式 4.1.2自增,自減運(yùn)算符 4.1.3算術(shù)混合運(yùn)算的精度 4.1.4關(guān)系運(yùn)算符與關(guān)系表達(dá)式 4.1.5邏輯運(yùn)算符與邏輯表達(dá)式 4.1.6賦值運(yùn)算符與賦值表達(dá)式 4.1.7位運(yùn)算符 4.1.8instanceof運(yùn)算符 4.1.9運(yùn)算符綜述 4.2語句概述 4.3if條件分支語句 4.3.1if語句 4.3.2ifelse語句 4.3.3ifelse ifelse語句 4.4switch開關(guān)語句 4.5循環(huán)語句 4.5.1for循環(huán)語句 4.5.2while循環(huán) 4.5.3dowhile循環(huán) 4.6break和continue語句 4.7數(shù)組 4.7.1聲明數(shù)組 4.7.2為數(shù)組分配元素 4.7.3數(shù)組元素的使用 4.7.4length的使用 4.7.5數(shù)組的初始化 4.7.6數(shù)組的引用 4.7.7遍歷數(shù)組 4.8上機(jī)實(shí)踐 習(xí)題 第5章類與對(duì)象 5.1面向?qū)ο蟮奶匦?br /> 5.2類 5.2.1類聲明 5.2.2類體 5.2.3成員變量 5.2.4方法 5.2.5需要注意的問題 5.2.6類的UML類圖 5.3構(gòu)造方法與對(duì)象的創(chuàng)建 5.3.1構(gòu)造方法 5.3.2創(chuàng)建對(duì)象 5.3.3使用對(duì)象 5.3.4對(duì)象的引用和實(shí)體 5.4參數(shù)傳值 5.4.1傳值機(jī)制 5.4.2基本數(shù)據(jù)類型參數(shù)的傳值 5.4.3引用類型參數(shù)的傳值 5.5對(duì)象的組合 5.5.1由矩形和圓組合而成的圖形 5.5.2關(guān)聯(lián)關(guān)系和依賴關(guān)系的UML圖 5.6實(shí)例成員與類成員 5.6.1實(shí)例變量和類變量的聲明 5.6.2實(shí)例變量和類變量的區(qū)別 5.6.3實(shí)例方法和類方法的定義 5.6.4實(shí)例方法和類方法的區(qū)別 5.7方法重載與多態(tài) 5.8this關(guān)鍵字 5.8.1在構(gòu)造方法中使用this 5.8.2在實(shí)例方法中使用this 5.9包 5.9.1包語句 5.9.2有包名的類的存儲(chǔ)目錄 5.9.3運(yùn)行有包名的主類 5.10import語句 5.10.1引入類庫中的類 5.10.2引入自定義包中的類 5.11訪問權(quán)限 5.11.1何謂訪問權(quán)限 5.11.2私有變量和私有方法 5.11.3共有變量和共有方法 5.11.4友好變量和友好方法 5.11.5受保護(hù)的成員變量和方法 5.11.6public類與友好類 5.12基本類型的類包裝 5.12.1Double和Float類 5.12.2Byte、Short 、Integer、Long類 5.12.3Character類 5.13可變參數(shù) 5.14上機(jī)實(shí)踐 習(xí)題 第6章子類與繼承 6.1子類與父類 6.2子類的繼承性 6.2.1子類和父類在同一包中的繼承性 6.2.2子類和父類不在同一包中的繼承性 6.2.3繼承關(guān)系(Generalization)的UML圖 6.3成員變量的隱藏和方法重寫 6.3.1成員變量的隱藏 6.3.2方法重寫(Override) 6.4super關(guān)鍵字 6.4.1用super操作被隱藏的成員變量和方法 6.4.2使用super調(diào)用父類的構(gòu)造方法 6.5final關(guān)鍵字 6.5.1final類 6.5.2final方法 6.5.3常量 6.6對(duì)象的上轉(zhuǎn)型對(duì)象 6.7繼承與多態(tài) 6.8abstract類和abstract方法 6.9面向抽象編程 6.10開閉原則 6.11上機(jī)實(shí)踐 習(xí)題 第7章接口與實(shí)現(xiàn) 7.1接口 7.2實(shí)現(xiàn)接口 7.3理解接口 7.4接口的UML圖 7.5接口回調(diào) 7.6接口與多態(tài) 7.7接口變量做參數(shù) 7.8abstract類與接口的比較 7.9面向接口編程 7.10上機(jī)實(shí)踐 習(xí)題 第8章內(nèi)部類與異常類 8.1內(nèi)部類 8.2匿名類 8.2.1和子類有關(guān)的匿名類 8.2.2和接口有關(guān)的匿名類 8.3異常類 8.3.1trycatch語句 8.3.2自定義異常類 8.3.3finally子語句 8.4斷言 8.5上機(jī)實(shí)踐 習(xí)題 第9章常用實(shí)用類 9.1String類 9.1.1構(gòu)造字符串對(duì)象 9.1.2String類的常用方法 9.1.3字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化 9.1.4對(duì)象的字符串表示 9.1.5字符串與字符、字節(jié)數(shù)組 9.1.6正則表達(dá)式及字符串的替換與分解 9.2StringBuffer類 9.2.1StringBuffer對(duì)象的創(chuàng)建 9.2.2StringBuffer類的常用方法 9.3StringTokenizer類 9.4Date類 9.4.1構(gòu)造Date對(duì)象 9.4.2日期格式化 9.5Calendar類 9.6Math和BigInteger類 9.6.1Math類 9.6.2BigInteger類 9.7DecimalFormat類 9.7.1格式化數(shù)字 9.7.2將格式化字符串轉(zhuǎn)化為數(shù)字 9.8Pattern與Match類 9.8.1模式對(duì)象 9.8.2匹配對(duì)象 9.9Scanner類 9.10上機(jī)實(shí)踐 習(xí)題 第10章輸入輸出流 10.1File類 10.1.1文件的屬性 10.1.2目錄 10.1.3文件的創(chuàng)建與刪除 10.1.4運(yùn)行可執(zhí)行文件 10.2字節(jié)流與字符流 10.2.1InputStream類與OutputStream類 10.2.2Reader類與Writer類 10.2.3關(guān)閉流 10.3文件字節(jié)流 10.3.1文件字節(jié)輸入流 10.3.2文件字節(jié)輸出流 10.4文件字符流 10.5緩沖流 10.6隨機(jī)流 10.7數(shù)組流 10.8數(shù)據(jù)流 10.9對(duì)象流 10.10序列化與對(duì)象克隆 10.11文件鎖 10.12使用Scanner解析文件 10.13上機(jī)實(shí)踐 習(xí)題 第11章組件及事件處理 11.1Java Swing概述 11.2窗口 11.2.1JFrame常用方法 11.2.2菜單條、菜單、菜單項(xiàng) 11.3常用組件與布局 11.3.1常用組件 11.3.2常用容器 11.3.3常用布局 11.3.4選項(xiàng)卡窗格 11.4處理事件 11.4.1事件處理模式 11.4.2ActionEvent事件 11.4.3ItemEvent事件 11.4.4DocumentEvent事件 11.4.5MouseEvent事件 11.4.6焦點(diǎn)事件 11.4.7鍵盤事件 11.4.8匿名類實(shí)例或窗口做監(jiān)視器 11.4.9事件總結(jié) 11.5使用MVC結(jié)構(gòu) 11.6對(duì)話框 11.6.1消息對(duì)話框 11.6.2輸入對(duì)話框 11.6.3確認(rèn)對(duì)話框 11.6.4顏色對(duì)話框 11.6.5文件對(duì)話框 11.6.6自定義對(duì)話框 11.7發(fā)布GUI程序 11.8上機(jī)實(shí)踐 習(xí)題 第12章Java多線程機(jī)制 12.1進(jìn)程與線程 12.1.1操作系統(tǒng)與進(jìn)程 12.1.2進(jìn)程與線程 12.2Java中的線程 12.2.1Java的多線程機(jī)制 12.2.2線程的狀態(tài)與生命周期 12.2.3線程調(diào)度與優(yōu)先級(jí) 12.3Thread類與線程的創(chuàng)建 12.3.1使用Thread的子類 12.3.2使用Thread類 12.3.3關(guān)于run方法啟動(dòng)的次數(shù) 12.4線程的常用方法 12.5線程同步 12.6在同步方法中使用wait()、notify()和notifyAll()方法 12.7線程聯(lián)合 12.8上機(jī)實(shí)踐 習(xí)題 第13章Java網(wǎng)絡(luò)編程 13.1URL類 13.1.1URL的構(gòu)造方法 13.1.2讀取URL中的資源 13.2InetAddress類 13.2.1地址的表示 13.2.2獲取地址 13.3套接字 13.3.1套接字概述 13.3.2客戶端套接字 13.3.3ServerSocket對(duì)象與服務(wù)器端套接字 13.3.4使用多線程技術(shù) 13.4UDP數(shù)據(jù)報(bào) 13.4.1發(fā)送數(shù)據(jù)包 13.4.2接收數(shù)據(jù)包 13.5廣播數(shù)據(jù)報(bào) 13.6Java遠(yuǎn)程調(diào)用(RMI) 13.6.1遠(yuǎn)程對(duì)象及其代理 13.6.2RMI的設(shè)計(jì)細(xì)節(jié) 13.7上機(jī)實(shí)踐 習(xí)題
第5章
類 與 對(duì) 象 主要內(nèi)容 面向?qū)ο蟮奶匦裕?br /> 類; 構(gòu)造方法與對(duì)象的創(chuàng)建; 參數(shù)傳值; 對(duì)象的組合; 實(shí)例成員與類成員; 方法重載與多態(tài); this關(guān)鍵字; 包; import語句; 訪問權(quán)限。 面向?qū)ο笳Z言有三個(gè)重要特性: 封裝、繼承和多態(tài)。學(xué)習(xí)面向?qū)ο缶幊桃莆赵鯓油ㄟ^抽象得到類,繼而學(xué)習(xí)怎樣編寫類的子類來體現(xiàn)繼承和多態(tài)。本章主要講述類和對(duì)象,即學(xué)習(xí)面向?qū)ο蟮牡谝粋(gè)特性: 封裝,下一章學(xué)習(xí)面向?qū)ο蟮牧硗鈨蓚(gè)特性: 繼承和多態(tài)。 5.1面向?qū)ο蟮奶匦?br /> 隨著計(jì)算機(jī)硬件設(shè)備功能的進(jìn)一步提高,使得基于對(duì)象的編程成為可能;趯(duì)象的編程更加符合人的思維模式,編寫的程序更加健壯和強(qiáng)大,更重要的是,面向?qū)ο缶幊坦膭?lì)創(chuàng)造性的程序設(shè)計(jì)。面向?qū)ο缶幊淌且环N先進(jìn)的編程思想,更加容易解決復(fù)雜的問題,面向?qū)ο缶幊讨饕w現(xiàn)下面三個(gè)特性。 1. 封裝性 面向?qū)ο缶幊毯诵乃枷胫痪褪菍?shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起。通過抽象,即從具體的實(shí)例中抽取共同的性質(zhì)形成一般的概念,例如類的概念。 在實(shí)際生活中,我們每時(shí)每刻都與“對(duì)象”在打交道。我們用的鋼筆,騎的自行車,乘的公共汽車等。而我們經(jīng)常見到的卡車、公共汽車、轎車等都會(huì)涉及以下幾個(gè)重要的物理量,可乘載的人數(shù)、運(yùn)行速度、發(fā)動(dòng)機(jī)的功率、耗油量、自重、輪子數(shù)目等。另外,還有幾個(gè)重要的功能: 加速功能、減速功能、剎車、轉(zhuǎn)彎功能等。我們也可以把這些功能稱作是他們具有的方法,而物理量是它們的狀態(tài)描述,僅僅用物理量或功能不能很好地描述它們。在現(xiàn)實(shí)生活中,我們用這些共有的屬性和功能給出一個(gè)概念: 機(jī)動(dòng)車類。也就是說,人們經(jīng)常談到的機(jī)動(dòng)車類就是從具體的實(shí)例中抽取共同的屬性和功能形成的一個(gè)概念,那么一個(gè)具體的轎車就是機(jī)動(dòng)車類的一個(gè)實(shí)例,即對(duì)象。一個(gè)對(duì)象將自己的數(shù)據(jù)和對(duì)這些數(shù)據(jù)的操作合理有效地封裝在一起,例如,每輛轎車調(diào)用“加大油門”改變的都是自己的運(yùn)行速度。 2. 繼承性 繼承體現(xiàn)了一種先進(jìn)的編程模式。子類可以繼承父類的屬性和功能,即繼承了父類具有的數(shù)據(jù)和數(shù)據(jù)上的操作,同時(shí)又可以增添子類獨(dú)有的數(shù)據(jù)和數(shù)據(jù)上的操作。例如,“人類”自然繼承了“哺乳類”的屬性和功能,同時(shí)又增添了人類獨(dú)有的屬性和功能。 3. 多態(tài)性 多態(tài)是面向?qū)ο缶幊痰挠忠恢匾卣。有兩種意義的多態(tài): 一種是操作名稱的多態(tài),即有多個(gè)操作具有相同的名字,但這些操作所接收的消息類型必須不同。例如,讓一個(gè)人執(zhí)行“求面積”操作時(shí),他可能會(huì)問你求什么面積。所謂操作名稱的多態(tài)是指可以向操作傳遞不同消息,以便讓對(duì)象根據(jù)相應(yīng)的消息來產(chǎn)生一定的行為。另一種多態(tài)是和繼承有關(guān)的多態(tài),是指同一個(gè)操作被不同類型對(duì)象調(diào)用時(shí)可能產(chǎn)生不同的行為。例如,狗和貓都具有哺乳類的功能: “喊叫”,當(dāng)狗操作“喊叫”時(shí)產(chǎn)生的聲音是“汪汪… ”; 而當(dāng)貓操作“喊叫”時(shí)產(chǎn)生的聲音是“喵喵…”。 5.2類 類是組成Java程序的基本要素,一個(gè)Java應(yīng)用程序就是由若干個(gè)類構(gòu)成的(見第2章)。類是Java語言中最重要的“數(shù)據(jù)類型”,類聲明的變量被稱作對(duì)象,即類是用來創(chuàng)建對(duì)象的“模板”。 類的定義包括兩部分: 類聲明和類體;靖袷綖椋 class類名{ 類體的內(nèi)容 } class是關(guān)鍵字,用來定義類!癱lass 類名”是類的聲明部分,類名必須是合法的Java標(biāo)識(shí)符。兩個(gè)大括號(hào)以及之間的內(nèi)容是類體。 5.2.1類聲明 以下是兩個(gè)類聲明的例子。 class People { … } class植物{ … } “class People”和“class植物”叫作類聲明; “People”和“植物”分別是類名。類的名字要符合標(biāo)識(shí)符規(guī)定,即名字可以由字母、下劃線、數(shù)字或美元符號(hào)組成,并且第一個(gè)字符不能是數(shù)字(這是語法要求的)。給類命名時(shí),遵守下列編程風(fēng)格(這不是語法要求的,但應(yīng)當(dāng)遵守)。 。1) 如果類名使用拉丁字母,那么名字的首字母使用大寫字母,如Hello,Time等。 (2) 類名最好容易識(shí)別、見名知意。當(dāng)類名由幾個(gè)單詞復(fù)合而成時(shí),每個(gè)單詞的首字母使用大寫,如ChinaMade,AmericanVehicle,HelloChina等。 5.2.2類體 寫類的目的是根據(jù)抽象描述一類事物共有的屬性和功能,即給出用于創(chuàng)建具體實(shí)例(對(duì)象)的一種數(shù)據(jù)類型,描述過程由類體實(shí)現(xiàn)。類聲明之后的一對(duì)大括號(hào)“{”,“}”以及它們之間的內(nèi)容稱作類體,大括號(hào)之間的內(nèi)容稱作類體的內(nèi)容。 抽象的關(guān)鍵是抓住事物的兩個(gè)方面: 屬性和功能,即數(shù)據(jù)以及在數(shù)據(jù)上進(jìn)行的操作,因此類體的內(nèi)容由兩部分構(gòu)成。 變量的聲明: 用來描述數(shù)據(jù)(體現(xiàn)對(duì)象的屬性)。 方法: 方法可以對(duì)類中聲明的變量進(jìn)行操作,即給出算法(體現(xiàn)對(duì)象具有的功能)。 下面是一個(gè)類名為Lader的類(用來描述梯形),類體內(nèi)容的變量定義部分定義了4個(gè)float類型變量: above、bottom、height和area; 方法定義部分定義了兩個(gè)方法: computerArea和setHeight。 ……
你還可能感興趣
我要評(píng)論
|