本書(shū)以項(xiàng)目為載體, 以興趣為導(dǎo)向的課程體系, 幫助學(xué)生輕松掌握J(rèn)ava程序設(shè)計(jì)這門(mén)課程需要掌握的知識(shí)和能力。內(nèi)容的選取不是簡(jiǎn)單的案例堆砌, 每個(gè)單元的任務(wù)都包含了相關(guān)知識(shí)的整合, 都基于學(xué)生的學(xué)習(xí)曲線特點(diǎn), 內(nèi)容選取盡量使得學(xué)生在學(xué)習(xí)過(guò)程中是有趣的、有成就感的。本書(shū)內(nèi)容主要涉及Java基礎(chǔ)知識(shí)和Java提高兩個(gè)方面, 分為7個(gè)單元18個(gè)任務(wù)展開(kāi)介紹。
本書(shū)是職業(yè)教育“十三五”改革創(chuàng)新規(guī)劃教材,根據(jù)職業(yè)院校課程改革及教學(xué)實(shí)際編寫(xiě)而成。通過(guò)本書(shū)的學(xué)習(xí),可以使學(xué)生掌握J(rèn)ava語(yǔ)言程序設(shè)計(jì)基礎(chǔ)知識(shí),并能使用Java語(yǔ)言編寫(xiě)圖形界面小型程序。本書(shū)吸收企業(yè)技術(shù)人員參與編寫(xiě),緊密結(jié)合工作崗位,與職業(yè)崗位對(duì)接; 選取的案例貼近生活、貼近生產(chǎn)實(shí)際; 將創(chuàng)新理念貫徹到教材內(nèi)容選取、體例等方面。
本書(shū)配套有豐富的教學(xué)資源,包括電子教案及程序源代碼等,可免費(fèi)獲取。
本書(shū)在編寫(xiě)時(shí)努力貫徹教學(xué)改革的有關(guān)精神,具有以下特色。
(1) 突出實(shí)踐技能的培養(yǎng)。本書(shū)注重“做中學(xué),做中教”的職業(yè)教育教學(xué)特色,書(shū)中將知識(shí)性與趣味性巧妙結(jié)合,形象直觀,內(nèi)容呈現(xiàn)感強(qiáng),便于學(xué)習(xí)。
(2) 突出理論知識(shí)和實(shí)踐知識(shí)的有效整合。本書(shū)通過(guò)相關(guān)知識(shí)和拓展訓(xùn)練等內(nèi)容將相關(guān)理論與實(shí)踐結(jié)合,注重理論知識(shí)與實(shí)踐知識(shí)的有效整合。
(3) 貼近學(xué)生、教師需求。本書(shū)在編寫(xiě)中注重任務(wù)內(nèi)容的選擇,貼近生活,激發(fā)學(xué)生的學(xué)習(xí)興趣,易于教師教學(xué)組織、教學(xué)實(shí)施與教學(xué)評(píng)價(jià),同時(shí)在知識(shí)拓展中添加新的實(shí)訓(xùn)內(nèi)容以供學(xué)習(xí)。
本書(shū)建議學(xué)時(shí)為56學(xué)時(shí),具體學(xué)時(shí)分配見(jiàn)下表。
單元任務(wù)建 議 學(xué) 時(shí)
單元1進(jìn)入Java世界
任務(wù)1搭建Java開(kāi)發(fā)環(huán)境2
任務(wù)2編寫(xiě)第一個(gè)Java程序2
單元2Java基礎(chǔ)
任務(wù)3顯示GUI圖形界面4
任務(wù)4計(jì)算方塊面積與周長(zhǎng)4
任務(wù)5計(jì)算圓面積與周長(zhǎng)2
任務(wù)6畫(huà)面選擇4
任務(wù)7繪制漫天星斗4
單元3一切皆對(duì)象
任務(wù)8繪制坦克對(duì)象4
任務(wù)9移動(dòng)坦克2
任務(wù)10發(fā)射炮彈2
單元4數(shù)組
任務(wù)11發(fā)射多顆炮彈4
任務(wù)12繪制地圖4
續(xù)表
單元任務(wù)建 議 學(xué) 時(shí)
單元5圖形界面與字符串
任務(wù)13繪制登錄界面2
任務(wù)14事件處理機(jī)制2
任務(wù)15實(shí)現(xiàn)登錄功能2
單元6多態(tài)
任務(wù)16使用繼承實(shí)現(xiàn)炮彈切換4
任務(wù)17使用接口實(shí)現(xiàn)炮彈切換4
單元7異常任務(wù)18捕獲炮彈異常4
總計(jì)56
本書(shū)由楊浪、常賢發(fā)擔(dān)任主編,巫錦潤(rùn)、曾水新、方阿麗擔(dān)任副主編。參加編寫(xiě)工作的還有西京學(xué)院陳顯明、北京電子科技職業(yè)學(xué)院聞健萍、東北大學(xué)秦皇島分校陳婧慧。本書(shū)在編寫(xiě)過(guò)程中參考了大量的文獻(xiàn)資料,在此向文獻(xiàn)資料的作者致以誠(chéng)摯的謝意。由于編寫(xiě)時(shí)間及編者水平有限,書(shū)中難免有不足之處,懇請(qǐng)廣大讀者批評(píng)指正。了解更多教材信息,請(qǐng)關(guān)注微信訂閱號(hào): Coibook。
編者
2017年5月
單元1進(jìn)入Java世界
任務(wù)1搭建Java開(kāi)發(fā)環(huán)境
1.1.1什么是Java
1.1.2Java的歷史
1.1.3Java體系結(jié)構(gòu)
1.1.4JDK、JRE、JVM的關(guān)系
1.1.5安裝JDK
1.1.6設(shè)置環(huán)境變量
1.1.7安裝Eclipse
任務(wù)2編寫(xiě)第一個(gè)Java程序
1.2.1Java的程序結(jié)構(gòu)
1.2.2注釋
1.2.3主方法
1.2.4編碼規(guī)范
1.2.5創(chuàng)建項(xiàng)目
1.2.6創(chuàng)建測(cè)試類(lèi)
1.2.7編寫(xiě)第一行代碼
1.2.8運(yùn)行程序
單元2Java基礎(chǔ)
任務(wù)3顯示GUI圖形界面
2.3.1GUI
2.3.2類(lèi)
2.3.3對(duì)象
2.3.4類(lèi)和對(duì)象的區(qū)別
2.3.5包
2.3.6屬性和方法
2.3.7繼承
2.3.8創(chuàng)建框架
2.3.9調(diào)用方法
2.3.10繪制圖形
任務(wù)4計(jì)算方塊面積與周長(zhǎng)
2.4.1常量與變量
2.4.2數(shù)據(jù)類(lèi)型
2.4.3整型
2.4.4算術(shù)運(yùn)算符
2.4.5顯示填充方塊
2.4.6用變量替換常量
2.4.7繪制字符串
任務(wù)5計(jì)算圓面積與周長(zhǎng)
2.5.1浮點(diǎn)型
2.5.2類(lèi)型轉(zhuǎn)換
2.5.3創(chuàng)建框架
2.5.4繪制圓形
2.5.5計(jì)算圓形周長(zhǎng)和面積
任務(wù)6畫(huà)面選擇
2.6.1比較運(yùn)算符
2.6.2輸入類(lèi)
2.6.3選擇結(jié)構(gòu)
2.6.4創(chuàng)建圖形面板
2.6.5鍵盤(pán)輸入
2.6.6選擇畫(huà)面
任務(wù)7繪制漫天星斗
2.7.1為什么需要循環(huán)
2.7.2循環(huán)結(jié)構(gòu)
2.7.3控制循環(huán)結(jié)構(gòu)
2.7.4隨機(jī)類(lèi)
2.7.5創(chuàng)建圖形面板
2.7.6繪制多顆星星
單元3一切皆對(duì)象
任務(wù)8繪制坦克對(duì)象
3.8.1類(lèi)的定義
3.8.2屬性
3.8.3方法
3.8.4創(chuàng)建類(lèi)
3.8.5使用對(duì)象
3.8.6封裝
3.8.7新建Tank類(lèi)
3.8.8新建面板類(lèi)
3.8.9繪制坦克
3.8.10顯示坦克
任務(wù)9移動(dòng)坦克
3.9.1方法
3.9.2修飾符
3.9.3this和super
3.9.4變量作用域
3.9.5接口
3.9.6鍵盤(pán)監(jiān)聽(tīng)
3.9.7創(chuàng)建Tank類(lèi)
3.9.8創(chuàng)建面板類(lèi)
3.9.9創(chuàng)建測(cè)試類(lèi)
3.9.10重構(gòu)Tank類(lèi)
任務(wù)10發(fā)射炮彈
3.10.1異常
3.10.2動(dòng)畫(huà)
3.10.3線程
3.10.4創(chuàng)建炮彈類(lèi)
3.10.5創(chuàng)建坦克類(lèi)
3.10.6創(chuàng)建面板類(lèi)
3.10.7測(cè)試
單元4數(shù)組
任務(wù)11發(fā)射多顆炮彈
4.11.1引用數(shù)據(jù)類(lèi)型
4.11.2數(shù)組
4.11.3遍歷數(shù)組
4.11.4深入數(shù)組
4.11.5新建炮彈類(lèi)
4.11.6新建坦克類(lèi)
4.11.7新建面板類(lèi)
4.11.8測(cè)試
任務(wù)12繪制地圖
4.12.1二維數(shù)組
4.12.2維度觀點(diǎn)
4.12.3對(duì)象觀點(diǎn)
4.12.4新建Tank類(lèi)
4.12.5新建Map類(lèi)
4.12.6新建GamePanel類(lèi)
4.12.7新建Test類(lèi)
單元5圖形界面與字符串
任務(wù)13繪制登錄界面
5.13.1深入GUI
5.13.2布局管理
5.13.3Swing組件
5.13.4登錄界面設(shè)計(jì)
任務(wù)14事件處理機(jī)制
5.14.1事件處理
5.14.2事件適配器
5.14.3事件監(jiān)聽(tīng)器的實(shí)現(xiàn)形式
5.14.4實(shí)施登錄處理
任務(wù)15實(shí)現(xiàn)登錄功能
5.15.1字符串
5.15.2字符串長(zhǎng)度
5.15.3字符串連接
5.15.4字符串提取和查詢
5.15.5字符串比較
5.15.6完成登錄功能設(shè)計(jì)
單元6多態(tài)
任務(wù)16使用繼承實(shí)現(xiàn)炮彈切換
6.16.1深入繼承
6.16.2如何使用繼承
6.16.3繼承的使用原則
6.16.4繼承與多態(tài)
6.16.5創(chuàng)建炮彈類(lèi)
6.16.6創(chuàng)建坦克
6.16.7切換炮彈
6.16.8測(cè)試
任務(wù)17使用接口實(shí)現(xiàn)炮彈切換
6.17.1解決Java單繼承問(wèn)題
6.17.2隔離變化
6.17.3創(chuàng)建炮彈繪制類(lèi)
6.17.4創(chuàng)建炮彈類(lèi)
6.17.5創(chuàng)建面板類(lèi)
單元7異常
任務(wù)18捕獲炮彈異常
7.18.1深入異常
7.18.2異常處理
7.18.3多重異常
7.18.4使用throw拋出異常
7.18.5新建實(shí)體類(lèi)
7.18.6搭建游戲框架
7.18.7測(cè)試
參考文獻(xiàn)
單元1進(jìn)入Java世界
知識(shí)目標(biāo)
了解Java發(fā)展歷程。
了解Java的體系結(jié)構(gòu)。
了解JDK、JRE和JVM的關(guān)系。
熟悉Eclipse開(kāi)發(fā)環(huán)境。
能力目標(biāo)
能搭建Java開(kāi)發(fā)環(huán)境。
能創(chuàng)建HelloJava項(xiàng)目。
能在控制臺(tái)輸出簡(jiǎn)單語(yǔ)句。
單元介紹
本單元將帶領(lǐng)大家進(jìn)入豐富多彩的Java編程世界,通過(guò)兩個(gè)任務(wù)的學(xué)習(xí)將會(huì)了解Java的發(fā)展歷史,Java的體系結(jié)構(gòu),JDK、JRE、JVM之間的關(guān)系,Java運(yùn)行機(jī)制和Java程序的結(jié)構(gòu); 通過(guò)編寫(xiě)第一個(gè)程序,掌握如何使用Eclipse規(guī)范編寫(xiě)并執(zhí)行Java程序; 介紹Java初學(xué)者經(jīng)常會(huì)犯的一些錯(cuò)誤,以及相應(yīng)的原因和解決方法。
本單元的內(nèi)容如下。
任務(wù)1搭建Java開(kāi)發(fā)環(huán)境
任務(wù)描述
本任務(wù)帶領(lǐng)大家搭建Java開(kāi)發(fā)環(huán)境,搭建環(huán)境步驟如下。
① 安裝JDK。
② 設(shè)置JDK環(huán)境變量。
③ 安裝Eclipse開(kāi)發(fā)工具。
在本任務(wù)中,你將了解到Java的發(fā)展歷史,Java的體系結(jié)構(gòu)以及JDK、JRE、JVM之間的關(guān)系。
相關(guān)知識(shí)
1.1.1什么是Java
印度尼西亞被稱(chēng)作千島之國(guó),其中有一個(gè)島稱(chēng)為爪哇(Java)。爪哇是世界三大著名咖啡出產(chǎn)地之一(巴西、海南),因此,一杯飄香的咖啡成為Java的標(biāo)志。我們學(xué)習(xí)的Java絕非是咖啡或印度尼西亞的一個(gè)島,而是一門(mén)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,它已經(jīng)和Java咖啡一樣飄香世界了。圖1.1.1和圖1.1.2所示分別是Java不同時(shí)期的Logo。
圖1.1.1Oak的吉祥物
圖1.1.2Java語(yǔ)言的吉祥物
1.1.2Java的歷史
在這個(gè)世界上,熟悉Java歷史的人非常多,如果要問(wèn)一個(gè)人Java是哪年誕生的,也許大多數(shù)人都會(huì)回答是1995年(這個(gè)非常好記,因?yàn)槲④浀腤indows 95也是在這一年發(fā)布的)。但事實(shí)上Java早在20世紀(jì)90年代初就開(kāi)始醞釀了。
1991年4月,Sun(Sun Microsystems)公司的James Gosling領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開(kāi)始為設(shè)備和用戶之間的交流創(chuàng)造一種能夠?qū)崿F(xiàn)網(wǎng)絡(luò)交互的語(yǔ)言,于是創(chuàng)建了Oak語(yǔ)言(Java的前身)。不過(guò)在當(dāng)時(shí)市場(chǎng)不成熟的情況下,該項(xiàng)目沒(méi)有獲得成功,但Oak語(yǔ)言得到了Sun總裁的賞識(shí)。
直至1994年下半年,由于Internet的迅猛發(fā)展,工業(yè)界對(duì)適合在網(wǎng)絡(luò)異構(gòu)環(huán)境(由不同制造商生產(chǎn)的計(jì)算機(jī),網(wǎng)絡(luò)設(shè)備和系統(tǒng)組成,這些計(jì)算機(jī)系統(tǒng)運(yùn)行不同的操作系統(tǒng)和通信協(xié)議)下使用的語(yǔ)言(即跨平臺(tái)的語(yǔ)言)有一種非常急迫的需求。Games Gosling決定改變綠色計(jì)劃的發(fā)展方向,他們對(duì)Oak進(jìn)行了小規(guī)模的改造,并改名為Java。就這樣,Java在1995年的5月23日誕生了!互聯(lián)網(wǎng)時(shí)代的興起,給了Java無(wú)限的可能。其實(shí)Java的誕生頗有那么一股“有心栽花花不開(kāi),無(wú)心插柳柳成蔭”的味道,就像當(dāng)年UNIX系統(tǒng)一樣。
隨著Java越來(lái)越受到關(guān)注,Sun公司在1998年發(fā)布了JDK 1.2,同時(shí)發(fā)布了Java體系三大平臺(tái): J2SE、J2EE和J2ME。2004年,Java將JDK 1.4直接升級(jí)為JDK 5,這是為了彰顯新版本和以前版本有著極大不同。2006年,發(fā)布JDK 6,同時(shí)將三大體系更名為Java SE、Java EE和Java ME。2009年,Oracle宣布并購(gòu)Sun,從此Java成為Oracle公司的產(chǎn)品。圖1.1.3簡(jiǎn)要描述了Java的發(fā)展歷程。
圖1.1.3Java的發(fā)展歷史
1.1.3Java體系結(jié)構(gòu)
Java分為三個(gè)體系: Java SE(Java Platform Standard Edition,Java平臺(tái)標(biāo)準(zhǔn)版),Java EE(Java Platform Enterprise Edition,Java平臺(tái)企業(yè)版),Java ME(Java Platform Micro Edition,Java平臺(tái)微電子版)。
(1) Java SE。
Java SE是Java技術(shù)的核心,提供基礎(chǔ)Java開(kāi)發(fā)工具、執(zhí)行環(huán)境與應(yīng)用程序接口(API),它主要分為四個(gè)部分: Java語(yǔ)言、Java標(biāo)準(zhǔn)開(kāi)發(fā)包(Java SE Development Kits,JDK)、Java運(yùn)行時(shí)環(huán)境(Java Runting Environment,JRE)和Java虛擬機(jī)(Java Virtual Machine,JVM)。
(2) Java EE。
Java EE以Java SE為基礎(chǔ),定義了一系列服務(wù)。整個(gè)Java EE體系相當(dāng)龐大,如包括JSP、Servlet等,主要面向企業(yè)級(jí)WEB應(yīng)用。
(3) Java ME。
Java ME為在移動(dòng)設(shè)備和嵌入式設(shè)備(如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。
隨著蘋(píng)果IOS和谷歌Android平臺(tái)的興起,Java ME在移動(dòng)設(shè)備端已不是主流。
Java學(xué)習(xí)者一般要從Java SE開(kāi)始入門(mén),Java SE是Java語(yǔ)言的核心,而Java EE和Java ME是在Java SE基礎(chǔ)上的擴(kuò)展。Java SE提供了Java運(yùn)行時(shí)環(huán)境,使開(kāi)發(fā)的應(yīng)用程序能夠在不同的操作系統(tǒng)上運(yùn)行,如圖1.1.4所示。
……