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