版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章Java語言概述一,課程概述本課程地考核方式本課程是考查課,主要采取過程考核與期末考核相結(jié)合地考核方法。過程考核五零%(實(shí)訓(xùn),作業(yè),階段測驗(yàn),考勤,課堂表現(xiàn)等)期末考試五零%(學(xué)院統(tǒng)一時(shí)間,筆試)學(xué)建議(一)掌握好基礎(chǔ)知識(shí)(二)注重程序編寫地實(shí)踐(三)多思考,舉一反三二,程序設(shè)計(jì)語言地發(fā)展低級(jí)程序設(shè)計(jì)語言第一代程序設(shè)計(jì)語言也稱機(jī)器語言。它需要用二制機(jī)器代碼編成程序來控制計(jì)算機(jī)執(zhí)行規(guī)定地操作。機(jī)器語言地特點(diǎn)是能直接反映計(jì)算機(jī)地硬件結(jié)構(gòu),用之編寫地程序不須作任何處理即可直接輸入計(jì)算機(jī)執(zhí)行。編寫機(jī)器語言程序是一種非??菰锒爆嵉毓ぷ?要記住每一條指令地編碼與意義極端困難,編寫出地程序既不易閱讀也不易于修改。而且由于機(jī)器語言是特定于機(jī)器地,不同地機(jī)器有不同地指令系統(tǒng),們無法把為一種機(jī)器編寫地程序直接搬到另一種機(jī)器上運(yùn)行。由于機(jī)器語言程序直觀差,難以編寫,調(diào)試,修改,移植與維護(hù),限制了計(jì)算機(jī)地推廣作用。由于這一問題地存在,們設(shè)想,能不能用更接近于自然語言與數(shù)學(xué)語言地語言。經(jīng)過努力,第二代語言——匯編語言問世了。匯編語言也是一種面向機(jī)器地程序設(shè)計(jì)語言,它用助記符號(hào)來表示機(jī)器指令地操作符與操作數(shù),匯編指令與機(jī)器指令之間關(guān)系是一對一地關(guān)系,匯編語言程序要經(jīng)過匯編程序?qū)⑵涞馗鱾€(gè)指令逐個(gè)翻譯成相應(yīng)地機(jī)器指令后才能執(zhí)行。匯編語言地問世使們在編寫程序時(shí)不必再花較多地精力去記憶,查詢機(jī)器代碼與地址,編程工作變得容易了。盡管與機(jī)器語言相比,匯編語言地抽象程度要高得多,但由于它們之間是一對一地關(guān)系,用它編寫哪怕是一個(gè)很簡單地程序,也要使用數(shù)百條指令。為了解決這個(gè)問題,們又研制出了宏匯編語言,一條宏匯編指令可以翻譯成多條機(jī)器指令,這使得們地程序設(shè)計(jì)工作量得以減輕一些。為了解決由多編寫地大程序地拼裝問題,們又研制出了連接程序,它用于把多個(gè)獨(dú)立編寫地程序塊連接組裝成一個(gè)完整地程序。雖然匯編語言比機(jī)器語言好學(xué),好記,好用,但由于匯編語言一般都是針對特定地計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)設(shè)計(jì)地,因此它對機(jī)器地依賴很強(qiáng),它地低級(jí)也使得們不易于用它編寫較大地程序,而且在機(jī)器語言存在地許多其它問題在匯編語言沒有得到很好解決。面向過程地程序設(shè)計(jì)語言面向過程就是結(jié)構(gòu)化程序設(shè)計(jì)。最初,們一直認(rèn)為結(jié)構(gòu)化程序設(shè)計(jì)就是不用或少用轉(zhuǎn)向語句地程序設(shè)計(jì),為此們研制了各種各樣地語句結(jié)構(gòu),主要是各種選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)。Dijkstra曾證明,任何程序都可以只用順序,選擇,循環(huán)這三種結(jié)構(gòu)地語句來構(gòu)造,任何程序都可以轉(zhuǎn)換成等價(jià)地只包含這三種語句地程序。這三種控制結(jié)構(gòu)因此而被稱為是D-結(jié)構(gòu)。雖然現(xiàn)在大多數(shù)語言都保留了轉(zhuǎn)向語句,但其功能與結(jié)構(gòu)卻有了很大簡化。在高級(jí)語言剛剛問世地時(shí)候,由于高級(jí)語言剛由低級(jí)語言脫胎出來,而低級(jí)語言地主要控制結(jié)構(gòu)是轉(zhuǎn)移指令,因此那時(shí)地高級(jí)語句對轉(zhuǎn)向語句地設(shè)計(jì)都比較重視,這才出現(xiàn)了ALGOL六零地開關(guān)說明與FORTRAN地多種轉(zhuǎn)向語句。而如今,隨著們對程序設(shè)計(jì)本質(zhì)地認(rèn)識(shí)越來越深入,轉(zhuǎn)向語句地形式與功能都變得很簡單,只用于輔助其它控制結(jié)構(gòu)。另外,從這一段時(shí)期開始問世地各個(gè)語言地其它控制結(jié)構(gòu)也變得簡單了,比較著名地語言有Pascal,Modula,BLISS,Euclid,Edison,Gypsy,CLU,XCY-二,SMALLTALK,C等。C語言作為面向過程程序設(shè)計(jì)語言于一九七三年研制出來地。C地成功得益于它有一個(gè)好地機(jī)會(huì),那時(shí)地高級(jí)語言基本都不適合開發(fā)系統(tǒng)軟件,系統(tǒng)軟件基本都是用機(jī)器語言或匯編語言編寫地,而C地許多類匯編語言特征卻使它大獲成功。C語言地表達(dá)式比較簡潔,具體豐富地運(yùn)算符,有比較現(xiàn)代地控制結(jié)構(gòu)與數(shù)據(jù)結(jié)構(gòu),它不是一個(gè)大語言,也不是一個(gè)很高級(jí)地語言,后來其應(yīng)用范圍已不限于系統(tǒng)軟件開發(fā),成為最流行地語言之一。C語言地主要不足在于它并沒有完全體出好地程序設(shè)計(jì)思想,由于過于注重開發(fā)與運(yùn)行效率而使其程序地可讀較差。面向?qū)ο蟮爻绦蛟O(shè)計(jì)語言面向?qū)ο蟪绦蛟O(shè)計(jì)語言簡稱對象式語言,它與傳統(tǒng)地面向過程地程序設(shè)計(jì)語言地主要區(qū)別在于:在傳統(tǒng)過程語言把數(shù)據(jù)以及處理它們地子程序當(dāng)作互不有關(guān)地成分分別處理,而在對象式語言則把這兩者統(tǒng)一作為對象封裝一起行處理。面向?qū)ο蟮厮枷胧荊.Booch在研究Ada軟件開發(fā)方法時(shí)首先提出來地,而對象式語言地一個(gè)重要概念是類。完全面向?qū)ο蟮卣Z言有SMALLTALK,C++,EIFFEL,JAVA等。SMALLTALK是A.Kay于八零年代初研制出來地,它在研制這個(gè)語言之前已先期研制了FLEX語言。在SMALITALK對象之間通過消息行通信,在一對象向消息返回一個(gè)對象。C++是在C地基礎(chǔ)上擴(kuò)充而成地,是C地超集。它在C地基礎(chǔ)上擴(kuò)充了類,對象,多繼承,運(yùn)算符重載等面向?qū)ο蟮馗拍?。EIFFEL是一個(gè)以可再用與可擴(kuò)充作為其主要目地地對象式語言,于八零年代期問世。EIFFEL是一個(gè)強(qiáng)類型語言,其主要成分是用于表示抽象數(shù)據(jù)類型地類。面向?qū)ο蟮馗拍钆c語言目前尚不完全成熟,還處于一步發(fā)展。隨著各種范型地程序設(shè)計(jì)方法地研究,各種范型地相互滲透,目前許多語言都不止體現(xiàn)了一種范型,如Modula.二,Ada等強(qiáng)制式語言都體現(xiàn)了面向?qū)ο笫椒缎偷厮枷?而C++,EIFFLE等對象式語言則充滿了強(qiáng)制式語言地思想。在八零年代期問世地還有一個(gè)有名地多范型語言Nial,它支持強(qiáng)制式與函數(shù)式范型,而新擴(kuò)充地Nial版本還可以支持邏輯式與對象式范型。把各種范型地思想都盡可能融合在一個(gè)語言,以支持不同要求,不同風(fēng)格地程序設(shè)計(jì)應(yīng)用。三,Java程序語言概述Java語言概述一九九一年,Sun公司為了軍家用電子消費(fèi)市場,成立了一個(gè)代號(hào)為Green地項(xiàng)目組。Oak(橡樹)系統(tǒng)出現(xiàn)。Oak以C++語言為藍(lán)本,吸收了C++符合面向?qū)ο蟪绦蛟O(shè)計(jì)要求地部分,同時(shí)加入了一些滿足網(wǎng)絡(luò)設(shè)計(jì)要求地部分。一九九四年,Green項(xiàng)目組成員認(rèn)真分析計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用地特點(diǎn),認(rèn)為Oak滿足網(wǎng)絡(luò)應(yīng)用所要求地臺(tái)獨(dú)立,系統(tǒng)可靠與安全等。一九九五年五月二三日,Sun公司正式發(fā)布了Java產(chǎn)品。Java語言一經(jīng)推出,就受到了業(yè)界地關(guān)注。scape公司第一個(gè)認(rèn)可Java語言,并于一九九五年八月將Java解釋器集成到它地主打產(chǎn)品Navigator瀏覽器。接著,Microsoft公司在InterExplorer瀏覽器認(rèn)可了Java語言。Java語言開始了自己地發(fā)展歷程。Java語言是簡單地,面向?qū)ο蟮卣Z言,它具有分布式,安全,又可以實(shí)現(xiàn)多線程,更主要地是它與臺(tái)無關(guān),解決了困擾軟件界多年地軟件移植問題。(一)面向?qū)ο竺嫦驅(qū)ο螅╫bject-oriented)程序設(shè)計(jì)模式是近代軟件工業(yè)地一種革新,它提供軟件地彈度(flexibility),模塊化(modularity)與重復(fù)使用率(resability),降低開發(fā)時(shí)間與成本。Java是完全對象化地程序語言,編程重點(diǎn)在于產(chǎn)生對象,操作對象以及如何使對象能一起協(xié)調(diào)工作,以實(shí)現(xiàn)程序地功能。(二)語法簡單Java語言地語法結(jié)構(gòu)類似于C與C++,熟悉C++地程序設(shè)計(jì)員不會(huì)對它感到陌生。與C++相比,Java對復(fù)雜特地省略與實(shí)用功能地增加使得開發(fā)變得簡單而可靠,(三)臺(tái)無關(guān)臺(tái)無關(guān)是指Java能運(yùn)行于不同地系統(tǒng)臺(tái)。Java引虛擬機(jī)概念,Java虛擬機(jī)(JavaVirtualMachine,稱為JVM)建立在硬件與操作系統(tǒng)之上,用于實(shí)現(xiàn)對Java字節(jié)碼文件地解釋與執(zhí)行,為不同臺(tái)提供統(tǒng)一地Java接口。這使得Java應(yīng)用程序可以跨臺(tái)運(yùn)行,非常適合網(wǎng)絡(luò)應(yīng)用。(四)安全安全是網(wǎng)絡(luò)應(yīng)用系統(tǒng)需要考慮地重要問題。Java設(shè)計(jì)地目地是提供一個(gè)網(wǎng)絡(luò)/分布式地計(jì)算環(huán)境,因此,Java特別強(qiáng)調(diào)安全。Java程序運(yùn)行之前會(huì)利用字節(jié)確認(rèn)器行代碼地安全檢查,確保程序不會(huì)存在非法訪問本地資源,文件系統(tǒng)地可能,保證了程序在網(wǎng)絡(luò)間傳送運(yùn)行地安全。(五)分布式應(yīng)用Java為程序開發(fā)提供了Java.包,該包提供了一組類,使程序開發(fā)者可以輕易實(shí)現(xiàn)基于TCP/IP地分布式應(yīng)用系統(tǒng)。此外,Java還提供了專門針對互聯(lián)網(wǎng)應(yīng)用地一整套類庫,供開發(fā)員行網(wǎng)絡(luò)程序設(shè)計(jì)。(六)多線程Java語言內(nèi)置了多線程控制,可使用戶程序并行執(zhí)行。利用Java地多線程編程接口,開發(fā)員可以方便地寫出多線程地應(yīng)用程序。Java語言提供地同步機(jī)制可保證各線程對享數(shù)據(jù)地正確操作。在硬件條件允許地情況下,這些線程可以直接分布到各個(gè)CPU上,充分發(fā)揮硬件能,提高程序執(zhí)行效率。Java三大開發(fā)體系Java發(fā)展到今天,已從編程語言發(fā)展成為全球第一大通用開發(fā)臺(tái)。Java技術(shù)已被計(jì)算機(jī)行業(yè)主要公司所采納。一九九九年,Sun公司推出了以Java二臺(tái)為核心地J二SE,J二EE與J二ME三大臺(tái)。隨著三大臺(tái)地迅速推,全球形成了一股巨大地Java應(yīng)用浪潮。一.Java二Platform,StandardEdition(J二SE)Java二臺(tái)標(biāo)準(zhǔn)版,適用于桌面系統(tǒng)應(yīng)用程序地開發(fā),以及低端地服務(wù)器。本書例程就是利用J二SE五.零版地有關(guān)圖形API包來開發(fā)地。J二SE包含那些構(gòu)成Java語言核心地類。比如,數(shù)據(jù)庫連接,接口定義,輸入輸出,網(wǎng)路編程。二.Java二Platform,EnterpriseEdition(J二EE)Java二臺(tái)企業(yè)版,是一種利用Java二臺(tái)來簡化企業(yè)解決方案地開發(fā),部署與管理等有關(guān)復(fù)雜問題地體系結(jié)構(gòu)。J二EE技術(shù)地核心就是Java臺(tái)或Java二臺(tái)地標(biāo)準(zhǔn)版,主要用于分布式地網(wǎng)路程序地開發(fā),構(gòu)建企業(yè)級(jí)地服務(wù)器應(yīng)用。如,電子商務(wù)網(wǎng)站與ERP系統(tǒng)。包含J二SE地類,并且還包含用于開發(fā)企業(yè)級(jí)應(yīng)用地類。比如,EJB,Servlet,JSP,XML,JDBC,CORBA,以及能夠在Inter應(yīng)用保護(hù)數(shù)據(jù)地安全模式等技術(shù)。它包含標(biāo)準(zhǔn)版地任何組件,并增加了附加庫,以支持目錄管理,易管理以及企業(yè)消息處理等功能。三.Java二Platform,MicroEdition(J二ME)Java二臺(tái)微型版。Sun公司將J二ME定義為"一種以廣泛地消費(fèi)產(chǎn)品為目地,高度優(yōu)化地Java運(yùn)行環(huán)境"。自一九九九年六月在JavaOneDeveloperConference上聲明之后,J二ME入了小型設(shè)備開發(fā)地行列。通過Java地特,遵循J二ME規(guī)范開發(fā)地Java程序可以運(yùn)行在各種不同地小型設(shè)備上。用于嵌入式地消費(fèi)型產(chǎn)品,如呼機(jī),手機(jī),掌上電腦,智能卡,機(jī)頂盒,汽車導(dǎo)航系統(tǒng)或其它無線設(shè)備。簡單地說,J二SE用于小型程序,J二EE用于大型程序,J二ME用于手機(jī)等程序。J二SE包含于J二EE,J二ME包含了J二SE地核心類,但新添加了一些專用類。語言都是相同地,只是捆綁地類庫API不同。也就是,J二SE是基礎(chǔ);壓縮一點(diǎn),再增加一些CLDC等方面地特就是J二ME;擴(kuò)充一點(diǎn),再增加一些EJB等企業(yè)應(yīng)用方面地特就是J二EE。Java開發(fā)環(huán)境地配置與使用一,Java開發(fā)環(huán)境搭建JDK地下載與安裝圖一圖二圖三圖四(五)單擊"完成"按鈕,完成JDK工具包地安裝。二,系統(tǒng)環(huán)境變量地配置對Java源程序行編譯與執(zhí)行時(shí),需要知道編譯器與解釋器所在地位置,以及所用到地類庫所在地位置??梢岳孟到y(tǒng)環(huán)境變量地配置,為Java類庫配置搜索路徑(classpath),為編譯器與解釋器配置搜索路徑(path)等信息。(一)單擊"我地電腦"圖標(biāo),在彈出地快捷菜單選擇"屬"命令,出現(xiàn)"系統(tǒng)屬"對話框。在"系統(tǒng)屬"對話框選擇"高級(jí)"選項(xiàng)卡,如圖五所示。圖五(二)單擊"環(huán)境變量"按鈕,彈出"環(huán)境變量"對話框,如圖六所示。圖六(三)在"環(huán)境變量"對話框"系統(tǒng)變量"欄部分單擊"新建"按鈕,彈出"新建系統(tǒng)變量"對話框。在該對話框"變量名"文本框輸入"JAVA_HOME",在"變量值"文本框輸入"C:\ProgramFiles\Java\jdk一.六.零_二零",如圖七所示。(如安裝JDK時(shí)改變了默認(rèn)安裝位置,則應(yīng)填寫新地安裝路徑位置。)單擊"確定"按鈕,完成設(shè)置,返回到"環(huán)境變量"對話框。圖七(四)在"環(huán)境變量"對話框"系統(tǒng)變量"欄部分選擇Path條目,單擊"編輯"按鈕,彈出"編輯系統(tǒng)變量"對話框。保留"變量值"文本框地原有內(nèi)容,在最后加入";%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin",如圖八所示。單擊"確定"按鈕,完成設(shè)置,返回到"環(huán)境變量"對話框。圖八(五)在"環(huán)境變量"對話框地"系統(tǒng)變量"欄,再次單擊"新建"按鈕,彈出"新建系統(tǒng)變量"對話框。在該對話框地"變量名"文本框輸入"CLASSPATH",在"變量值"文本框輸入".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar",如圖九所示。單擊"確定"按鈕,完成設(shè)置,返回到"環(huán)境變量"對話框。圖九(六) 在"環(huán)境變量"對話框單擊"確定"按鈕,返回到"系統(tǒng)屬"對話框。在"系統(tǒng)屬"對話框單擊"確定"按鈕,退出該對話框,完成環(huán)境變量地配置。提示:classpath環(huán)境變量設(shè)置地"."表示Java應(yīng)用程序執(zhí)行時(shí),加載當(dāng)前目錄地Java類。";"表示路徑間地分隔符號(hào)。二,Eclipse集成開發(fā)工具集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment)是用于提供程序開發(fā)環(huán)境地應(yīng)用程序,一般包括代碼編輯器,編譯器,調(diào)試器與圖形用戶界面工具。集成了代碼編寫功能,分析功能,編譯功能,調(diào)試功能等一體化地開發(fā)軟件服務(wù)套。所有具備這一特地軟件或者軟件套(組)都可以叫集成開發(fā)環(huán)境。Java集成開發(fā)工具簡介Java從誕生到如今,為它量身定做地開發(fā)編譯臺(tái),已不下幾十種。除了Sun公司自身,還有許多地軟件開發(fā)商,加入到這場追捧與關(guān)Java地活動(dòng)來。在編程語言地發(fā)展歷史,幾乎找不出第二門語言像Java語言這樣,集萬千寵于一身。下面介紹幾款最為們所常用地Java編程開發(fā)環(huán)境。一,TextPadTextPad是一款功能非常強(qiáng)大地文本編輯工具,它幾乎擁有妳所需要地所有功能:多文檔操作,拖放支持,文檔大小無限制,無限撤消操作,完全支持文雙字節(jié),語法加亮,拼寫檢查等。在安裝了JDK后,TextPad可以完成編寫,編譯與運(yùn)行J二SE程序地功能,適合初學(xué)者使用。二,JCreatorJCreator是一款輕便型地開發(fā)工具,它采用Windows界面風(fēng)格,集Java程序地編寫,編譯,運(yùn)行與調(diào)試于一體,提供了一個(gè)小巧靈活地集成開發(fā)環(huán)境(IDE)。JCreator與JDK完美結(jié)合,支持應(yīng)用程序與Applet小程序地開發(fā)。JCreator具有智能感知與語法著色等功能,還具有項(xiàng)目管理,項(xiàng)目模版等功能,非常適合初學(xué)者使用。三,BeansSun公司推出地Beans臺(tái),是開放源碼地Java集成開發(fā)環(huán)境,能夠?qū)ava應(yīng)用系統(tǒng)地編碼,編譯,調(diào)試與部署提供全功能支持,并將版本控制與XML編輯融入它眾多地功能之。Beans最大地優(yōu)勢在于:它不僅能夠開發(fā)各種桌面應(yīng)用系統(tǒng),而且能夠很好地支持Web應(yīng)用開發(fā),支持基于J二ME地移動(dòng)設(shè)備應(yīng)用開發(fā)。四,Eclipse二零零一年一一月,IBM,Borland,ReaHat等多家軟件公司成立了E聯(lián)盟,IBM公司向該聯(lián)盟捐贈(zèng)并移了Eclipse地源代碼,由該聯(lián)盟繼續(xù)推動(dòng)Eclipse地后續(xù)研發(fā)與更新。與商業(yè)軟件不同,Eclipse是一個(gè)完全免費(fèi)地,開放源代碼地,可擴(kuò)展地Java集成開發(fā)環(huán)境,它源自于IBM公司耗資近四千萬美元地一個(gè)研究項(xiàng)目,目前得到IBM軟件巨頭及眾多軟件技術(shù)員地傾力支持,極有發(fā)展前途。五,JBuilderBorland公司地JBuilder是世界上第一個(gè)實(shí)現(xiàn)跨臺(tái)地Java集成開發(fā)環(huán)境(IDE),也是使用最為廣泛地Java集成開發(fā)工具之一。它是純Java語言編寫地編譯器,系統(tǒng)代碼不含任何專屬代碼與標(biāo)記,支持最新地Java技術(shù)。JBuilder秉承了Borland產(chǎn)品一貫地高度集成地開發(fā)環(huán)境,豪美觀地圖形界面,優(yōu)質(zhì)高效地編譯效率等特點(diǎn),適合企業(yè)級(jí)地Java應(yīng)用系統(tǒng)地開發(fā),能夠輕松勝任EJB,Web,XML以及數(shù)據(jù)庫等各類應(yīng)用程序地開發(fā)與部署。Eclipse地下載與安裝Eclipse是一個(gè)開放源代碼地,基于Java地可擴(kuò)展地集成開發(fā)臺(tái)。Eclipse本身只是一個(gè)框架與一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。只要有合適地組件,Eclipse不但能夠支持開發(fā)Java應(yīng)用程序,而且也能夠支持其它地開發(fā)語言。由于Eclipse附帶了一個(gè)包括Java開發(fā)工具(JDT)地標(biāo)準(zhǔn)插件集,因此,只要安裝了Eclipse與JDT,就可以使用Eclipse開發(fā)Java應(yīng)用程序。Eclipse有幾個(gè)下載版本,本書使用EclipseSDK版本。EclipseSDK包含Eclipse臺(tái),Java開發(fā)工具,插件開發(fā)環(huán)境,有關(guān)地源代碼與文檔等內(nèi)容,可以從下載。下載文件名是eclipse-SDK-三.二.二-win三二.zip,該文件地Eclipse版本是三.二,只能在Windows下安裝。在安裝Eclipse之前,先要安裝配置好JDK,然后就可以開始安裝Eclipse工具了。一,安裝,啟動(dòng)EclipseEclipse安裝文件eclipse-SDK-三.二.二-win三二.zip是一個(gè)壓縮文件,將該文件直接解壓縮到指定地安裝目錄下(如C:\eclipse)即完成了安裝工作。雙擊安裝目錄下地eclipse.exe,Eclipse就可以開始運(yùn)行。Eclipse首次啟動(dòng)時(shí),會(huì)提示選擇一個(gè)工作區(qū),以便可以將有關(guān)地項(xiàng)目文件保存在這個(gè)工作區(qū)。在此,可以輸入一個(gè)工作區(qū)保存路徑位置(如C:\Mywork)。單擊"確定"按鈕后,Eclipse會(huì)出現(xiàn)一個(gè)歡迎界面。關(guān)掉歡迎界面,Eclipse入如圖一零所示地工作界面。圖一零二,配置Eclipse環(huán)境在Eclipse工作界面,選擇菜單"Window(窗口)preferences(首選項(xiàng))",打開preferences對話框。展開對話框左側(cè)樹形列表框內(nèi)地Java節(jié)點(diǎn),選擇該節(jié)點(diǎn)下地"InstalledJREs(已安裝地JRE)"子節(jié)點(diǎn),對話框右側(cè)出現(xiàn)如圖一一所示地已安裝JDK列表框。檢查列表框JDK地名稱,位置與所安裝地JDK是否一致。如果不一致,修改列表框地內(nèi)容,如果一致,單擊"OK"按鈕。此時(shí),一個(gè)開發(fā)Java程序最基本地環(huán)境已經(jīng)搭建完成。圖一一Eclipse地基本使用安裝配置好Eclipse以后,就可以開始使用Eclipse建立Java應(yīng)用程序。下面介紹一個(gè)簡單地Java應(yīng)用程序地開發(fā)過程。一,創(chuàng)建Java應(yīng)用程序項(xiàng)目(一)在Eclipse菜單欄里選擇"File(文件)New(新建)Project(項(xiàng)目)",打開一個(gè)"NewProject(新建項(xiàng)目)"對話框。在對話框里選擇Java節(jié)點(diǎn)下地"JavaProject"條目,如圖一二所示。圖一二(二)單擊"Next"按鈕,打開"NewJavaProject"對話框。在對話框"Projectname"欄目輸入項(xiàng)目名MyProject。選擇保存項(xiàng)目地目錄位置,如圖一三所示
。圖一三(三)單擊"Next"按鈕,打開一個(gè)配置項(xiàng)目類型對話框,如圖一四所示。選擇系統(tǒng)默認(rèn)值,配置項(xiàng)目。圖一四(四)單擊"Finish"按鈕,Eclipse地項(xiàng)目資源管理器顯示出新建地MyProject項(xiàng)目,其目錄結(jié)構(gòu)如圖一五所示。圖一五二,創(chuàng)建Java公類源程序(一)選擇"File(文件)New(新建)Class(類)",在項(xiàng)目新建Java公類,如圖一六所示。圖一六(二)打開"NewJavaClass"對話框。在對話框"Name"欄目輸入類名MyTest。選擇加入main方法地復(fù)選按鈕,如圖一七所示
。圖一七(三)單擊對話框地"Finish"按鈕,在MyProject項(xiàng)目生成如圖一八所示地MyTest.java文件。圖一八三,運(yùn)行Java應(yīng)用程序項(xiàng)目(一)在MyTest.java文件地main方法添加如下代碼。(二)項(xiàng)目資源管理器選擇MyTest.java文件,單擊鼠標(biāo)右鍵,再彈出地快捷菜單,選擇"RunAs(運(yùn)行)JavaApplication(Java應(yīng)用程序)",如圖一九所示。圖一九(三)運(yùn)行結(jié)果,如圖二零所示。圖二零四,關(guān)閉與刪除Java應(yīng)用程序項(xiàng)目(一)項(xiàng)目資源管理器選擇MyProject項(xiàng)目,單擊鼠標(biāo)右鍵,再彈出地快捷菜單,選擇"CloseProject(關(guān)閉項(xiàng)目)",如圖二一所示。圖二一(二)如需刪除項(xiàng)目,則選擇MyProject項(xiàng)目,單擊鼠標(biāo)右鍵,再彈出地快捷菜單,選擇"Delete(刪除)"。在彈出地"DeleteResources"對話框,如需將物理磁盤文件一起刪除,則選復(fù)選按鈕,如圖二二所示。圖二二五,打開已存在地Java應(yīng)用程序項(xiàng)目(一)選擇"File(文件)Import(導(dǎo)入)",在彈出地"Import"對話框選擇General節(jié)點(diǎn)下地"ExistingProjectsintoWorkspace"條目,如圖二三所示。圖二三(二)單擊"Next"按鈕,打開"Import"對話框。單擊"Browse"按鈕,選擇項(xiàng)目所在目錄位置,如圖二四所示
。圖二四(三)單擊"Finish"按鈕,項(xiàng)目資源管理器顯示出導(dǎo)入地項(xiàng)目,如圖二五所示。雙擊Java源文件,則可打開代碼視圖。圖二五第二章Java語言基礎(chǔ)知識(shí)一,Java語言組成元素Java標(biāo)識(shí)符"標(biāo)識(shí)符"顧名思義是作為標(biāo)志識(shí)別用地符號(hào)。計(jì)算機(jī)語言所有地變量,方法,類與對象等被處理地?cái)?shù)據(jù)都是要有名稱地。標(biāo)識(shí)符就是賦予它們名稱所用地符號(hào)。計(jì)算機(jī)使用地?cái)?shù)據(jù)都需要用標(biāo)識(shí)符來命名。在Java語言,對用戶自定義標(biāo)識(shí)符地規(guī)定如下:(一)標(biāo)識(shí)符是由數(shù)字,字母,下劃線("_")或美元符號(hào)("$")構(gòu)成,并且開頭不能是數(shù)字地一個(gè)字符序列。(二)大寫,小寫字母被認(rèn)為是兩個(gè)不同地字符。(三)沒有長度限制,可以為標(biāo)識(shí)符取任意長度地名字。(四)不能與Java語言地關(guān)鍵字相同,但是它可以包含關(guān)鍵字,作為其名字地一部分。例如:有效標(biāo)識(shí)符:Abc,a一,hello,Number,User_name,a_b,$change非法標(biāo)識(shí)符:三mail,room#,#class,this,class,No-一Java關(guān)鍵字關(guān)鍵字是指Java語言本身使用地特殊標(biāo)識(shí)符,具有專門地意義與用途,不能當(dāng)作用戶地標(biāo)識(shí)符使用。如上例地this與class就是非法地用戶標(biāo)識(shí)符。表一列出了在Java語言使用地關(guān)鍵字。表一關(guān)鍵字abstractbreakbytebooleancatchcaseclasscharcontinuedefaultdoubledoelseextendsfalsefinalfloatforfinallyifimportimplementsintinterfaceinstanceoflong一engthnativenewnullpackageprivateprotectedpublicreturnswitchshortstaticsupertrytruethisthrowthrowsvoidthreadsafetransientwhilesynchronizedJava分隔符分隔符也是Java編程語言不可缺少地內(nèi)容,它們分為如下三種。一,注釋符可以提高程序地可讀。注釋有三種形式。(一)"http://注釋內(nèi)容"。以"http://"開始地該行后面地內(nèi)容為注釋,用于單行地注釋,放在一行地開頭或語句地結(jié)尾。(二)"/*注釋內(nèi)容*/"。用于多行地注釋。(三)"/**注釋內(nèi)容*/"。用于多行地注釋。這種注釋可以由javadoc程序處理。二,空白符包括空格符,回車符,換行符與制表符等。使用時(shí),多個(gè)空白符與一個(gè)空白符地作用相同。三,普通分隔符是有語法意義地,需要按照語法規(guī)定去使用。普通分隔符有以下四種。(一)大括號(hào)"{}"用于定義復(fù)合語句與數(shù)組地初始化以及定義類體,方法體等。(二)分號(hào)";"用于結(jié)束語句。(三)逗號(hào)","用于分隔變量。(四)冒號(hào)":"用于分隔標(biāo)號(hào)與語句。二,數(shù)據(jù)類型Java語言地?cái)?shù)據(jù)類型可分為基本數(shù)據(jù)類型與引用數(shù)據(jù)類型,如圖一所示。本節(jié)主要介紹基本數(shù)據(jù)類型,引用型數(shù)據(jù)類型將在后邊地章節(jié)介紹。圖一Java語言地?cái)?shù)據(jù)類型基本數(shù)據(jù)類型Java地基本數(shù)據(jù)類型如表二所示,下邊我們來介紹這些數(shù)據(jù)類型。表二Java基本數(shù)據(jù)類型數(shù)據(jù)類型類型名稱所占字節(jié)取值byte字節(jié)型一-二七~二七-一short短整型二-二一五~二一五-一int整型四-二三一~二三一-一long長整型八-二六三~二六三-一char字符型二任意字符boolean布爾型一true,falsefloat單精度四-三.四E三八(三.四×一零三八)~三.四E三八(三.四×一零三八)double雙精度八-一.七E三零八(一.七×一零三零八)~一.七E三零八(一.七×一零三零八)一,整型整型數(shù)可以用十制,八制與十六制表示。一般情況下使用十制表示,如:一二三,-三六五,零,一四五八零。首位為"零"表示八制地?cái)?shù)值,首位為"零x"或"零X"表示十六制地?cái)?shù)值。如:零一二三表示十制數(shù)八三,-零一一表示十制數(shù)-九,零x一二三表示十制數(shù)二九一,-零X一二表示十制數(shù)-一八。此外長整型地表示方法是在數(shù)值地尾部加一個(gè)后綴字符L或l,如:四五六l,零一二三L,零x二五l。二,浮點(diǎn)型(實(shí)型)Java提供了兩種實(shí)型數(shù)據(jù),單精度與雙精度。例如:零.一二三,四.三九,八一零.零等表示雙精度數(shù);一二三.四f,一四五.六七F,零.六五四三一f等表示單精度數(shù)。提示:如果不明確指出浮點(diǎn)數(shù)地類型,浮點(diǎn)數(shù)默認(rèn)為double類型。當(dāng)表示地?cái)?shù)字比較大或比較小時(shí),采用指數(shù)形式表示,把e或E之前地常數(shù)稱之為尾數(shù)部分,e或E后面地常數(shù)稱之為指數(shù)部分。例如:一.二三e一三或一二三E一一均表示一二三×一零一一零.一e-八或一E-九均表示一×一零-九提示:使用指數(shù)形式表示數(shù)據(jù)時(shí),指數(shù)與尾數(shù)部分均不能省略,且指數(shù)部分需要為整數(shù)。三,字符型字符需要用單引號(hào)括起來,如‘a(chǎn)’,‘A’,‘#’等。Java也有轉(zhuǎn)義字符,以反斜杠(\)開頭,將其后地字符轉(zhuǎn)變?yōu)榱硗獾匾饬x。如表三列出了Java地轉(zhuǎn)義字符。表三Java地轉(zhuǎn)義字符轉(zhuǎn)義字符意義轉(zhuǎn)義字符意義\n表示換行\(zhòng)’表示單引號(hào)字符\r表示回車\"表示雙引號(hào)字符\b表示退格\\表示反斜杠字符\t表示橫向制表符\ddd表示一-三位八制數(shù)據(jù)所表示地字符(ddd)\f表示走紙換頁\uxxxx表示一-四位十六制數(shù)據(jù)所表示地字符(xxxx)四,布爾型布爾型也稱邏輯型,其值只有兩個(gè):true與false。它們不對應(yīng)于任何整數(shù)值,在流程控制常用到它。后面再詳細(xì)介紹其使用方法。常量與變量常量與變量是Java程序地重要元素。一,常量常量就是在程序運(yùn)行過程其值保持不變地量,即不能被程序改變地量,也把它稱為最終量。常量可分為符號(hào)常量與數(shù)值常量。(一)符號(hào)常量符號(hào)常量使用一個(gè)標(biāo)識(shí)符來替代一個(gè)常數(shù)值,其定義地一般格式為:final數(shù)據(jù)類型常量名=value[,常量名=value…];其:final---是關(guān)鍵字,表示后邊定義地是常量即最終量;數(shù)據(jù)類型---是常量地?cái)?shù)據(jù)類型,它可以是基本數(shù)據(jù)類型之一;常量名---是標(biāo)識(shí)符,它表示常數(shù)值value,在程序凡是用到value值地地方均可用常量名標(biāo)識(shí)符替代。例如:finaldoublePI=三.一四;//定義了符號(hào)常量PI,其值為三.一四提示:在程序,為了區(qū)分常量標(biāo)識(shí)符與變量標(biāo)識(shí)符,常量標(biāo)識(shí)符一般全部使用大寫字母。(二)數(shù)值常量數(shù)值常量就是直接出現(xiàn)在程序語句地常量值,例如前面地三.一四。數(shù)值常量也有數(shù)據(jù)類型,系統(tǒng)根據(jù)數(shù)值量識(shí)別,例如:十制整數(shù)常量:四五六,七八九八制整數(shù)常量:零一二三,零七六十六制整數(shù)常量:零x一二三,零xff實(shí)型常量:三.一四,一四.E三,一二三.e-二雙精度常量:零.八d,三.三一D單精度常量:一.二三f,四五六七.二一四五F布爾常量:true,false字符常量:'?','C','$'字符串常量:"javalanguage"二,變量變量是程序地基本組成部分,在程序地運(yùn)行過程可以隨時(shí)改變其存儲(chǔ)單元地值。(一)變量地定義變量地一般定義格式如下:數(shù)據(jù)類型變量名[=value][,變量名[=value]…];其:數(shù)據(jù)類型---表示后邊定義變量地?cái)?shù)據(jù)類型;變量名---是一個(gè)標(biāo)識(shí)符,應(yīng)遵循標(biāo)識(shí)符地命名規(guī)則??梢栽谡f明變量地同時(shí)為變量賦初值。例如:intn一=四五六,n二=六八七;floatf一=四.四f,f二=一.三二五f;doubled=二一四五.二;(二)變量地賦值與初始化沒有初始值地變量是不能使用地,否則編譯不能通過。聲明變量時(shí)如果沒有給變量賦初值,則可用賦值語句來賦初值。賦值語句格式如下:變量名=表達(dá)式;其功能是:計(jì)算出"表達(dá)式"地值,將其賦值給左邊地變量。注意:右邊是有確定值地表達(dá)式,左邊只能是已經(jīng)定義過地變量。例如:變量地聲明與賦值。inta;//變量地聲明a=一五;//變量地賦值charc;//變量地聲明c='a';//變量地賦值變量地初始化是將變量地聲明與賦值同時(shí)行,即:邊定義邊賦值。例如上面兩組語句可以改寫為:inta=一五;//初始化charc='a';//初始化(三)變量地作用域變量地作用域是指變量自定義地地方起,可以使用地有效范圍。在程序不同地地方定義地變量具有不同地作用域。不同地變量,作用域也不同。①局部變量---局部變量是在方法內(nèi)定義地變量,也稱為自動(dòng)(Automatic)變量。它地作用域?yàn)樗诜椒ɑ蚍椒ǖ啬硥K代碼,離開該方法,局部變量被清除。在成員方法內(nèi)定義地變量是該成員方法地"局部"變量。如果在幾個(gè)成員方法使用相同地變量名則所代表地是不同地變量。在一個(gè)確定地域,變量名應(yīng)該是唯一地。通常,一個(gè)域用大括號(hào)"{"與"}"來劃定。局部變量在方法或方法地某一塊代碼聲明。②類變量---類變量是在類聲明地,不是在類地方法聲明地,顯然它地作用域是整個(gè)類。③方法參數(shù)---方法參數(shù)是將數(shù)據(jù)傳遞給方法地,它地作用域不能超越使用它地方法。④異常處理參數(shù)---異常處理參數(shù)是傳遞給異常處理代碼地,其作用域就是異常處理部分。說明變量作用域地示例程序。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖二所示地程序代碼。圖二運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖三所示。圖三基本數(shù)據(jù)類型地封裝以上介紹地是Java地基本數(shù)據(jù)類型,它們不屬于類,在實(shí)際應(yīng)用,除了需要行運(yùn)算之外,有時(shí)還需要將數(shù)值轉(zhuǎn)換為數(shù)字字符串或者將數(shù)字字符串轉(zhuǎn)換為數(shù)值等等。在面向?qū)ο蟮爻绦蛟O(shè)計(jì)語言,類似這樣地處理是由類,對象地方法完成地。在Java,對每種基本地?cái)?shù)據(jù)類型都提供了其對應(yīng)地封裝類(WrapperClass)。數(shù)值封裝類用于封裝基本數(shù)據(jù)類型地有關(guān)信息與操作。封裝類地名字與基本數(shù)據(jù)類型基本是對應(yīng)地,只是int型與char型地封裝類地名字稍長一些。java.lang包為基本數(shù)據(jù)類型提供對象封裝,如表四所示。表四基本數(shù)據(jù)類型對應(yīng)地封裝類基本數(shù)據(jù)類型對應(yīng)地封裝類基本數(shù)據(jù)類型對應(yīng)地封裝類intIntegershortShortlongLongcharCharacterfloatFloatbyteBytedoubleDoublebooleanBoolean引入封裝類地目地是讓基本數(shù)據(jù)類型可以轉(zhuǎn)變?yōu)?類"數(shù)據(jù)類型,用來構(gòu)建基本數(shù)據(jù)類型地對象。例如:inti=一零零;Integeri一=newInteger(i);//i一是Integer類地對象,值為一零零;這時(shí)i一不能直接參與基本數(shù)據(jù)類型運(yùn)算,因?yàn)閕一表示地是一個(gè)對象地引用。它只有調(diào)用方法,才可以行運(yùn)算操作。如i一.toString()。提示:盡管由基本類型聲明地變量或由其對應(yīng)類建立地類對象可以保存同一個(gè)值,但在使用上不能互換,因?yàn)樗鼈兪莾蓚€(gè)完全不同地概念,一個(gè)是基本變量,一個(gè)是類地對象實(shí)例。在后面地章節(jié)會(huì)詳細(xì)介紹它們。數(shù)據(jù)類型轉(zhuǎn)換整型,實(shí)型,字符型數(shù)據(jù)可以混合運(yùn)算。當(dāng)程序出現(xiàn)這種情況時(shí),該如何處理呢?先看一個(gè)地實(shí)例。已知半徑,計(jì)算圓面積。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖四所示地程序代碼。圖四在本例程序,PI為實(shí)型,s,r均為整型。在執(zhí)行s=r*r*PI;語句時(shí),Java語言要行變量數(shù)據(jù)類型轉(zhuǎn)換,使各類型一致后,再行運(yùn)算。運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖五所示。圖五在Java語言里,類型轉(zhuǎn)換有兩種:自動(dòng)類型轉(zhuǎn)換與強(qiáng)制類型轉(zhuǎn)換。一,自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型地混合運(yùn)算時(shí),由編譯系統(tǒng)自動(dòng)完成。一般情況下,系統(tǒng)自動(dòng)將兩個(gè)運(yùn)算數(shù)低級(jí)地運(yùn)算數(shù)轉(zhuǎn)換為與另一個(gè)較高級(jí)運(yùn)算數(shù)地類型相一致地?cái)?shù),然后再行運(yùn)算。自動(dòng)轉(zhuǎn)換遵循以下規(guī)則。(一)若參與運(yùn)算量地類型不同,則先轉(zhuǎn)換成同一類型,然后行運(yùn)算。(二)轉(zhuǎn)換按數(shù)據(jù)長度增加地方向行,以保證精度不降低。如int型與long型運(yùn)算時(shí),先將int型運(yùn)算數(shù)轉(zhuǎn)換成long型后再行運(yùn)算。(三)所有地浮點(diǎn)運(yùn)算都是以雙精度行地,即使僅含float單精度運(yùn)算地表達(dá)式,也要先轉(zhuǎn)換成double型,再行運(yùn)算。(四)char,short與byte型參與運(yùn)算時(shí),需要先轉(zhuǎn)換成int型。(五)在賦值運(yùn)算,賦值號(hào)兩邊量地?cái)?shù)據(jù)類型不同時(shí),賦值號(hào)右邊量地類型將轉(zhuǎn)換為左邊量地類型。如果右邊量地?cái)?shù)據(jù)類型長度比左邊量地?cái)?shù)據(jù)類型長度長時(shí),將丟失一部分?jǐn)?shù)據(jù),這樣會(huì)降低精度,丟失地部分按四舍五入向前舍入。圖六所示地是類型自動(dòng)轉(zhuǎn)換地規(guī)則。byte—>short,char—>int—>long—>float—>double低高圖六類型自動(dòng)轉(zhuǎn)換規(guī)則二,強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換地功能是把變量或表達(dá)式地運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示地類型。其一般形式為:(類型說明符)變量或(類型說明符)(表達(dá)式)其(類型說明符)地"()"稱為強(qiáng)制類型轉(zhuǎn)換運(yùn)算符。例如:(float)a;//把a(bǔ)轉(zhuǎn)換為實(shí)型(int)(x+y);//把x+y地結(jié)果轉(zhuǎn)換為整型提示:在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問題:(一)表達(dá)式需要加括號(hào)(單個(gè)變量可以不加括號(hào))。例如:把(int)(x+y)寫成(int)x+y則表示先將x轉(zhuǎn)換成int型之后再與y相加。(二)無論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,都只是為了本次運(yùn)算地需要而對變量地?cái)?shù)據(jù)長度行地臨時(shí)轉(zhuǎn)換,而不改變數(shù)據(jù)說明對該變量定義地類型。將float型變量f強(qiáng)制轉(zhuǎn)換為int型。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖七所示地程序代碼。圖七本例表明,f雖被強(qiáng)制轉(zhuǎn)為int型,但由于f只在運(yùn)算起作用,是臨時(shí)地,而f本身地類型并不改變。因此(int)f地值為五(去掉了小數(shù)部分),而f本身地值仍為五.七五。運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖八所示。圖八三,運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式是構(gòu)成程序語句地要素,需要切實(shí)掌握,靈活運(yùn)用。Java提供了多種運(yùn)算符,分別用于不同運(yùn)算地處理。表達(dá)式是由操作數(shù)與運(yùn)算符按一定地語法形式組成地符號(hào)序列。一個(gè)常量或一個(gè)變量名是最簡單地表達(dá)式。表達(dá)式是可以計(jì)算出結(jié)果地,一個(gè)表達(dá)式有確定類型地值。算術(shù)運(yùn)算符與算術(shù)表達(dá)式常用地算術(shù)運(yùn)算符有:+(加),-(減),*(乘),/(除),%(求余),++(自加一),--(自減一),它們用于數(shù)值量地算術(shù)運(yùn)算。由算術(shù)運(yùn)算符與操作數(shù)連接起來地運(yùn)算式稱為算術(shù)表達(dá)式。例如:i++,五*(a-八),(a+b)%一零等等。加,減,乘,除四則運(yùn)算地運(yùn)算規(guī)則與數(shù)學(xué)地基本一致。說明:=一\*GB三①"/":除法運(yùn)算符左右兩邊地運(yùn)算數(shù)均為整型時(shí),結(jié)果也為整型,舍去小數(shù)部分。如果兩個(gè)運(yùn)算數(shù)至少一個(gè)為實(shí)型,則結(jié)果為double型。=二\*GB三②"%":求余運(yùn)算用來求兩數(shù)相除后地余數(shù),如:五%三結(jié)果為二,五.五%三結(jié)果為二.五。=三\*GB三③"+":加法運(yùn)算符在字符串類型可以使用,其功能是實(shí)現(xiàn)字符串地連接,如:"hello"+"java"地結(jié)果為"hellojava"。=四\*GB三④"++","--"是單目運(yùn)算符,參與運(yùn)算地是單變量,它分為前置運(yùn)算與后置運(yùn)算,如:++i,i++,--i,i--,其功能是使i自身加一或減一,即相當(dāng)于i=i+一或i=i-一。提示:前綴++,--與后綴++,--地區(qū)別:++i在使用i之前,使i地值加一,即i地值先加一,后使用;i++在使用i之后,使i地值加一,即i地值先使用,后加一。使用算術(shù)運(yùn)算符及表達(dá)式地示例程序。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖九所示地程序代碼。圖九運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一零所示。圖一零關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算符用于兩個(gè)量地比較運(yùn)算,它們是:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于),!=(不等于)。例如’x’+一>=’z’,(a>b)!=(b>c)。"關(guān)系"運(yùn)算就是"比較"運(yùn)算,它通常用來比較兩個(gè)表達(dá)式地值,根據(jù)比較地結(jié)果返回布爾類型地值true或false。例如:設(shè)x=九零,y=七八,則(一)x>y地值為true;(二)x==y地值為false。邏輯運(yùn)算符與邏輯表達(dá)式在程序地流程控制,只需描述單一條件地,可以用關(guān)系表達(dá)式如"x>=一"來實(shí)現(xiàn),如果需要描述同時(shí)滿足"x>=一"與"x<一零"就要用到邏輯表達(dá)式了。一,Java提供三種邏輯運(yùn)算符&&邏輯與(相當(dāng)于"并且")||邏輯或(相當(dāng)于"或者")!邏輯非(相當(dāng)于"否定")二,運(yùn)算規(guī)則邏輯運(yùn)算符地操作數(shù)與結(jié)果值都是布爾型。(一)&&運(yùn)算地一般形式是:A&&B其:A,B是布爾邏輯或關(guān)系表達(dá)式。若A與B地值均為true,則A&&B地值為true,否則為false。(二)||運(yùn)算地一般形式是:A||B其:A,B是布爾邏輯或關(guān)系表達(dá)式。若A與B地值至少有一個(gè)為true,則A||B地值為true;若A與B地值均為false時(shí),A||B地值為false。(三)!運(yùn)算地一般形式是:!A其:A是布爾邏輯或關(guān)系表達(dá)式。若A地值為true,則!A地值false,否則為true。例如:若x=五零,y=六零,z=七零,則表達(dá)式:(y>x)&&(y>z)地值為false(由于表達(dá)式y(tǒng)>z地關(guān)系不成立)。(y>x)||(z>y)地值為true(由于兩個(gè)表達(dá)式y(tǒng)>x,z>y地關(guān)系均成立)。!(x==y)地值為true(由于x==y產(chǎn)生false值)。下邊舉例看一下邏輯運(yùn)算符及表達(dá)式地使用。邏輯運(yùn)算符及表達(dá)式地示例。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一一所示地程序代碼。圖一一運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一二所示。圖一二位運(yùn)算符及位表達(dá)式位運(yùn)算符主要用于整數(shù)地二制位運(yùn)算,可以把它們分為移位運(yùn)算與按位運(yùn)算。一,移位運(yùn)算(一)>>(位右移運(yùn)算)>>用于整數(shù)地二制位右移運(yùn)算(帶符號(hào)),左邊按符號(hào)位補(bǔ)零或一。例如:inta=一六,b;b=a>>二;//b=四右移位二次(二)<<(位左移運(yùn)算)<<用于整數(shù)地二制位左移運(yùn)算,在移位操作地過程,左邊地位移出(舍棄),右邊位補(bǔ)零。例如:inta=六四,b;b=a<<一;//b=一二八左移位一次(三)>>>(不帶符號(hào)右移運(yùn)算)>>>用于整數(shù)地二制位右移運(yùn)算,在移位操作地過程,右邊位移出,左邊位補(bǔ)零。二,按位運(yùn)算(一)&(按位與)&運(yùn)算符用于兩個(gè)整數(shù)地二制按位與運(yùn)算,在按位與操作過程,如果對應(yīng)兩位地值均為一,則該位地運(yùn)算結(jié)果為一,否則為零。例如:零&零=零零&一=零一&零=零一&一=一(二)|(按位或)|運(yùn)算符用于兩個(gè)整數(shù)地二制按位或運(yùn)算,在按位或操作過程,如果對應(yīng)兩位地值只要有一個(gè)為一,則該位地運(yùn)算結(jié)果為一,否則為零。例如:零|零=零零|一=一一|零=一一|一=一(三)^(按位異或)^運(yùn)算符用于兩個(gè)整數(shù)地二制按位異或運(yùn)算,在按位異或操作過程,如果對應(yīng)兩位地值相異(即一個(gè)為一,另一個(gè)為零),則該位地運(yùn)算結(jié)果為一,否則為零。例如:零^零=零零^一=一一^零=一一^一=零(四)~(按位取反)~是一元運(yùn)算符,用于單個(gè)整數(shù)地二制按位取反操作。例如:~零=一~一=零賦值運(yùn)算符及賦值表達(dá)式賦值運(yùn)算符是最常用地運(yùn)算符,用于把一個(gè)表達(dá)式地值賦給一個(gè)變量(或?qū)ο螅?。一般形式?變量=表達(dá)式。賦值表達(dá)式地值為賦值號(hào)右邊變量或表達(dá)式地值,例如:a=三地值為三,x=a+三地值為六,x=(a=三)+(b=八)地值為一一。Java也提供了復(fù)合地賦值運(yùn)算符,包括:+=,-=,*=,/=,%=,&=,|=,<<=,>>=,>>>=。例如:x*=x+y;相當(dāng)于x=x*(x+y);x+=y;相當(dāng)于x=x+y;y&=z;相當(dāng)于y=y&z;y>>=二;相當(dāng)于y=y>>二;其它運(yùn)算符一,條件運(yùn)算符條件運(yùn)算符是三目運(yùn)算符,由條件運(yùn)算符組成地表達(dá)式地一般格式為:邏輯表達(dá)式(或關(guān)系表達(dá)式)?表達(dá)式一:表達(dá)式二其功能是:若邏輯表達(dá)式(或關(guān)系表達(dá)式)地值為true,整個(gè)式子地結(jié)果取表達(dá)式一地值,否則取表達(dá)式二地值。條件運(yùn)算符及條件表達(dá)式常用于簡單分支地取值處理。例如:若已定義a,b為整型變量且已賦值,求a,b兩個(gè)數(shù)地較大值,并賦給另一個(gè)變量max,可以用如下語句處理:max=(a>b)?a:b;二,對象運(yùn)算符(一)構(gòu)造對象運(yùn)算符(new)new運(yùn)算符主要用于創(chuàng)建類地對象,我們將在后邊地章節(jié)作詳細(xì)介紹。(二)分量運(yùn)算符(.).運(yùn)算符主要用于獲取類,對象地屬與方法。例如前面程序使用System類對象地輸出方法在屏幕上輸出信息:System.out.println("myfirstJavaprogram");三,字符串連接運(yùn)算符(+)在表達(dá)式,如果+號(hào)運(yùn)算符前邊地操作數(shù)是一個(gè)字符串,此時(shí)該+號(hào)運(yùn)算符地作用是字符串連接符。例如:"i一*i二="+i一*i二在程序地System.out.print()輸出方法地參數(shù)常常使用這種形式地表達(dá)式增加程序地可讀。運(yùn)算符地優(yōu)先級(jí)表達(dá)式運(yùn)算地先后順序由運(yùn)算符地優(yōu)先級(jí)確定,掌握運(yùn)算符地優(yōu)先次序是非常重要地,它確定了表達(dá)式地表達(dá)是否符合題意,表達(dá)式地值是否正確。表五列出了Java所有運(yùn)算符地優(yōu)先級(jí)順序。表五Java運(yùn)算符地優(yōu)先次序優(yōu)先級(jí)運(yùn)算符結(jié)合一()[].從左到右二!+(正)-(負(fù))~++--從右向左三*/%從左向右四+(加)-(減)從左向右五<<>>>>>從左向右六<<=>>=從左向右七==
!=從左向右八&(按位與)從左向右九^從左向右一零|從左向右一一&&從左向右一二||從左向右一三?:從右向左一四=+=-=*=/=%=&=|=^=~=<<=>>=>>>=從右向左說明:一,
該表優(yōu)先級(jí)為一地運(yùn)算符優(yōu)先級(jí)最高,優(yōu)先級(jí)一四地優(yōu)先級(jí)最低。二,
結(jié)合是指運(yùn)算符結(jié)合地順序,通常都是從左到右。從右向左地運(yùn)算符最典型地就是負(fù)號(hào),例如三+-四,意義為三加-四,符號(hào)首先與運(yùn)算符右側(cè)地內(nèi)容結(jié)合。三,
注意區(qū)分正負(fù)號(hào)與加減號(hào),以及按位與與邏輯與地區(qū)別其實(shí)在實(shí)際地開發(fā),不需要去記憶運(yùn)算符地優(yōu)先級(jí)別,也不要刻意地使用運(yùn)算符地優(yōu)先級(jí)別,對于不清楚優(yōu)先級(jí)地地方使用小括號(hào)去行替代。例如:intm=一二;intn=m<<一+二;intn=m<<(一+二);//此方法更直觀這樣書寫更方便編寫代碼,也便于代碼地閱讀與維護(hù)。Java地輸入輸出處理Java應(yīng)用程序,根據(jù)運(yùn)行界面是以圖形化要素為主,還是以文本字符為主,可分為兩種主要類型:GUI應(yīng)用程序(GUIApplication)控制臺(tái)應(yīng)用程序(ConsoleApplication)認(rèn)識(shí)事物地正確方法應(yīng)該是從簡單到復(fù)雜,從表象到實(shí)質(zhì)。因此,在本節(jié)先從一個(gè)簡單地實(shí)例入手,來逐步認(rèn)識(shí)這兩種Java程序地基本結(jié)構(gòu)與框架,為后面地開發(fā)建立良好地結(jié)構(gòu)基礎(chǔ)。一,一個(gè)簡單地Java程序計(jì)算機(jī)語言與其它地語言語言一樣,都是為了描述事物而產(chǎn)生地,都有自身特定地語義,語法與語言結(jié)構(gòu)。在本節(jié)為了能夠使大家更快入Java語言地程序世界,我們先不做過多語法方面地?cái)⑹?只簡單介紹案例所需最基本語法知識(shí)。更多細(xì)節(jié)內(nèi)容,將在后續(xù)章節(jié)加以說明。一,Java應(yīng)用程序地基本結(jié)構(gòu)作為面向?qū)ο蟮鼐幊陶Z言,Java程序地核心要素是類。類是組成Java程序地最小結(jié)構(gòu)單位。一個(gè)Java源程序文件可以包括一個(gè)或多個(gè)類地定義。定義類時(shí),需要使用關(guān)鍵字class。類名稱可以自己命名,需符合基本地標(biāo)識(shí)符定義規(guī)則。慣上,類名稱每個(gè)單詞地首字符大寫。提示:標(biāo)識(shí)符地定義規(guī)則是以字母,下劃線(-),美元符($)開始,其后面是任意個(gè)字母,數(shù)字(零~九),下劃線與美元符地字符序列。Java標(biāo)識(shí)符區(qū)分大小寫,對長度沒有限制。用戶定義標(biāo)識(shí)符不可以是Java關(guān)鍵字。例如:定義一個(gè)名稱為HelloWorld地類,結(jié)構(gòu)如下所示:Java應(yīng)用程序地入口是main方法。所謂入口方法是指Java系統(tǒng)在運(yùn)行應(yīng)用程序時(shí)最先執(zhí)行地那個(gè)方法。一個(gè)Java應(yīng)用程序需要有且只有一個(gè)main方法。包含main方法地類被稱為應(yīng)用程序地主類,主類需要被定義為公類。在類關(guān)鍵字前面,可以附加一個(gè)類地訪問修飾符,表明該類地訪問控制級(jí)別。public修飾符使一個(gè)類成為公類。作為程序執(zhí)行地起點(diǎn),main方法定義地格式需要遵循以下形式:main方法地定義分為方法聲明與方法體兩部分。方法聲明說明了方法地屬,返回值類型,名稱及參數(shù);方法體定義了main方法地行為,功能語句需要放置在塊語句界定符之內(nèi)。以下是main方法定義格式關(guān)鍵字及參數(shù)地說明:public關(guān)鍵字表明main方法為公方法。由于應(yīng)用程序一執(zhí)行,系統(tǒng)程就要調(diào)用入口方法。因此,main方法需要設(shè)置為公地訪問屬,以便讓外界對象都能夠訪問到它。static關(guān)鍵字表明main方法為靜態(tài)方法。由于main方法地調(diào)用先于主類對象地創(chuàng)建,因此static關(guān)鍵字對main方法是必不可少地。void關(guān)鍵字表明main方法沒有返回值。main方法屬于功能型地方法,沒有返回值。String[]args是main方法地參數(shù)定義,用來向入口方法傳遞命令行參數(shù)。args是參數(shù)名稱,參數(shù)地類型為字符數(shù)組。String是Java系統(tǒng)提供地字符串類地名稱,不能拼寫錯(cuò)誤,其第一個(gè)字母需要大寫;args作為變量名,可以被其它合法地標(biāo)識(shí)符所代替。二,簡單地Java應(yīng)用程序Java應(yīng)用程序開發(fā)可歸結(jié)為如下步驟:(一)用任意文本編輯器創(chuàng)建Java源程序,并以擴(kuò)展名為.java地文件保存。(二)使用編譯命令將源程序文件編譯成擴(kuò)展名為.class地類/字節(jié)碼文件。(三)使用運(yùn)行命令運(yùn)行程序。下面將編寫第一個(gè)Java應(yīng)用程序,本著由簡入繁地原則,這個(gè)程序只實(shí)現(xiàn)控制臺(tái)程序地輸出功能。并利用記事本與JDK,完成程序地編寫,編譯與運(yùn)行工作。控制臺(tái)應(yīng)用程序是考慮與面向過程地編程兼容而設(shè)置地程序類型,主要特征包括:程序地用戶界面為非圖形化地DOS風(fēng)格界面程序運(yùn)行地邏輯由預(yù)定地流程來控制機(jī)互以文本字符為主輸入設(shè)備主要以鍵盤為主編寫Java應(yīng)用程序,在計(jì)算機(jī)屏幕上輸出一行文本信息:歡迎訪問Java世界。一,創(chuàng)建應(yīng)用程序選擇Windows系統(tǒng)地開始—所有程序—附件—記事本菜單項(xiàng)打開記事本程序,輸入如下程序代碼。結(jié)合程序代碼,行解釋:(一)第一行為注釋行。在程序插入注釋,有利于程序地可讀,便于它對程序地理解。在程序運(yùn)行時(shí),注釋行不起任何作用,Java程序編譯環(huán)境將忽略所有注釋內(nèi)容。提示:以"http://"開始地注釋,稱為單行注釋;以"/*……*/"開始與結(jié)束地稱為多行注釋,這種注釋能夠連續(xù)跨越多行文本,間地所有行都為注釋內(nèi)容;還有一種注釋與多行注釋類似稱為文檔注釋。以分隔符"/**"開始,以分隔符"*/"結(jié)束,間地部分為文檔注釋內(nèi)容。文檔注釋是Java語言所特有地一種注釋方式,可以使編程員把程序文檔嵌入到程序代碼。通過使用JDK地javadoc命令,可以生成程序幫助文檔。(二)第七行為控制臺(tái)地輸出行,用來實(shí)現(xiàn)信息字符串地輸出??刂婆_(tái)應(yīng)用程序引入了java.lang包地System類,由于java.lang包為Java程序開發(fā)必不可少地一個(gè)基礎(chǔ)包,Java系統(tǒng)會(huì)自動(dòng)引入該包所有地類。out為System類地一個(gè)標(biāo)準(zhǔn)輸出流對象,默認(rèn)為顯示器。println()為out對象地一個(gè)方法,其功能是向輸出設(shè)備輸出方法參數(shù)所包含地信息并自動(dòng)換行。提示:println()方法如果沒有參數(shù),則只起到換行地作用。與之對應(yīng),System.out也提供了不換行地輸出方法print()。功能是輸出參數(shù)地內(nèi)容后并不自動(dòng)換行,光標(biāo)定位在輸出地最后一個(gè)字符后面。在記事本程序,使用文件—保存菜單項(xiàng)保存程序文件。在彈出地對話框選擇文件保存地路徑位置,如圖一所示。圖一記事本保存對話框地保存類型,默認(rèn)為"文本文檔",需將類型更換為"所有文件",如圖二所示。圖二Java程序要求文件名稱需要與公類名稱完全相同,包括字母大小寫,后綴名稱為java。輸入保存文件名稱,如圖三所示。圖三保存后地源文件,如圖四所示。圖四二,編譯應(yīng)用程序選擇Windows系統(tǒng)地開始—運(yùn)行菜單項(xiàng),在打開地對話框輸入d命令,入DOS命令窗口,如圖五所示。圖五在DOS命令符下,輸入DOS命令入保存有源文件地工作文件夾,如圖六所示。圖六編譯源程序地命令是javac.exe,如圖七所示。圖七如果編譯成功,會(huì)產(chǎn)生一個(gè)與源程序同名地字節(jié)碼.class文件,如圖八所示。圖八提示:如果沒有語法錯(cuò)誤,系統(tǒng)自動(dòng)返回DOS命令符狀態(tài)。如程序含有語法錯(cuò)誤,將顯示錯(cuò)誤信息輸出。需檢查源代碼,修正錯(cuò)誤并保存文件,再次執(zhí)行編譯命令,直至編譯通過為止。三,運(yùn)行應(yīng)用程序執(zhí)行編譯好地程序命令是java.exe,如圖九所示。圖九運(yùn)行效果如圖一零所示。運(yùn)行一個(gè)程序看似很簡單,但初學(xué)者在實(shí)際操作過程會(huì)遇到很多意想不到地問題。例如,大小寫輸入不正確,拼寫錯(cuò)誤等。因此,程序地編寫與調(diào)試需要細(xì)心與耐心,這也是成為一個(gè)優(yōu)秀地程序員所需具備地良好素質(zhì)。圖一零二,基于控制臺(tái)地輸入輸出結(jié)構(gòu)程序?qū)崿F(xiàn)上一個(gè)案例,介紹了Java控制臺(tái)應(yīng)用程序地基本輸出結(jié)構(gòu)。在實(shí)際地程序編寫過程除了輸出環(huán)節(jié)之外,還包括輸入與處理環(huán)節(jié)。在下面地代碼,給出了一個(gè)程序編寫地通用結(jié)構(gòu)框架。計(jì)算機(jī)系統(tǒng)通常都有默認(rèn)地標(biāo)準(zhǔn)輸入設(shè)備與標(biāo)準(zhǔn)輸出設(shè)備。對一般地系統(tǒng),標(biāo)準(zhǔn)輸入設(shè)備通常是指鍵盤,標(biāo)準(zhǔn)輸出設(shè)備通常是指顯示器。Java控制臺(tái)程序從鍵盤輸入數(shù)據(jù),向顯示器輸出數(shù)據(jù),是十分常見地?cái)?shù)據(jù)通信操作。為了方便程序員地開發(fā)工作,Java系統(tǒng)事先定義好兩個(gè)流對象,分別與系統(tǒng)地標(biāo)準(zhǔn)輸入設(shè)備與標(biāo)準(zhǔn)輸出設(shè)備相聯(lián)系。它們就是System.in與System.out,位于Java地輸入輸出類庫包java.io。提示:Java語言提供了大量預(yù)先定義地類供程序員使用。Java語言把預(yù)先定義地有關(guān)類按包地形式行組織管理。一個(gè)包是一個(gè)Java類地集合。所有包組成了Java類庫,即JavaAPI。JavaAPI包被分為核心包與擴(kuò)展包,分別為"java(核心包)"或"
javax(擴(kuò)展包)"。編寫Java應(yīng)用程序,完成從鍵盤輸入兩個(gè)運(yùn)算數(shù)據(jù),計(jì)算兩數(shù)之與并輸出結(jié)果。上個(gè)案例利用"記事本+JDK"地開發(fā)模式,顯然對開發(fā)員來講過程過于繁瑣,也不便于調(diào)試與處理程序。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一一所示地程序代碼。圖一一結(jié)合程序代碼,行分析如下:(一)對于程序而言最簡單地輸入方式就是賦值語句。例如,需參與運(yùn)算地?cái)?shù)據(jù)為整數(shù)五與三。可利用賦值語句,將數(shù)據(jù)賦值給定義好地整型程序變量a與b。(二)處理數(shù)據(jù)部分,利用加法運(yùn)算符完成計(jì)算,并賦值給整型變量c。(三)輸出部分,利用字符串連接運(yùn)算符,將字符串常量"計(jì)算地結(jié)果為"與變量c地值輸出至顯示器屏幕。運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一二。圖一二從上面地程序可以看出,如參與運(yùn)算地?cái)?shù)據(jù)發(fā)生變化。例如,變?yōu)榘伺c一二。則需要修改源程序代碼,并重新編譯。顯然,利用賦值語句提供運(yùn)算數(shù)據(jù)是很不靈活地方式。更為常見地輸入方式是由用戶在程序執(zhí)行后,從鍵盤輸入程序運(yùn)行所需地預(yù)算數(shù)據(jù)。而實(shí)現(xiàn)更加靈活地用戶與程序之間地互過程。將MyTest.java源程序地程序代碼行修改,實(shí)現(xiàn)從鍵盤輸入?yún)⑴c運(yùn)算地兩個(gè)數(shù)據(jù),計(jì)算并顯示結(jié)果地功能,如圖一三。圖一三結(jié)合程序代碼,行分析如下:(一)以"import"關(guān)鍵字引導(dǎo)地第一行語句稱為引入語句,作用是將"java.io"包所有地類引入到當(dāng)前程序,以便于程序調(diào)用有關(guān)地類與方法。(二)Java系統(tǒng)要求控制臺(tái)標(biāo)準(zhǔn)輸入時(shí),需要要有異常處理。這里采用了間接拋出"throws"子句地語法格式,拋出了輸入輸出異常"IOException",由Java虛擬機(jī)自行處理。提示:Java異常處理機(jī)制分為兩種,一種是捕獲異常,另一種是拋出異常。更加詳細(xì)地內(nèi)容將在后續(xù)地異常處理章節(jié)行講解。(三)"System.in.read(bytet[])"方法是獲得用戶從鍵盤輸入地?cái)?shù)據(jù),存入字節(jié)數(shù)組t。Java系統(tǒng)是強(qiáng)類型語言,要求先定義后使用。因此,定義了字節(jié)數(shù)組"bytet[]"。數(shù)組在Java是引用類型,需要通過"new"關(guān)鍵字完成內(nèi)存空間地分配。(四)鍵盤輸入地?cái)?shù)據(jù)信息保存在字節(jié)數(shù)組,但最后地加法運(yùn)算需要基本數(shù)據(jù)類型來參與完成。Java系統(tǒng)為整數(shù)(int)與實(shí)型小數(shù)(double),都提供了對應(yīng)地轉(zhuǎn)換方法來實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換。提示:Integer.parseInt(String)作用將參數(shù)由數(shù)字組成地字符串轉(zhuǎn)換為對應(yīng)地整型數(shù)據(jù)。Double.parseDouble(String)作用將參數(shù)由數(shù)字與小數(shù)點(diǎn)組成地字符串轉(zhuǎn)換為對應(yīng)地實(shí)型數(shù)據(jù)。存儲(chǔ)鍵盤輸入數(shù)據(jù)時(shí),如字節(jié)數(shù)組地空間未全部使用。在轉(zhuǎn)換為字符串時(shí),將用空格填充??崭駸o法轉(zhuǎn)換為數(shù)值,因此利用trim()方法去除空格。Integer類與Double類地定義在java.lang包。運(yùn)行Java應(yīng)用程序。按照提示輸入數(shù)據(jù)五與三.五,顯示結(jié)果如圖一四所示。圖一四三,基于圖形化地輸入輸出結(jié)構(gòu)程序?qū)崿F(xiàn)在上一個(gè)案例使用了控制臺(tái)方式完成了輸入輸出控制。除此之外,在Java應(yīng)用程序還可以使用圖形界面(GUI)來完成與用戶地互過程。GUI是當(dāng)今編程地主流,主要特征包括:程序界面主要由圖形化地要素(如窗體,對話框,命令按鈕等)構(gòu)成程序沒有預(yù)定好地運(yùn)行流程,而是由隨機(jī)來驅(qū)動(dòng)機(jī)互由消息機(jī)制來支持輸入設(shè)備以鼠標(biāo),鍵盤為主在下面地案例,將使用Java系統(tǒng)提供地封裝好地對話框類JOptionPane來完成信息地輸入與輸出過程。編寫Java應(yīng)用程序,利用圖形界面,完成從鍵盤輸入兩個(gè)運(yùn)算數(shù)據(jù),計(jì)算兩數(shù)之與并輸出結(jié)果地功能。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一五所示地程序代碼。圖一五結(jié)合程序代碼,行分析如下:(一)"javax.swing"包包含很多創(chuàng)建圖形用戶界面應(yīng)用程序所必需地類。第一行將JOptionPane類引入到當(dāng)前程序,以便于程序調(diào)用有關(guān)地方法,實(shí)現(xiàn)輸入輸出功能。(二)調(diào)用類JOptionPane地showInputDialog()方法顯示輸入對話框,如圖一六所示。showInputDialog方法地參數(shù)為提示信息,以提示用戶輸入地內(nèi)容。用戶在窗口文本框輸入字符,當(dāng)點(diǎn)擊"確定"按鈕時(shí)把文本框地字符串返回給程序。(三)調(diào)用類JOptionPane地showMessageDialog()方法,在一個(gè)對話框窗口顯示信息,如圖二-四二所示。這個(gè)方法包含兩個(gè)參數(shù),參數(shù)之間用逗號(hào)分隔。第一個(gè)參數(shù)表示顯示對話框窗口要顯示地位置。關(guān)鍵字null,表示在計(jì)算機(jī)屏幕心顯示對話框;第二個(gè)參數(shù)為對話框要顯示地信息,類型為字符串。參照二.二.三節(jié)介紹地方式,運(yùn)行Java應(yīng)用程序。按照提示輸入數(shù)據(jù)五(如圖一六)與三.五(如圖一七),顯示結(jié)果如圖一八所示。圖一六圖一七圖一八Java地程序控制語句理論與實(shí)踐證明,無論多么復(fù)雜地算法均可通過順序,選擇,循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造出來。每種結(jié)構(gòu)僅有一個(gè)入口與出口。由這三種基本結(jié)構(gòu)組成地多層嵌套程序稱為結(jié)構(gòu)化程序。一,順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡單,最基本地程序控制結(jié)構(gòu),程序地語句將自頂向下逐條執(zhí)行,即按語句地排列順序從第一條順序執(zhí)行到最后一條,且每個(gè)語句只執(zhí)行一遍,無需專門地控制語句實(shí)現(xiàn)。順序結(jié)構(gòu)地流程圖如圖一所示。圖一順序結(jié)構(gòu)流程圖輸入三角形地三條邊長,求三角形地面積。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖二所示地程序代碼。圖二在上例執(zhí)行時(shí),隨意從鍵盤輸入三個(gè)數(shù)即可獲得由這三個(gè)數(shù)構(gòu)成地三角形地面積。例題地程序是根據(jù)邏輯順序一條一條地編寫地,執(zhí)行時(shí)也按這個(gè)順序一步一步地執(zhí)行。運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖三所示。圖三二,選擇結(jié)構(gòu)順序結(jié)構(gòu)地程序雖然能解決數(shù)據(jù)地輸入,計(jì)算與輸出等功能,但是不可能處理復(fù)雜地問題。在數(shù)據(jù)處理過程,往往需要根據(jù)不同地情況,完成不同地處理。例如,任意輸入兩個(gè)數(shù)a與b,輸出較大地?cái)?shù)。解決這樣地問題,就需要讓計(jì)算機(jī)按照給定地條件來行判斷,并且根據(jù)判斷地結(jié)果選擇相應(yīng)地處理方式。實(shí)際上,這種處理方式就是要求程序本身具有一定地邏輯判斷能力與選擇能力。選擇結(jié)構(gòu)地執(zhí)行就是根據(jù)一定地條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語句地物理順序來執(zhí)行。類似這樣情況地處理,要使用if條件語句來實(shí)現(xiàn)。一,格式一---單一if語句格式:if(表達(dá)式)語句;功能:若表達(dá)式地值為true,則執(zhí)行語句,否則跳過該語句。執(zhí)行流程如圖四所示。其,語句可以是單個(gè)語句或復(fù)合語句(用大括號(hào)"{}"括起地多個(gè)語句)。例如,求實(shí)型變量x地絕對值地程序段:floatx=-四五.二一四五f;if(x<零)x=-x;System.out.println("x="+x);二,格式二---if-else語句格式:if(表達(dá)式)語句一;else語句二;功能:如果表達(dá)式地值為true,執(zhí)行語句一,否則執(zhí)行語句二。該語句地功能流程如圖五所示。例如,下邊地程序段測試一門功課地成績是否通過:doublescore=四零.五;booleanb=score>=六零;//布爾型變量b結(jié)果為falseif(b)System.out.println("妳通過了測試");elseSystem.out.println("妳沒有通過測試");這是一個(gè)簡單地例子,我們定義了一個(gè)布爾型變量,主要是說明一下它地應(yīng)用。當(dāng)然我們可以將上述功能程序段,寫為如下方式:doublescore=四零.五;if(score>=六零)System.out.println("妳通過了測試");elseSystem.out.println("妳沒有通過測試");三,格式三---多重if-else語句格式:if(表達(dá)式一)語句一;elseif(表達(dá)式二)語句二;……elseif(表達(dá)式n-一)語句n-一;else語句n;這是一種多選一地多分支結(jié)構(gòu),其功能是:如果表達(dá)式i(i=一~n-一)地值為true,則執(zhí)行語句i;如果所有表達(dá)式i地值均為false,則執(zhí)行語句n。功能流程見圖六。從鍵盤任意輸入一個(gè)字符,判斷該字符地類別。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖七所示地程序代碼。圖七運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖八所示。圖八為考試成績劃定五個(gè)級(jí)別,當(dāng)成績大于或等于九零分時(shí),劃定為優(yōu);當(dāng)成績大于或等于八零且小于九零時(shí),劃定為良;當(dāng)成績大于或等于七零且小于八零時(shí),劃定為;當(dāng)成績大于或等于六零且小于七零時(shí),劃定為及格;當(dāng)成績小于六零時(shí),劃定為差。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖九所示地程序代碼。圖九運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一零所示。圖一零四,if語句地嵌套前面講地if語句格式是用于一個(gè)條件選擇地情況。如果是多個(gè)條件地選擇,可以在if或if-else地"語句一"或"語句二"再使用if語句或if-else語句,這種設(shè)計(jì)方法稱為嵌套。格式如下:if(表達(dá)式)if語句;或if(表達(dá)式)if語句;elseif語句;計(jì)算符號(hào)函數(shù)地值。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一一所示地程序代碼。圖一一運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一二所示。圖一二五,switch語句如上所述,if-elseif-else是實(shí)現(xiàn)多分支選擇地語句。但是當(dāng)分支較多時(shí),使用這種形式會(huì)顯得比較麻煩,程序地可讀差且容易出錯(cuò)。Java提供了switch語句來實(shí)現(xiàn)"多選一"地功能。switch語句地一般格式如下:switch(表達(dá)式){case常量一:語句組一;[break;]case常量二:語句組二;[break;]……case常量n-一:語句組n-一;[break;]case常量n:語句組n;[break;]default:語句組n+一;}其:(一)表達(dá)式地值需要是整型或字符型。(二)常量i(i=一~n)是對應(yīng)于表達(dá)式類型地常量值。各常量地值需要是唯一地。(三)語句組i(i=一~n+一)可以是空語句,也可是一個(gè)或多個(gè)語句。(四)break地作用是結(jié)束本switch結(jié)構(gòu)語句地執(zhí)行,跳到該結(jié)構(gòu)外地下一個(gè)語句執(zhí)行。switch語句地執(zhí)行流程如圖一三所示。先計(jì)算表達(dá)式地值,根據(jù)該值查找與之匹配地常量i,若找到,則執(zhí)行語句組i,遇到break語句后跳出switch結(jié)構(gòu),否則繼續(xù)依次執(zhí)行下邊地語句組。如果沒有查找到與計(jì)算結(jié)果相匹配地常量i,則執(zhí)行default關(guān)鍵字后地語句n+一。使用switch結(jié)構(gòu)重寫例題。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一四所示地程序代碼。圖一四運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一五示。圖一五通過比較可以看出,用switch語句處理多分支地問題,結(jié)構(gòu)比較清晰,程序易讀易懂。使用switch語句地關(guān)鍵在于表達(dá)式地處理,在上邊程序n=score/一零,當(dāng)score=一零零時(shí),n=一零;當(dāng)score大于等于九零小于一零零時(shí),n=九,因此常量一零與九用一個(gè)語句組。此外score在六零分以下,n=五,四,三,二,一,零統(tǒng)歸為default,用一個(gè)語句組。三,循環(huán)結(jié)構(gòu)循環(huán)是我們周圍存在地最普遍地現(xiàn)象之一,許多復(fù)雜地問題往往需要做大量雷同地重復(fù)處理??梢?循環(huán)結(jié)構(gòu)是程序設(shè)計(jì)地一個(gè)常用結(jié)構(gòu)。例如,求一到一零零地累加與,需要重復(fù)做加法,如果寫一零零個(gè)賦值語句,顯然很累贅,如果用循環(huán)語句設(shè)計(jì)就比較簡單了。Java語言提供了三種循環(huán)語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu)地程序設(shè)計(jì),分別為for循環(huán),while循環(huán)與do-while循環(huán)。一般情況下,for循環(huán)用于處理確定次數(shù)地循環(huán),while與do-while循環(huán)用于處理不確定次數(shù)地循環(huán)。一,while循環(huán)while循環(huán)地一般格式:while(表達(dá)式)//表達(dá)式為循環(huán)條件{ 語句組;//循環(huán)體}其:(一)表達(dá)式可以是關(guān)系表達(dá)式或邏輯表達(dá)式,它產(chǎn)生一個(gè)布爾值。(二)語句組是循環(huán)體,要重復(fù)執(zhí)行地語句序列。while循環(huán)地執(zhí)行流程如圖一六所示。當(dāng)表達(dá)式產(chǎn)生地值是true時(shí),重復(fù)執(zhí)行循環(huán)體(語句組)操作,當(dāng)表達(dá)式地值是false時(shí),結(jié)束循環(huán)操作,執(zhí)行while循環(huán)體下邊地程序語句。用while語句求一+二+三+…一零零地值。算法分析:(一)首先設(shè)置一個(gè)累加器sum,其初值為零;(二)利用sum=sum+n實(shí)現(xiàn)累加(n依次取一,二,…,一零零);(三)每執(zhí)行一次"sum=sum+n"后,n增加一,當(dāng)n增到一零一時(shí),停止計(jì)算。此時(shí)sum地值就是一到一零零地累加與。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一七所示地程序代碼。圖一七運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖一八所示。圖一八計(jì)算當(dāng)n=九時(shí)n!地值,并分別輸出一!至九!各階乘地值。在Eclipse建立Java應(yīng)用程序項(xiàng)目,輸入如圖一九所示地程序代碼。圖一九運(yùn)行Java應(yīng)用程序,顯示結(jié)果如圖二零所示。圖二零二,do-while循環(huán)do-while循環(huán)地一般格式:do{語句組;//循環(huán)體}while(表達(dá)式);請注意一下do-while與while循環(huán)在格式上地差別,然后再留意一下它們在處理流程上地差別。圖二一描述了do-while地循環(huán)流程。從兩種循環(huán)地格式與處理流程可以看出它們之間地差別在于:while循環(huán)先判斷表達(dá)式地值,如果表達(dá)式地值為true則執(zhí)行循環(huán)體,否則跳過循環(huán)體地執(zhí)行。因此如果一開始布爾表達(dá)式地值就為false,那么循
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年政府公共安全監(jiān)控技術(shù)合同范本3篇
- 2024年版建設(shè)項(xiàng)目招標(biāo)協(xié)調(diào)合同
- 三年級(jí)教學(xué)計(jì)劃3篇
- 員工工作計(jì)劃
- 2024-2030年中國羥甲煙胺片行業(yè)發(fā)展?jié)摿︻A(yù)測及投資戰(zhàn)略研究報(bào)告
- 服裝銷售工作計(jì)劃
- 學(xué)習(xí)部工作計(jì)劃4篇
- 去超市實(shí)習(xí)報(bào)告范文集合7篇
- 銀行員工辭職信
- 關(guān)于教師職稱述職報(bào)告匯編5篇
- 部編版語文四年級(jí)下冊第二單元大單元教學(xué)設(shè)計(jì)核心素養(yǎng)目標(biāo)
- 2024年小學(xué)教師聽課、評(píng)課制度
- 精品解析:河北省衡水市衡水中學(xué)2023-2024學(xué)年高一上學(xué)期期末數(shù)學(xué)試題(解析版)
- 2023年《鐵道概論》考試復(fù)習(xí)題庫附答案(含各題型)
- (電焊工)勞務(wù)分包合同
- 陜西省西安市西咸新區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期1月期末歷史試題
- 北師大版數(shù)學(xué)三年級(jí)下冊全冊教案教學(xué)設(shè)計(jì)及教學(xué)反思
- 重難點(diǎn)06讀后續(xù)寫-2023年高考英語【熱點(diǎn)·重點(diǎn)·難點(diǎn)】(新高考專用)
- 眼科手術(shù)圍手術(shù)期的護(hù)理
- 人事行政主管打造高效團(tuán)隊(duì)提升員工滿意度實(shí)現(xiàn)人力資源的優(yōu)化管理和企業(yè)文化的建設(shè)
- 《腰椎穿刺術(shù)》課件
評(píng)論
0/150
提交評(píng)論