




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java面向?qū)ο蟪绦蛟O(shè)計深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)緒論內(nèi)容提要課程介紹123Java入門緒論課程考核方式4建立面向?qū)ο蟮氖澜缬^課程主要內(nèi)容Java基本語法面向?qū)ο笏枷氘惓L幚怼⑤斎胼敵鎏幚韴D形用戶界面(GUI)的編程How?(怎樣考核)考核方式比例:平時20%,單元測試40%,綜合項(xiàng)目開發(fā)10%,期末考試30%;平時:考勤、作業(yè)、課堂表現(xiàn);單元測試;綜合項(xiàng)目開發(fā);期末考試(開卷);Java入門緒論為什么學(xué)習(xí)Java?123怎樣學(xué)習(xí)Java?什么是Java?WHY(1)?Java語言與微軟系列語言已經(jīng)成鼎足之勢,二分天下!契機(jī):1991年,消費(fèi)電子產(chǎn)品上開發(fā)應(yīng)用程序選用C++(過于龐大,內(nèi)存管理經(jīng)常出問題)OAK語言保留C++的語法自動垃圾回收機(jī)制去掉C++中的指針面向的對象特性Java語言Internet的迅猛發(fā)展www的快速增長WHY(2)---JDK的發(fā)展歷程WHY(2)---JDK的發(fā)展歷程JDK版本代號推出時間JDK1.1.4Sparkler寶石1997-09-12JDK1.1.5Pumpkin南瓜1997-12-13JDK1.1.6Abigail阿比蓋爾--女子名1998-04-24JDK1.1.7Brutus布魯圖--古羅馬政治家和將軍1998-09-28JDK1.1.8Chelsea切爾西--城市名1999-04-08J2SE1.2Playground運(yùn)動場1998-12-04J2SE1.2.1無1999-03-30J2SE1.2.2Cricket蟋蟀1999-07-08J2SE1.3Kestrel美洲紅隼2000-05-08J2SE1.3.1Ladybird瓢蟲2001-05-17J2SE1.4.0Merlin灰背隼2002-02-13J2SE1.4.1grasshopper蚱蜢2002-09-16J2SE1.4.2Mantis螳螂2003-06-26J2SE5.0(1.5.0)Tiger老虎2004-10J2SE6.0(Beta)Mustang野馬2006-04WHY(3)---Java語言應(yīng)用場景大型商業(yè)網(wǎng)站應(yīng)用WHY(3)---Java語言應(yīng)用場景Applet程序應(yīng)用http://cg.scs.carleton.ca/%7Emorin/misc/sortalg/
WHY(3)---Java語言應(yīng)用場景Java手機(jī)應(yīng)用WHY(3)---Java語言應(yīng)用場景Java桌面程序應(yīng)用What(1)—Java語言特點(diǎn)?Java語言是一種高級語言。語言特點(diǎn)
簡單性;面向?qū)ο?分布式;健壯性;安全性;平臺無關(guān)性;可移植性;解釋執(zhí)行;高性能;多線程;動態(tài)性;豐富的類庫。What(2)—Java開發(fā)過程?開發(fā)過程What(3)--什么是Java平臺?Java平臺包含兩個部分:Java虛擬機(jī)Java應(yīng)用程序編程接口--JavaApplicationProgrammingInterface(API)What(4)--Java技術(shù)的意義掌握容易代碼更少更好的代碼快速開發(fā)程序平臺無關(guān)性一次編寫,處處運(yùn)行更容易的軟件發(fā)布How(1)---集成開發(fā)環(huán)境介紹?Java集成開發(fā)工具介紹、比較和選擇1、JDK(JavaDevelopmentKit)Java開發(fā)工具集2、NetBeans與SunJavaStudio53、Borland的JBuilder4、JCreator5、Eclipse6、IntelliJ7、BlueJ工具工具和環(huán)境操作系統(tǒng)windows2000Professional開發(fā)工具BlueJ開發(fā)以及教學(xué)環(huán)境JCreator2.5pro;JDK1.4.2
How(2)--運(yùn)行環(huán)境搭建(1)下載并安裝SDK/j2se/1.4.2/downloads/index.htmlHow(2)--運(yùn)行環(huán)境搭建(2)下載并安裝BlueJ工具/download/download.html
How(2)--運(yùn)行環(huán)境搭建(3)BlueJ中文版轉(zhuǎn)換#####################################################################bluej.language=english#bluej.language=afrikaans#bluej.language=chinese#bluej.language=czech#bluej.language=dutch#bluej.language=french#bluej.language=german#bluej.language=italian#bluej.language=japanese#bluej.language=korean#bluej.language=portuguese#bluej.language=spanish#bluej.language=swedish將第一行bluej.language=english替換成bluej.language=chinese,為了防止輸入不對而失敗,最好先備份bluej.defs文件HOW(2)—運(yùn)行環(huán)境搭建(4)下載并安裝Java程序編輯與調(diào)試工具JCreatorHow(3)--學(xué)習(xí)路徑規(guī)劃崗位需求:Web開發(fā)師
Java程序員
移動開發(fā)程序員How(4)--網(wǎng)絡(luò)資源Sun公司網(wǎng)站/How(4)--網(wǎng)絡(luò)資源IBM公司/developerworks/cn/java/newto/index.html
How(4)--網(wǎng)絡(luò)資源CSDN中國程序員網(wǎng)站/
How(4)--網(wǎng)絡(luò)資源Java網(wǎng)站匯總建立面向?qū)ο蟮氖澜缬^補(bǔ)充材料建模就是認(rèn)識現(xiàn)實(shí)世界客觀世界世界主觀世界認(rèn)識世界改造世界世界是什么樣的呢?不同類型的人有不同的世界觀E=MC2事物,運(yùn)動矛盾,變化,發(fā)展X+Y=Z1+1=?類,關(guān)聯(lián),對象持不同的世界觀就會得到對現(xiàn)實(shí)世界的不同認(rèn)識—— 建立不同的世界模型。只存在同一個現(xiàn)實(shí)世界所以,模型沒有對錯、只有符合建模人目的多少之分。軟件人的目的現(xiàn)代目的: 在計算機(jī)中模擬現(xiàn)實(shí)世界的物和事。傳統(tǒng)目的: 控制計算機(jī)運(yùn)行。站在六個角度來看待事物FACEBD舉例說明……A.這里面有什么東東?B.每個東東看上去是什么樣的?C.每個東東能做點(diǎn)什么用?D.這些東東都呆在什么地方?E.這些東東之間有什么關(guān)系?F.這些東東是怎么成事的?“昨天我的一個朋友結(jié)婚了”這里面有什么東東?月老,小伙,姑娘,戀人,玫瑰花。每個東東看上去是什么樣的?月老,看上去有些年紀(jì)了,挺熱心的。小伙,看上去很強(qiáng)壯,很實(shí)誠的。姑娘,看上去好漂亮,還很溫柔。戀人,看上去很黏糊,當(dāng)然就結(jié)婚了。玫瑰花,火紅火紅的,難怪姑娘動情了。本故事純屬虛構(gòu),如有雷同,請莫對號入座……每個東東能做點(diǎn)什么用?月老:牽線搭橋,介紹認(rèn)識。小伙:追求獻(xiàn)花,表達(dá)愛意。姑娘:仰慕傾情,以身相許。戀人:拍拖…結(jié)婚。玫瑰花:令姑娘頭暈,傳情示愛。這些東東都呆在什么地方?月老:婚介所,交友網(wǎng)站。小伙:軟件園,住唐家。姑娘:人民醫(yī)院,住新香洲。戀人:情侶路,電影院,…玫瑰花:花店里,小伙手中,姑娘手中。這些東東之間有什么關(guān)系?關(guān)系月老小伙姑娘戀人玫瑰月老干媽舅媽撮合者沒關(guān)系小伙干兒子男友老公男主角買送主姑娘外甥女女友太太女主角受主戀人作品組合組合使用者玫瑰沒關(guān)系信物受物心意信物這些東東是怎么成事的?月老牽線搭橋,介紹小伙和姑娘認(rèn)識;姑娘和小伙一見鐘情,成為一對戀人;一對戀人開始拍拖;小伙追求獻(xiàn)花,表達(dá)對姑娘的愛意;姑娘收到999火紅玫瑰,激動得頭暈?zāi)垦#恍』镎嫘那蠡?,姑娘以身相許;一對戀人終于走入婚姻殿堂。用面向?qū)ο笫澜缬^看事物的答案A.這里面有些什么東東?答:這里面有的都是事物。注:如果大陸第一個翻譯Object的人不翻譯為“對象”,而是把它翻譯為“事物”就好了,這樣就可以省掉這個問題。臺灣人的翻譯就非常準(zhǔn)確,叫做“物件”。如上例,有月老,小伙,姑娘,戀人,玫瑰等事物(對象)B.每個事物看上去是什么樣的?每個事物看上去都有自己的屬性,在每個屬性上都有一個特征值。如上例中:月老,有屬性:年紀(jì),特征值:較大;小伙,有屬性:體格,特征值:強(qiáng)壯;姑娘,有屬性:性情,特征值:溫柔;戀人,有屬性:關(guān)系,特征值:黏糊;玫瑰花,有屬性:顏色,特征值:火紅。C.每個事物能做點(diǎn)什么用?每個事物都具備某種能力;這些事物有什么用,就要看它有什么能力了。注:如果大陸第一個翻譯Method的人就把它翻譯為“能力”就好了,這樣也可以省掉這個問題。臺灣人的翻譯好象也叫“方法”。如上例中:月老有牽線搭橋,介紹認(rèn)識的能力(方法);小伙有“追求”的能力,姑娘有“嫁人”的能力;戀人有“拍拖”的能力,玫瑰有“示愛”的能力。D.這些事物都呆在什么地方?每個事物都會有它合理的或者必須的空間位置和邏輯位置。尤其當(dāng)這些位置對事物的行為造成重要影響的時候,表明他們的位置是極其重要的。面向?qū)ο蟮氖澜缬^中叫事物的部署。上例列出的位置對故事主要情節(jié)沒有太大的影響,本來是可以不列出來的。E.這些事物之間有什么關(guān)系?事物之間的關(guān)系非常多,面向?qū)ο蟮挠^點(diǎn)一般分為主要的三類:整體-部分關(guān)系,甲是乙的一個組成部分。如戀人和小伙,戀人和姑娘的關(guān)系。籠統(tǒng)-具體關(guān)系,甲是乙的一個特例。如人和小伙,人和月老,人和姑娘的關(guān)系?;锇殛P(guān)系,甲會對乙做點(diǎn)什么。如月老和小伙、姑娘,小伙和玫瑰,小伙和姑娘的關(guān)系。F.這些事物是怎么成事的?每個事物都會盡量利用伙伴的能力;整體事物的能力依靠部分事物的能力;籠統(tǒng)事物的屬性和能力就是具體事物的屬性和能力;具體事物除了有籠統(tǒng)事物的屬性和能力外,還可以有自己特殊的。事物分工協(xié)作,互通信息,共同完成整體的目標(biāo)。補(bǔ)充練習(xí)“昨天我同事的兒子考上了大學(xué)”;“干旱了這么久了,請想個法子下場雨吧;”“上月去北京開會時老王遇到老同學(xué)老張;”“一到月底就手頭急,錢都跑哪里去了?”“看大家忙忙碌碌的,可活不見長,到底咋回事?”請每個聽眾回去模仿本教程選擇以上其中一個故事進(jìn)行演繹,作為對本人傾情演出的回報。課堂練習(xí)網(wǎng)上查找資料,還有那些開發(fā)工具用于java程序的開發(fā),比較它們之間的不同?什么是java虛擬機(jī)?什么是字節(jié)碼?網(wǎng)上作業(yè):java的發(fā)展現(xiàn)狀(作業(yè))以及Java名字的來歷?Java面向?qū)ο蟪绦蛟O(shè)計深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)面向?qū)ο蟪醪?1)內(nèi)容提要4類與對象1235對象方法調(diào)用對象交互編寫一個符合要求的類對象與類---類與對象的關(guān)系課前提問:1、我們已經(jīng)學(xué)習(xí)了哪些程序設(shè)計語言?2、大家能否盡量列舉出知道的程序設(shè)計語言,分辨它們之間的區(qū)別?3、我們編寫出來的程序是用來干什么的,與現(xiàn)實(shí)世界有什么關(guān)系?
對象與類---類與對象的關(guān)系類就是使用抽象的方式描述一種特定類的所有對象。實(shí)例是強(qiáng)調(diào)對象是某一個特定類的對象時使用的名字。
大家還可以列舉下更多存在類與對象的關(guān)系的例子嗎?對象與類---產(chǎn)生對象
對照P22頁,產(chǎn)生一個Star的對象star1;實(shí)戰(zhàn)演練:大家通過相似的方式產(chǎn)生一個畫板對象和一個長方形對象。類可以產(chǎn)生多個不同的對象;命名規(guī)則:類名的第一個字母為大寫字母,對象的名字為小寫字母。對象與類---對象方法調(diào)用1、猜猜圖2.5中,對象操作方法列表中各個方法的作用;2、顯示五角星對象;P253、移動五角星對象;P25實(shí)戰(zhàn)演練:1、嘗試調(diào)用moveDown兩次或者三次,觀察發(fā)生的情況,解釋該方法作用?2、嘗試調(diào)用makeInvisible方法兩次,觀察發(fā)生的情況,解釋該方法作用?方法表示對象的行為,表示對象能夠完成的動作。動作不可能是單獨(dú)存在的,對象和方法是捆綁在一起的.對象與類---參數(shù)試一試:調(diào)用star1對象的moveHorizontal方法,出現(xiàn)下圖:實(shí)戰(zhàn)演練帶參方法P271、調(diào)用moveVertical、slowMoveVertical和changeSize方法,觀察方法作用;2、使用moveHorizontal使五角星對象向左移動70個像素。參數(shù)方法要求的格外的值稱為參數(shù)。一個方法簽名顯示它需要那種參數(shù)。當(dāng)調(diào)用,moveHorizontal顯示在圖2-7,對話框上顯示了下面這行
voidmoveHorizontal(intdistance)這個稱為方法簽名。簽名提供了一些關(guān)于方法信息。兩個小括號之間的部分是關(guān)于被要求參數(shù)的信息。對于每一個參數(shù),都定義了類型和姓名。姓名提供了被提供的數(shù)據(jù)的含義。函數(shù)和方法提問:大家還記得函數(shù)的作用和函數(shù)的定義形式嗎?函數(shù)和方法相同點(diǎn)都是對重復(fù)利用的功能的封裝;不同點(diǎn)類中的方法是對類中封裝數(shù)據(jù)的功能封裝;數(shù)據(jù)類型參數(shù)所屬的數(shù)據(jù)類型定義哪種數(shù)據(jù)能夠被傳遞作為參數(shù)。試一試:調(diào)用star1的changeColor()方法;課后練習(xí)按照下面步驟操作并回答問題:產(chǎn)生幾個Star對象,在Star類的彈出式菜單中選擇newStar(),能夠產(chǎn)生對象。讓五角星對象顯示出來;使用move()方法圍繞屏幕移動各個五角星對象。讓其中一個五角星對象變大,并且讓顏色變成黃色。讓另外一個五角星變小,并且讓顏色變成綠色。嘗試下其他形狀:產(chǎn)生一些Square對象
思考對象是如何產(chǎn)生?對象上的方法是如何調(diào)用的?
方法的是如何進(jìn)行定義的?對象狀態(tài)試一試1、右鍵點(diǎn)擊BlueJ中對象平臺中一個五角星對象;2、在彈出式菜單中選擇查看功能;這時候大家會看到一個窗口,該窗口稱為對象查看器。3、如圖2-12所示,大家就能看到五角星對象的狀態(tài),也就是對象的各個屬性的值。實(shí)戰(zhàn)演練1、確信在對象平臺上有幾個對象并且輪流查看對象。2、調(diào)用對象的各個方法,觀察修改對象的狀態(tài)(例如:當(dāng)對象查看器被打開的時候,調(diào)用moveLeft方法)。觀察對象查看器中對象狀態(tài)的變化。請寫出各個方法的調(diào)用對對象的那些狀態(tài)產(chǎn)生影響?對象里面含有什么?當(dāng)查看不同對象的狀態(tài),注意到:一個類的不同對象都含有相同的字段。也就是說字段的數(shù)量、類型以及名字都是同樣的,但是每個對象的一個特定字段的實(shí)際數(shù)值是不同的。一個不同類的對象含有不同的字段。
實(shí)戰(zhàn)演練P33心型圖案
思考能否通過其它的方式完成下面圖像?
對象交互試一試:打開picture工程。產(chǎn)生該工程下類Picture的實(shí)例并且調(diào)用draw方法實(shí)戰(zhàn)演練:P34實(shí)戰(zhàn)演練P36Java面向?qū)ο蟪绦蛟O(shè)計深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)類的基本結(jié)構(gòu)(1)內(nèi)容提要類結(jié)構(gòu)(成員變量、構(gòu)造器、方法)1類的基本寫法類被分成兩個部分:類頭和類體。publicclassMonk{類的內(nèi)部實(shí)現(xiàn);}
實(shí)戰(zhàn)演練寫出Student和StudentRegisterSystem類的類頭。判斷下面兩種寫法有無區(qū)別:
publicclassMonk和classpublicMonk?編輯Monk類的源代碼,關(guān)閉編輯窗口。注意類圖中產(chǎn)生的變化。點(diǎn)擊編譯按鈕,得到什么錯誤信息?為什么會出現(xiàn)這種錯誤?在Monk類頭,把public去掉,看看是否可以?類體部分publicclassClassName{成員變量構(gòu)造器方法}三個部件的主要作用如下:成員變量存儲每個對象使用的數(shù)據(jù);構(gòu)造器作用是構(gòu)建對象時被調(diào)用,保證每個對象被正確建立;方法實(shí)現(xiàn)對象的行為,也就是對象能夠做什么;成員變量成員變量存儲每個對象使用的數(shù)據(jù);構(gòu)造器構(gòu)造器作用是構(gòu)建對象時被調(diào)用,保證每個對象被正確建立;作用就是初始化正在產(chǎn)生的對象的各個字段;方法獲取方法設(shè)置方法西游記---和尚類西游記唐僧師徒四人有什么共同的特征?編寫Monk類步驟定義類頭成員變量定義編寫構(gòu)造器方法編寫成員方法步驟1.Monk類頭定義
類名為Monk,如何定義類頭?步驟2.Monk類成員屬性定義在Monk定義如下成員屬性總結(jié)和尚的特征,作為類的成員屬性.步驟3:編寫構(gòu)造器方法在Monk類中添加如下構(gòu)造器方法
構(gòu)造器有何特征?步驟4:編寫成員方法在Monk類中添加如下成員方法:
希望對象能做什么?創(chuàng)建Monk類對象創(chuàng)建唐僧,孫悟空,沙僧,豬八戒對象調(diào)用成員方法,觀察程序運(yùn)行結(jié)果.問題思考構(gòu)造器方法有特點(diǎn)?它的作用是什么?set方法的作用是什么?命名有何規(guī)律?get方法的作用是什么?命名有何規(guī)律?類名命名有何特點(diǎn)?成員屬性和成員方法命名有何特點(diǎn)?學(xué)生看書總結(jié)回答!!小結(jié)1類定義類的結(jié)構(gòu)組成類成員屬性類構(gòu)造器方法類成員方法類set/get方法2創(chuàng)建對象3對象方法調(diào)用作業(yè)將Monk類的完整代碼抄寫在筆記本上Java面向?qū)ο蟪绦蛟O(shè)計深圳職業(yè)技術(shù)學(xué)院軟件技術(shù)專業(yè)類的基本結(jié)構(gòu)(2)內(nèi)容提要4類定義回顧-TicketSeller123三種控制結(jié)構(gòu)回顧TicketSeller改進(jìn)版類定義總結(jié)類定義售票機(jī)功能:1、能打印一個單價的票2、售票機(jī)能夠保存總的票的張數(shù)3、售票機(jī)能夠保存接收的錢總數(shù)4、一次交易過程中插入的貨幣數(shù)量。
功能體驗(yàn)1、在BlueJ中,打開ticketSeller的工程;我們會看到該工程包含僅僅一個類TicketSeller類。2、對照2.1節(jié)產(chǎn)生一個TicketSeller實(shí)例;
我們選擇newTicketSeller(intticketCost),被要求輸入一個數(shù)字,對應(yīng)票的單價,我們輸入500,作為票單價。3、大家用紙列舉出產(chǎn)生的TicketSeller對象中含有的方法;4、調(diào)用getSinglePrice方法;我們將在BlueJ的終端上看到產(chǎn)生對象的時候輸入的票單價。5、調(diào)用setTotalTicket(inttickets)方法;要求輸入票的總張數(shù),我們輸入10作為機(jī)器含有的總票數(shù)6、調(diào)用insertMoney方法模擬插入一定數(shù)量的錢進(jìn)入機(jī)器;7、使用getBalance方法檢測機(jī)器含有被插入的錢的數(shù)量;8、重復(fù)第六步,模擬多次插入錢,并用getBalance方法檢查本次交易中被插入的錢的數(shù)量。我們不斷調(diào)用該方法,就像可以插入多個錢幣。類定義類分成類頭和類體。類頭是一個外部的封裝,主要是命名類名并定義出類的范圍;類體是真正做工作的部分類定義---成員變量TicketSeller類有四個字段:totalTickets、singlePrice、balance和totalMoney。成員變量有時也稱為實(shí)例變量。我們已經(jīng)把這些變量定義在類的內(nèi)部。這些都是售票機(jī)需要處理的:singlePrice成員變量存儲一個售票機(jī)的票單價。balance成員變量存儲在打印一張票之前插入到售票機(jī)中的錢的數(shù)量。totalMoney成員變量存儲插入到機(jī)器中的所有錢的數(shù)量。totalTickets成員變量存儲售票機(jī)對象保存的票總數(shù)量。類定義---構(gòu)造器構(gòu)造器在創(chuàng)建對象的時候被調(diào)用,作用就是初始化正在產(chǎn)生的對象的各個字段。比如,我們產(chǎn)生一個ticketSe1對象;publicclassTicketSeller{字段忽略/***產(chǎn)生一個售票機(jī)用于打印指定價格的票;*注意票價必須大于0,當(dāng)然在這里沒有任何檢測保證這點(diǎn)。*/publicTicketSeller(intticketCost){singlePrice=ticketCost;balance=0;total=0;totalTickets=100;}方法忽略}構(gòu)造器方法沒有返回類型構(gòu)造器方法的名字和類名相同構(gòu)造器方法在產(chǎn)生對象的時候調(diào)用構(gòu)造器傳參過程方法---獲取方法找到類TicketSeller中的四個方法:getSinglePrice()getBalance()insertMoney()
printTicket()方法=方法頭+方法體publicintgetSinglePrice(){
returnsinglePrice;
}int:表示方法的返回類型():表示方法沒有形式參數(shù){}表示方法的范圍;get方法的特點(diǎn)是能夠獲取售票機(jī)對象字段的值;實(shí)戰(zhàn)演練1、比較getBalance方法和getSinglePirce方法,觀察它們有什么不同之處?2、如果對getSinglePrice方法的調(diào)用能夠被稱為”票價多少”?一個對getBalance方法的調(diào)用呢?3、如果一個getBalance方法被改成getAmount方法。在方法體中的return語句是否需要改變?4、編寫一個新的get方法getTotalMoney,返回totalMoney字段的值。5、從getSinglePrice方法的方法體中移除return語句,編譯程序時,會出現(xiàn)什么錯誤信息6、比較getSinglePrice和printTicket方法的簽名,除了名字之外,在兩者之間的主要區(qū)別是什么?7、insertMoney和printTicket方法是否都有return語句?為什么?
是否注意到他們頭部和方法體中的return語句有什么聯(lián)系嗎?方法---設(shè)置方法我們可以調(diào)用對象的方法改變對象的狀態(tài),這些會改變對象狀態(tài)的方法,我們稱為設(shè)置方法
insertMoneyprintTicket試一試產(chǎn)生一個售票機(jī),帶有你選擇的票價。在做任何事情之前,調(diào)用getBalance方法。然后調(diào)用insertMoney方法,并且給一個非0的正數(shù)作為實(shí)際的參數(shù)。再次調(diào)用getBalance方法。兩次對getBalance方法的調(diào)用將顯示不同的輸出,因?yàn)閷nsertMoney的調(diào)用改變了售票機(jī)的狀態(tài)通過balance字段。設(shè)置方法publicvoidinsertMoney(intamount){balance=balance+amount;}void:表示方法無需返回類型(intamount):表示方法有一個形式參數(shù)對售票機(jī)的balance字段添加amount值方法作用是模擬用戶插入錢,在實(shí)現(xiàn)上修改balance字段的值實(shí)戰(zhàn)演練1、在TicketSeller類中增加一個方法publicvoidsetPrice(intticketCost)2、完成setPrice方法,作用是重新指定售票機(jī)單價。3、完成下面方法的方法體,目的是將參數(shù)的值增加到score字段中。publicvoidincrease(intpoints){
}4、完成下面方法體,該方法作用是從字段singlePrice中減少參數(shù)的值?publicvoiddiscount(intamount){
……}打印輸出方法publicvoidprintTicket(){//模擬一張票的打印.System.out.println("##################");System.out.println("#票單價為:");System.out.println("#"+singlePrice+"分.");System.out.println("##################");totalTickets=totalTickets-1;System.out.println("現(xiàn)還剩余:"+totalTickets+"張");System.out.println();//用balance更新total的值.totalMoney=totalMoney+balance;//清空balance的值
balance=0;}實(shí)戰(zhàn)演練1、給TicketSeller類添加一個prompt方法,方法具有void返回類型并且沒有參數(shù),方法體打印如下字符串:請插入足夠的錢!2、添加一個showPrice方法,方法具有void返回類型并且沒有參數(shù),方法體將打印如下東西:票價為xyz分當(dāng)方法被調(diào)用時,在上面xyz應(yīng)該被替換成票價。3、使用不同的價格產(chǎn)生兩個售票機(jī)對象,調(diào)用showPrice方法,看看輸出是否相同?如何解釋?4、更改第四條語句成如下兩種形式,調(diào)用觀察什么會被打印出來?為什么?System.out.println(“#”+”singlePrice”+”
分”);System.out.println(“#singlePrice分”);售票機(jī)總結(jié)到現(xiàn)在為止我們已經(jīng)查看類TicketSeller的源代碼。類有一個類頭,主要是給類取一個名字;類還包含方法體,包含字段、構(gòu)造器和一些方法。字段被用于存儲使對象保存狀態(tài)的數(shù)據(jù)。構(gòu)造器被用于建立對象的初始狀態(tài),。方法實(shí)現(xiàn)了類對象的行為。其中包含獲取和設(shè)置兩種方法,獲取方法提供對象狀態(tài)信息,設(shè)置方法用于改變對象的狀態(tài)。構(gòu)造器和一般方法不同之處:首先構(gòu)造器的名字必須和類名相同;構(gòu)造器和方法都能帶參數(shù),但是方法能夠含有返回類型;帶有非void返回類型的方法要求在方法體的最后語句含有return語句;return語句僅僅應(yīng)用與方法。構(gòu)造器不能帶任何形式的返回類型。售票機(jī)2.0注意到現(xiàn)在做的系統(tǒng)和現(xiàn)實(shí)系統(tǒng)中售票機(jī)比較,還有很多不足:顧客插入錢時,沒有對顧客插入的錢的合法性進(jìn)行檢測。打印票時,沒有找零操作。打印票時,沒有檢測顧客插入錢是否足夠。構(gòu)建售票機(jī)對象時,沒有對票價的合理性進(jìn)行檢測。
條件語句1、判斷語句:ifif(boolean-expression)
statement;
實(shí)戰(zhàn)演練以下程序片段為產(chǎn)生一個100以內(nèi)的偶數(shù),請繪制程序的流程圖,并加以解釋。intx;x=(int)(Math.random()*100);//產(chǎn)生一個100以內(nèi)的整數(shù)if(x%2!=0)//判斷是否為偶數(shù)
x+=1;//若不是偶數(shù),則加1使其成為偶數(shù)System.out.println("x="+x+",是偶數(shù)");//輸出x。選擇語句if-elseif(boolean-expression)
statement1;
elsestatement2;實(shí)戰(zhàn)演練根據(jù)以下程序片段繪制程序執(zhí)行的流程圖,其中a,b為兩個整數(shù),max為保存兩個數(shù)中的大數(shù),并加以解釋。inta=3,b=5;//定義變量并賦初值intmax;//定義變量用來存放比較結(jié)果(較大者)
if(a>b)//比較a,b的值,將大者放入變量max中
max=a; elsemax=b;System.out.println(“max=”+max);//輸出max的值多分支語句:if–elseif–else語句if(boolean-expression1)
statement1;elseif(boolean-expression2)
statement2;
………elseif(boolean-expressionN)
statementN;elsestatement;實(shí)戰(zhàn)演練根據(jù)程序片段繪制多分支語句if-elseif-else的流程圖,其中score為需要轉(zhuǎn)轉(zhuǎn)的分?jǐn)?shù),grade為轉(zhuǎn)換好的成績等級,并加以解釋。if(score>=90&&score<=100)//根據(jù)score中的數(shù)值,將相應(yīng)的等級值賦值給
//grade. grade=’A’; elseif(score>=80&&score<=89) grade=’B’; elseif(score>=70&&score<=79) grade=’C’; elseif(score>=60&&score<=69) grade=’D’; elsegrade=’E’; System.out.println(“grade=”+grade);//輸出grade中的等級值。
insertMoney方法---顧客插入錢的合法性判斷
/***顧客插入貨幣*檢測貨幣數(shù)量的合理性*/publicvoidinsertMoney(intamount){if(amount>0){balance=balance+amount;}else{System.out.println("使用了一個負(fù)數(shù):"+amount);}}實(shí)戰(zhàn)演練1、通過產(chǎn)生一個TicketSeller實(shí)例并且通過不同的實(shí)參調(diào)用insertMoney方法,檢測該方法的功能與我們已經(jīng)討論的是否一致。檢測balance值在調(diào)用insertMoney方法之前和以后??纯碽alance是否發(fā)生改變在錯誤消息被打印出來的時候?盡量預(yù)測什么會發(fā)生如果你輸入0作為參數(shù)并且看看是否你是對的。2、修改insertMoney方法中的測試條件,使用>=替換>,預(yù)測會發(fā)生什么?
if(amount>=0)3、修改insertMoney方法,允許顧客插入5塊和10塊的錢幣,嘗試修改該方法,并在BlueJ中進(jìn)行驗(yàn)證。
refund方法---”找零”功能實(shí)現(xiàn)/***退回余款*清除余額.*/publicintrefund(){intamountToRefund;amountToRefund=balance;balance=0;returnamountToRefund;}實(shí)戰(zhàn)演練1、為什么下面的版本refund方法和原有的版本會得出同樣的結(jié)果嗎?
publicintrefund(){
balance=0;returnbalance;}2、如果使用下面版本的refund,編譯TicketSeller類,看看會出現(xiàn)什么問題?
publicintrefund(){
returnbalance;
balance=0;
}printTicket方法---檢測顧客插入錢是否足夠
/***如果錢足夠,打印票并且從balance中減掉票價,最后打印票信息*否則打印出錯信息.*/publicvoidprintTicket(){if(balance>=singlePrice){System.out.println("##################");System.out.println("#票單價為:");System.out.println("#"+singlePrice+"分.");System.out.println("##################");totalTickets=totalTickets-1;System.out.println("現(xiàn)還剩余:"+totalTickets+"張");System.out.println();//用balance更新total的值.totalMoney=totalMoney+balance;//清空balance的值
balance=balance-singlePrice;}else{System.out.println("你必須插入至少:"+(singlePrice-balance)+"分。");}}實(shí)戰(zhàn)演練1、在printTicket,我們針對totalMoney和balance字段寫了兩條語句。比較兩者實(shí)現(xiàn)的不同,并指出不同之處。通過在BlueJ中檢驗(yàn)?zāi)愕睦斫狻?、在一張票被打印出來后,balance的值會因?yàn)闇p了singlePrice的值,變成負(fù)數(shù)嗎?為什么?3、寫程序片段:
現(xiàn)有兩個整形變量x和y,寫一個if語句,比較x值和y的值,如果x>y,然后打印消息x大于y,否則打印x小于或等于y。在打印的消息中,x和y都是其值。TicketSeller構(gòu)造器---票單價合理性檢測
publicTicketSeller(intticketCost){if(ticketCost>0){singlePrice=ticketCost;balance=0;totalMoney=0;}else{System.out.println(“票價不能為負(fù)的,請重新定價”);}}實(shí)戰(zhàn)演練如果ticketCost<=0,會出現(xiàn)什么現(xiàn)象,當(dāng)前對象能否生成,如果能,各成員變量的值為多少?請解釋為什么?成員變量、參數(shù)和局部變量定義位置生命周期使用范圍成員變量構(gòu)造器和方法外面定義生命周期與對象相同
該類中都有效
形參構(gòu)造器頭部或者方法頭部
存在于一個調(diào)用期間
構(gòu)造器或者方法
局部變量構(gòu)造器或者方法體中存在于一個調(diào)用期間
限制在他們被定義的塊中實(shí)戰(zhàn)演練1、添加emptySeller方法,用于模擬清空機(jī)器的錢。該方法能夠返回total的值,并且重新設(shè)置total為0.2、emptySeller方法是設(shè)置方法還是獲取方法,或者兩者都是呢?3、修改printTicket方法,聲明一個局部變量amountLeftToPay.,該局部變量被初始化包含price和balance之間的差額。4、重新寫一個條件,檢測amountLeftToPay的值。如果他的值<=0,一張票應(yīng)該被打印,否則一個錯誤消息被打印出來,并且說明被要求的數(shù)量。5、假設(shè)我們希望TicketSeller對象能夠用不同的價格賣票。需要添加什么新的方法或者字段允許這種功能呢?現(xiàn)有的方法是否也必須被修改?(具有一定難度)學(xué)生注冊管理系統(tǒng)之學(xué)生類實(shí)現(xiàn)
大家自己實(shí)現(xiàn)學(xué)生類(P60)實(shí)戰(zhàn)演練1、如果name為”xiaozhengxing”和id為”557214”,則getLoginName方法返回什么?2、使用name為”xia”和id為”859012”產(chǎn)生一個學(xué)生對象。調(diào)用getLoginName方法,什么會被返回?為什么呢?3、String類定義了length獲取方法,使用下面簽名:publicintlength()4、修改構(gòu)造器,使得當(dāng)fullName長度小于4,或者studentId小于3,則打印錯誤信息。但仍然使用fullName和studentId設(shè)置name和id字段。提示:使用if語句。5、修改Student的getLoginName方法,以便它總是能夠產(chǎn)生一個登陸名,即使name和id字段不是足夠長。對于小于要求長度的字符串,使用整個字符串。類定義總結(jié)類包含成員變量、構(gòu)造器和方法,定義對象的狀態(tài)和行為。在構(gòu)造器和方法中,一系列語句定義了一個對象如何完成指定的任務(wù)。并且我們還學(xué)習(xí)了賦值語句和條件語句,并將在后面的章節(jié)中學(xué)習(xí)其他類型的語句。成員變量:成員變量為對象存儲數(shù)據(jù),使用成員變量也被稱為實(shí)例變量。注釋:注釋被插入在源代碼中主要是提供解釋為閱讀者。對程序的功能無任何影響。構(gòu)造器:構(gòu)造器允許每個對象被正確的建立,當(dāng)它第一次被產(chǎn)生范圍:變量的范圍定義了源代碼區(qū),變量能夠被獲取的。生命周期:變量的生命周期描述了變量存在的時間的長度,在其被銷毀之前。賦值:賦值語句存儲值,將右邊的表達(dá)式的值賦給左邊的變量。方法:方法由頭部和方法體兩部分組成。獲取方法:獲取方法返回對象的狀態(tài)的信息。設(shè)置方法:設(shè)置方法修改對象的狀態(tài)。Println:System.out
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新材料研發(fā)股權(quán)投資合同
- 2025年度航空航天控制系統(tǒng)采購協(xié)議范本
- 汽車綜合服務(wù)市場建設(shè)項(xiàng)目可行性研究報告
- 中國核級電纜料行業(yè)市場發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報告
- 2025年度測繪數(shù)據(jù)采集與分析服務(wù)合同
- 產(chǎn)品經(jīng)營合同范本
- 2025年度新型城鎮(zhèn)化項(xiàng)目土地開發(fā)代理合同范本
- 2025年度新能源電池外殼油漆噴涂質(zhì)量檢測合同
- 2025年中國金蟬花行業(yè)市場調(diào)查研究及投資前景預(yù)測報告
- 2025代購進(jìn)口紅酒合同范本二零二五
- 山東省成人教育畢業(yè)生登記表
- 地下室車庫綜合管線施工布置
- 月度及年度績效考核管理辦法
- 采購訂單模板
- 畢業(yè)設(shè)計鋼筋彎曲機(jī)的結(jié)構(gòu)設(shè)計
- 工程結(jié)構(gòu)質(zhì)量特色介紹
- 清華大學(xué)MBA課程——運(yùn)籌學(xué)
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 通信桿路工程施工
- 初中物理光學(xué)經(jīng)典題(共23頁)
評論
0/150
提交評論