![JAVA程序設(shè)計(jì)實(shí)例教程_第1頁(yè)](http://file4.renrendoc.com/view/173fcfbafa9617d738a32c0ced4bbee0/173fcfbafa9617d738a32c0ced4bbee01.gif)
![JAVA程序設(shè)計(jì)實(shí)例教程_第2頁(yè)](http://file4.renrendoc.com/view/173fcfbafa9617d738a32c0ced4bbee0/173fcfbafa9617d738a32c0ced4bbee02.gif)
![JAVA程序設(shè)計(jì)實(shí)例教程_第3頁(yè)](http://file4.renrendoc.com/view/173fcfbafa9617d738a32c0ced4bbee0/173fcfbafa9617d738a32c0ced4bbee03.gif)
![JAVA程序設(shè)計(jì)實(shí)例教程_第4頁(yè)](http://file4.renrendoc.com/view/173fcfbafa9617d738a32c0ced4bbee0/173fcfbafa9617d738a32c0ced4bbee04.gif)
![JAVA程序設(shè)計(jì)實(shí)例教程_第5頁(yè)](http://file4.renrendoc.com/view/173fcfbafa9617d738a32c0ced4bbee0/173fcfbafa9617d738a32c0ced4bbee05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JAVA程序設(shè)計(jì)實(shí)例教程主編:關(guān)忠制作:李曉新2011年3月JAVA程序設(shè)計(jì)實(shí)例教程第1章你好,Java第2章比較大小第3章車輛信息顯示第4章計(jì)算器第5章文本編輯器第6章賽馬游戲第7章網(wǎng)絡(luò)即時(shí)通訊第1章你好,Java1.1基礎(chǔ)實(shí)例1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境1.4擴(kuò)展實(shí)例
引言
Java是一種簡(jiǎn)單易用、完全面向?qū)ο?、安全可靠、主要面向Internet且具有最棒的跨平臺(tái)可移植性的開發(fā)工具。從現(xiàn)在開始,Java將帶領(lǐng)讀者進(jìn)入一個(gè)全新的領(lǐng)域。本章將主要通過一些比較簡(jiǎn)單的實(shí)例,使讀者對(duì)于Java能有一個(gè)初步的認(rèn)識(shí),掌握J(rèn)ava程序設(shè)計(jì)中最基礎(chǔ)的知識(shí)。1.1基礎(chǔ)實(shí)例1.1.1編寫步驟首先,執(zhí)行“開始→所有程序→附件→記事本”。然后,在記事本中輸入以下內(nèi)容:1 //MyFirstJavaApplication.java2 publicclassMyFirstJavaApplication{3 publicstaticvoidmain(Stringargs[]){4 System.out.println("你好,Java!");5 }6 }1.1基礎(chǔ)實(shí)例1.1.2運(yùn)行結(jié)果執(zhí)行“開始→運(yùn)行”,在彈出的“運(yùn)行”對(duì)話框中,輸入“cmd”,單擊“確定”按鈕或執(zhí)行“開始→所有程序→附件→命令提示符”。在命令窗口中,使用JDK中的javac命令編譯源文件MyFirstJavaApplication.java,語(yǔ)句如下:javacMyFirstJavaApplication.java1.1基礎(chǔ)實(shí)例編譯完成后,在源文件所在的文件夾下,會(huì)生成一個(gè)名為“MyFirstJavaApplication.class”的字節(jié)碼文件。然后,使用JDK中的java命令運(yùn)行字節(jié)碼文件MyFirstJavaApplication.class,命令如下:javaMyFirstJavaApplication該Java程序運(yùn)行后,會(huì)在命令窗口中輸出相應(yīng)信息1.1基礎(chǔ)實(shí)例MyFirstJavaApplication程序的運(yùn)行結(jié)果1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)1.2.1Java的開發(fā)運(yùn)行環(huán)境SUN公司提供了自己的一套Java開發(fā)環(huán)境,通常稱之為JDK(JavaDevelopmentKit),并且提供了多種操作系統(tǒng)下的JDK。隨著時(shí)間的推移和技術(shù)的進(jìn)步,JDK的版本也在不斷的升級(jí),如JDK1.2、JDK1.3、JDK1.4等,目前最新版本是JDK6(也就是JDK1.6)。不同操作系統(tǒng)下的JDK的各種版本在使用上基本相似,大家可以根據(jù)自己的使用環(huán)境,從SUN公司的網(wǎng)站上下載相應(yīng)的版本。本書中所使用的都是基于Windows平臺(tái)下的JDK6。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)安裝完成后,這個(gè)工具包中的所有內(nèi)容都會(huì)放在JDK安裝文件夾下,其中的bin文件夾中包含了所有相關(guān)的可執(zhí)行文件。在bin文件夾中,javac.exe是Java的編譯工具,Java源文件的擴(kuò)展名為.java,源文件被編譯后會(huì)在其所在的文件夾中生成相應(yīng)的字節(jié)碼文件,字節(jié)碼文件的擴(kuò)展名為.class;java.exe是Java的解釋工具,負(fù)責(zé)解釋執(zhí)行Java字節(jié)碼文件。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)1.2.2Java程序的基本結(jié)構(gòu)1.Java應(yīng)用程序2.Java小應(yīng)用程序1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)Java應(yīng)用程序的執(zhí)行過程1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)Java小應(yīng)用程序的執(zhí)行過程1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)1.2.3Java的基本語(yǔ)法格式1.標(biāo)識(shí)符在Java語(yǔ)言中,標(biāo)識(shí)符用于為各種變量、數(shù)組、方法、類、對(duì)象、接口、包等命名。Java標(biāo)識(shí)符的命名規(guī)則是:Java標(biāo)識(shí)符由字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,長(zhǎng)度不限。Java標(biāo)識(shí)符的第一個(gè)字母必須是字母、下劃線(_)或美元符號(hào)($)。盡可能避免使用含$符號(hào)的標(biāo)識(shí)符,因?yàn)樗鼈兂1痪幾g器用來創(chuàng)建標(biāo)識(shí)符的名字。Java標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫。用戶不能直接使用Java語(yǔ)言中的關(guān)鍵字作為標(biāo)識(shí)符,但是它可以包含關(guān)鍵字作為它名字的一部分。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)在同一作用域內(nèi),一般不允許有同名的標(biāo)識(shí)符。為了提高程序的可讀性,標(biāo)識(shí)符的命名最好能夠做到“見名知義”,而且規(guī)范大小寫的使用方式。通常情況下,對(duì)于標(biāo)識(shí)符有以下一些風(fēng)格約定:_和$一般不作為變量名,方法名的開頭。包名:全部小寫,例如java、applet、awt等。接口名、類名:每個(gè)單詞的首字母都要大寫,例如MyFirstJavaApplication、System、Graphics等。變量名、對(duì)象名、方法名:第一個(gè)單詞全部小寫,其余單詞只有首字母大寫,例如anyVariableWorld、drawString等。常量名:全部大寫,例如PI、MAX_VALUE等。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)2.關(guān)鍵字關(guān)鍵字是由Java語(yǔ)言定義的,具有特殊含義的字符序列。每個(gè)關(guān)鍵字都有一種特定的含義,不能將關(guān)鍵字作為普通標(biāo)識(shí)符來使用。所有的Java關(guān)鍵字一律用小寫字母表示。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)
Java關(guān)鍵字1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)3.分隔符Java程序的分隔符用于區(qū)分Java源程序中的基本成分,分為注釋、空白符和普通分隔符三種。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)⑴注釋在程序中適當(dāng)?shù)丶尤胱⑨屖且环N良好的編程習(xí)慣,這樣會(huì)增加程序的可讀性。注釋不能放在一個(gè)標(biāo)識(shí)符或關(guān)鍵字之中,也就是說,要保證程序中最基本元素的完整性。注釋不會(huì)影響程序的執(zhí)行結(jié)果,編譯器將忽略注釋。在Java中,主要有以下三種注釋形式:?jiǎn)涡凶⑨專?/注釋部分──只對(duì)當(dāng)前行有效多行注釋:/*注釋部分*/文檔注釋:/**注釋部分*/1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)⑵空白符空白符包括空格、回車、換行和制表符(Tab鍵)。各種Java基本成分之間的多個(gè)空白符與一個(gè)空白符的作用相同。在編譯過程中,編譯器會(huì)忽略空白符。在程序中適當(dāng)?shù)氖褂每瞻追?,可以增?qiáng)程序的可讀性。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)⑶普通分隔符普通分隔符具有確定的含義,不能用錯(cuò)。它主要包括四種分隔符:{}大括號(hào):用于定義語(yǔ)句塊,例如:定義類體、方法體和復(fù)合語(yǔ)句以及數(shù)組的初始化等。;分號(hào):用于作為語(yǔ)句結(jié)束的標(biāo)志。,逗號(hào):用于區(qū)分方法的各個(gè)參數(shù),區(qū)分變量說明的各個(gè)變量。:冒號(hào):用于作為語(yǔ)句的標(biāo)號(hào)1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境1.3.1JCreatorJCreator是一個(gè)小巧靈活的Java程序開發(fā)工具,也是一個(gè)Java集成開發(fā)環(huán)境。它可將Java程序的編寫、編譯、運(yùn)行和調(diào)試集成進(jìn)自身的環(huán)境中直接進(jìn)行開發(fā),且無需進(jìn)行環(huán)境變量的設(shè)置。在功能上與SUN公司所公布的JDK等文字模式開發(fā)工具相較之下來得容易,還允許使用者自定義操作窗口界面及無限Undo/Redo等功能。1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境JCreator操作界面
1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境1.3.2JBuilderJBuilder主要的特點(diǎn)有:⑴JBuilder支持最新的Java技術(shù),包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的應(yīng)用。⑵用戶可以自動(dòng)地生成基于后端數(shù)據(jù)庫(kù)表的EJBJava類,JBuilder同時(shí)還簡(jiǎn)化了EJB的自動(dòng)部署功能。⑶JBuilder支持各種應(yīng)用服務(wù)器。⑷JBuilder能用Servlet和JSP開發(fā)、調(diào)試動(dòng)態(tài)Web應(yīng)用。⑸利用JBuilder可以創(chuàng)建(沒有專有代碼和標(biāo)記)純Java2應(yīng)用。⑹JBuilder擁有專業(yè)化的圖形調(diào)試界面,支持遠(yuǎn)程調(diào)試和多線程調(diào)試,調(diào)試器支持各種JDK版本,包括J2ME、J2SE和J2EE。1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境
JBuilder操作界面
1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境1.3.3Eclipse和MyEclipse1.Eclipse⑴概述Eclipse是著名的跨平臺(tái)的自由集成開發(fā)環(huán)境(IDE)。Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。Eclipse的前身是IBM的VisualAgeforJava。Eclipse是可擴(kuò)展的體系結(jié)構(gòu),可以集成不同軟件開發(fā)供應(yīng)商開發(fā)的產(chǎn)品,將他們開發(fā)的工具和組件加入到Eclipse平臺(tái)中。1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境⑵Eclipse的結(jié)構(gòu)和內(nèi)核Eclipse本身作為一個(gè)開放源碼的軟件項(xiàng)目,它主要包含3個(gè)子項(xiàng)目:平臺(tái)子項(xiàng)目、Java開發(fā)工具(JDT-java)子項(xiàng)目和插件開發(fā)環(huán)境(PDE-plug-in)子項(xiàng)目。Eclipse目前的最新版本為Eclipse3.5.2。1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境2.MyEclipseMyEclipse是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合。MyEclipse目前支持JavaServlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能??梢哉fMyEclipse幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:⑴J2EE模型⑵WEB開發(fā)工具⑶EJB開發(fā)工具⑷應(yīng)用程序服務(wù)器的連接器⑸J2EE項(xiàng)目部署服務(wù)⑹數(shù)據(jù)庫(kù)服務(wù)⑺MyEclipse整合幫助1.3擴(kuò)展知識(shí)——常用的Java集成開發(fā)環(huán)境
MyEclipse操作界面
1.4擴(kuò)展實(shí)例在本節(jié)中,將使用Eclipse來開發(fā)一個(gè)簡(jiǎn)單的Java應(yīng)用程序。通過實(shí)例,請(qǐng)讀者熟悉一下Eclipse開發(fā)環(huán)境,本書后面都會(huì)使用Eclipse來進(jìn)行相應(yīng)的開發(fā)。1.4擴(kuò)展實(shí)例1.啟動(dòng)Eclipse
啟動(dòng)介面1.4擴(kuò)展實(shí)例2.創(chuàng)建Java項(xiàng)目執(zhí)行“文件→新建→Java項(xiàng)目”,在彈出的“新建Java項(xiàng)目”對(duì)話框中,設(shè)置“項(xiàng)目名”,并在內(nèi)容中設(shè)置項(xiàng)目的保存位置,然后,單擊“完成”按鈕,完成Java項(xiàng)目的創(chuàng)建工作,系統(tǒng)會(huì)在項(xiàng)目的保存位置上創(chuàng)建相應(yīng)的文件夾。1.4擴(kuò)展實(shí)例3.創(chuàng)建Java類執(zhí)行“文件→新建→類”,在彈出的“新建Java類”對(duì)話框中,設(shè)置類名。然后,單擊“完成”按鈕,完成Java類的創(chuàng)建工作,系統(tǒng)會(huì)自動(dòng)在項(xiàng)目文件夾中創(chuàng)建相應(yīng)的文件。1.4擴(kuò)展實(shí)例
4.編寫Java類在編輯窗口中,輸入以下Java程序代碼:1 //MyFirstJavaApplication1.java2 importjavax.swing.JOptionPane;3 publicclassMyFirstJavaApplication1{4 publicstaticvoidmain(Stringargs[]){5 JOptionPane.showMessageDialog(null,"你好,Java!");6 }7 }輸入完成后,執(zhí)行“文件→保存”,即可完成在Eclipse下第一個(gè)Java程序的編寫工作。1.4擴(kuò)展實(shí)例1.4.2運(yùn)行結(jié)果執(zhí)行“運(yùn)行→運(yùn)行”或“運(yùn)行→運(yùn)行方式→Java應(yīng)用程序”,即可執(zhí)行程序。如果程序尚未保存,Eclipse會(huì)詢問在執(zhí)行前是否要保存文檔,然后執(zhí)行程序。該Java程序運(yùn)行后,執(zhí)行結(jié)果如圖.1.4擴(kuò)展實(shí)例
MyFirstJavaApplication的運(yùn)行結(jié)果第2章比較大小2.1基礎(chǔ)實(shí)例2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.3 擴(kuò)展知識(shí)——數(shù)組法2.4擴(kuò)展實(shí)例
引言通過上一章的學(xué)習(xí),讀者對(duì)于Java已經(jīng)有了一個(gè)初步認(rèn)識(shí),掌握了Java程序設(shè)計(jì)的基礎(chǔ)知識(shí)。本章中,將通過一個(gè)比較數(shù)值大小的實(shí)例來進(jìn)一步學(xué)習(xí)Java語(yǔ)言的基本語(yǔ)法規(guī)則,從而讓讀者能夠使用Java開發(fā)工具編寫出一個(gè)具備數(shù)值比較功能的Java程序。2.1基礎(chǔ)實(shí)例現(xiàn)在將編寫一個(gè)Java應(yīng)用程序,主要用于實(shí)現(xiàn)兩個(gè)數(shù)大小的比較,并給出比較結(jié)果。通過實(shí)例,讀者將進(jìn)一步學(xué)習(xí)Java語(yǔ)言的基本語(yǔ)法規(guī)則。2.1基礎(chǔ)實(shí)例2.1.1編寫步驟1.啟動(dòng)Eclipse2.創(chuàng)建Java項(xiàng)目3.創(chuàng)建Java類4.編寫Java類2.1基礎(chǔ)實(shí)例在編輯窗口中,輸入以下Java程序代碼:1 //Compare.java2 importjavax.swing.JOptionPane; //裝載JOptionPane類3 publicclassCompare{4 publicstaticvoidmain(Stringargs[]){5 Strings1,s2;6 s1=JOptionPane.showInputDialog("請(qǐng)輸入第一個(gè)整數(shù):");7 //s1接收來自輸入文本框的第一個(gè)整數(shù)8 s2=JOptionPane.showInputDialog("請(qǐng)輸入第二個(gè)整數(shù):");9 //s2接收來自輸入文本框的第二個(gè)整數(shù)10 intfirstNumber,secondNumber;11 firstNumber=Integer.parseInt(s1);12 //將字符串s1轉(zhuǎn)換成整數(shù)賦值給firstNumber13 secondNumber=Integer.parseInt(s2);14 //將字符串s2轉(zhuǎn)換成整數(shù)賦值給secondNumber2.1基礎(chǔ)實(shí)例15 //比較兩個(gè)數(shù)的大小16 if(firstNumber>secondNumber){17 JOptionPane.showMessageDialog(null,firstNumber+"大于"+secondNumber);18 }19 elseif(firstNumber==secondNumber){20 JOptionPane.showMessageDialog(null,firstNumber+"等于"+secondNumber);21 }22 else{23 JOptionPane.showMessageDialog(null,firstNumber+"小于"+secondNumber);24 }25 }26 }輸入完成后,執(zhí)行“文件→保存”,即可完成在Eclipse下Java程序的編寫工作。2.1基礎(chǔ)實(shí)例2.1.2運(yùn)行結(jié)果執(zhí)行“運(yùn)行→運(yùn)行”,即可執(zhí)行程序。如果程序尚未保存,Eclipse會(huì)詢問在執(zhí)行前是否要保存文檔,然后執(zhí)行程序。該Java程序運(yùn)行后,按對(duì)話框提示操作。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)Java是基于C++語(yǔ)言開發(fā)出來的,因此其語(yǔ)法規(guī)則與C/C++非常相似,但是又有所不同。接觸過C/C++的讀者,學(xué)習(xí)時(shí)要特別注意Java與C/C++的區(qū)別。下面詳細(xì)介紹Java的基本語(yǔ)法。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.1數(shù)據(jù)類型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)1.整數(shù)類型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.浮點(diǎn)數(shù)類型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)3.字符類型在Java中,利用關(guān)鍵字char來定義字符類型的數(shù)據(jù)。字符型數(shù)據(jù)是用單引號(hào)括起來的單個(gè)字符。例如:charc='A'。Java中的字符型數(shù)據(jù)是基于16位的Unicode字符集,每個(gè)字符占兩個(gè)字節(jié)。Java中的字符型數(shù)據(jù)屬于整型數(shù)據(jù),但是無符號(hào)的整型數(shù)據(jù),其取值范圍為0~216-1。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)4.邏輯類型邏輯類型,又稱為布爾類型,用關(guān)鍵字boolean來表示。例如:booleanb=false。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.2常量與變量1.常量常量是不能被程序修改的固定值,在程序運(yùn)行之前,其值就已經(jīng)確定了。在Java中,定義常量時(shí)需要使用final關(guān)鍵字。定義基本數(shù)據(jù)類型的常量的基本語(yǔ)法格式為:[修飾符]final基本數(shù)據(jù)類型常量名1=數(shù)值1[,常量名2=數(shù)值2……];2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)Java中的常量,主要有:⑴整型常量整型常量分為單字節(jié)整型、短整型、整型和長(zhǎng)整型4種,它們均可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制三種方式表示。十進(jìn)制整數(shù):十進(jìn)制整數(shù)的第一位數(shù)字不能為0。例如:123、-456、23L。八進(jìn)制整數(shù):要求必須以0為前導(dǎo),例如:0123、-011、0377L。十六進(jìn)制整數(shù):要求必須以0x或0X作為前導(dǎo),例如:0x123、-0X1A2D、0XFFFL。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑵實(shí)型常量實(shí)型常量分為單精度和雙精度兩種類型。實(shí)型數(shù)據(jù)只采用十進(jìn)制數(shù)表示,有小數(shù)形式和指數(shù)形式兩種不同的表示。小數(shù)形式(標(biāo)準(zhǔn)形式):由數(shù)字和小數(shù)點(diǎn)組成,且必須有小數(shù)點(diǎn)。例如:0.123、1.23D,-0.9901F。指數(shù)形式(科學(xué)計(jì)數(shù)法形式):用指數(shù)冪的形式表示,要求必須有指數(shù)部分。例如:123e3、123E-3,其中e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑶字符常量字符常量是用單引號(hào)括起來的一個(gè)字符,例如:'a'、'A'。Java中還允許使用轉(zhuǎn)義字符‘\’來將其后的字符轉(zhuǎn)變?yōu)槠渌暮x。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)
Java中常用的轉(zhuǎn)義序列2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑷邏輯常量邏輯常量只有兩個(gè)值:true和false,分別代表布爾邏輯中的“真”和“假”。在Java中,邏輯常量不能轉(zhuǎn)換成任何其他類型的數(shù)據(jù)。true和false只能賦值給聲明為boolean類型的變量,或者用于邏輯運(yùn)算表達(dá)式中。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.變量變量是在程序運(yùn)行過程中可以賦值并能夠?qū)ζ渲颠M(jìn)行更改的數(shù)據(jù)。變量是Java程序中的基本存儲(chǔ)單元,它的定義包括變量名、變量值、變量類型和作用域幾個(gè)部分。變量根據(jù)其所屬的數(shù)據(jù)類型劃分:基本數(shù)據(jù)類型變量和引用數(shù)據(jù)類型變量(復(fù)合數(shù)據(jù)類型變量)。根據(jù)變量被聲明的位置劃分為:局部變量、成員變量。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑴變量的定義與初始化⑵變量的賦值與類型轉(zhuǎn)換⑶變量的作用域2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)成員變量的默認(rèn)初始化原則2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.3運(yùn)算符和表達(dá)式表達(dá)式是由變量、常量和各種運(yùn)算符組成的式子,是程序的基本組成單位之一。表達(dá)式可以是程序語(yǔ)句的一部分,也可以是一個(gè)單獨(dú)的程序語(yǔ)句。表達(dá)式的值就是表達(dá)式中的各變量、常量經(jīng)過運(yùn)算所得到的結(jié)果,而這些運(yùn)算就主要是由表達(dá)式中的運(yùn)算符來規(guī)定。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)1.運(yùn)算符⑴算術(shù)運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)自增、自減運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑵關(guān)系運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑶邏輯運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑷位運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑸賦值運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑹條件運(yùn)算符條件運(yùn)算符是Java語(yǔ)言中唯一的一個(gè)三目運(yùn)算符,其一般形式為:表達(dá)式?語(yǔ)句1:語(yǔ)句2。在計(jì)算條件表達(dá)式時(shí),先計(jì)算表達(dá)式,如果值為true,就執(zhí)行語(yǔ)句1,并將其結(jié)果作為條件表達(dá)式的值;否則執(zhí)行語(yǔ)句2,并將其結(jié)果作為條件表達(dá)式的值。其中表達(dá)式的運(yùn)行結(jié)果必須是布爾型數(shù)據(jù),語(yǔ)句1和語(yǔ)句2返回的數(shù)據(jù)的數(shù)據(jù)類型必須保持一致。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑺其他運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.表達(dá)式⑴表達(dá)式的值和類型⑵表達(dá)式的運(yùn)算順2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)運(yùn)算符的優(yōu)先順序2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.4流程控制1.順序結(jié)構(gòu)程序從上至下一行一行執(zhí)行的結(jié)構(gòu),中間沒有分支和跳轉(zhuǎn),直到程序結(jié)束。一般情況下,程序中的語(yǔ)句都是按程序設(shè)計(jì)時(shí)所確定的次序一個(gè)語(yǔ)句接一個(gè)語(yǔ)句地順序執(zhí)行的。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.選擇結(jié)構(gòu)選擇結(jié)構(gòu)提供了一種控制機(jī)制,使得程序的執(zhí)行可以跳過某些語(yǔ)句不執(zhí)行,而轉(zhuǎn)去執(zhí)行特定的語(yǔ)句。在Java中,選擇語(yǔ)句包括if語(yǔ)句(單選)、if…else語(yǔ)句(雙選)和switch語(yǔ)句(多選)2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)3.循環(huán)結(jié)構(gòu)循環(huán)語(yǔ)句的作用是反復(fù)執(zhí)行一段代碼,直到滿足終止循環(huán)的條件為止。Java語(yǔ)言中提供的循環(huán)語(yǔ)句有:while語(yǔ)句do-while語(yǔ)句for語(yǔ)句2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)4.跳轉(zhuǎn)語(yǔ)句在使用循環(huán)語(yǔ)句時(shí),只有循環(huán)條件表達(dá)式的值為false時(shí)才能結(jié)束循環(huán)。想要提前中斷循環(huán),則需要使用break語(yǔ)句,還可以在循環(huán)語(yǔ)句塊中添加continue語(yǔ)句,來跳過本次循環(huán)要執(zhí)行的剩余語(yǔ)句,然后開始執(zhí)行下一輪循環(huán)。2.3 擴(kuò)展知識(shí)——數(shù)組法Java中,數(shù)組是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類型。數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素都具有相同的數(shù)據(jù)類型,可以用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來唯一地確定數(shù)組中的元素,這些數(shù)據(jù)在內(nèi)存中的存放是連續(xù)的。數(shù)組分為一維數(shù)組和多維數(shù)組。2.3 擴(kuò)展知識(shí)——數(shù)組法2.3.1一維數(shù)組1.一維數(shù)組的聲明在Java中,一維數(shù)組的定義形式為:數(shù)組元素類型數(shù)組名[];數(shù)組元素類型[]數(shù)組名;2.3 擴(kuò)展知識(shí)——數(shù)組法2.一維數(shù)組的初始化可以在定義數(shù)組的同時(shí)為數(shù)組元素分配空間并賦值,也就是對(duì)數(shù)組進(jìn)行靜態(tài)初始化。例如:intintArray[]={1,2,3,4};StringstringArray[]={"abc","How","you"};2.3 擴(kuò)展知識(shí)——數(shù)組法3.一維數(shù)組元素的引用只有完成了對(duì)所有數(shù)組元素的創(chuàng)建和初始化工作之后,才可以在程序中引用數(shù)組元素、修改其屬性和調(diào)用其方法。Java中數(shù)組元素的引用是通過數(shù)組下標(biāo)來實(shí)現(xiàn)的,其引用方式為:數(shù)組名[數(shù)組下標(biāo)]其中數(shù)組下標(biāo)可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開始,到數(shù)組元素個(gè)數(shù)值減1為止。每個(gè)數(shù)組都有一個(gè)屬性length來指明它的長(zhǎng)度,即數(shù)組元素的個(gè)數(shù)。2.3 擴(kuò)展知識(shí)——數(shù)組法2.3.2多維數(shù)組1.二維數(shù)組的定義在Java中,二維數(shù)組的定義形式為:數(shù)組元素類型數(shù)組名[][];數(shù)組元素類型[][]數(shù)組名;2.3 擴(kuò)展知識(shí)——數(shù)組法2.二維數(shù)組的初始化靜態(tài)初始化Java語(yǔ)言中,由于把二維數(shù)組看作是數(shù)組的數(shù)組,數(shù)組空間不是連續(xù)分配的,所以不要求二維數(shù)組每一維的大小相同。例如:intintArray[][]={{1,2},{2,3},{3,4,5}};動(dòng)態(tài)初始化直接為每一維分配空間,具體語(yǔ)法格式如下:數(shù)組名=new數(shù)組元素類型[arrayLength1][arrayLength2];從最高維開始,分別為每一維分配空間:數(shù)組名=new數(shù)組元素類型[arrayLength1][];數(shù)組名[0]=new數(shù)組元素類型[arrayLength20];數(shù)組名[1]=new數(shù)組元素類型[arrayLength21];…數(shù)組名[arrayLength1-1]=new數(shù)組元素類型[arrayLength2n];2.3 擴(kuò)展知識(shí)——數(shù)組法3.二維數(shù)組元素的引用與一維數(shù)組相同,二維數(shù)組元素可以通過指定數(shù)組元素下標(biāo)的方式進(jìn)行引用。對(duì)二維數(shù)組中的每個(gè)元素,引用方式為:數(shù)組名[index1][index2]。需要注意的是:在數(shù)組的每一維中,數(shù)組元素的編號(hào)均從0開始,到該維的數(shù)組元素個(gè)數(shù)減1結(jié)束。2.4擴(kuò)展實(shí)例2.4.1編寫步驟首先,通過雙擊Eclipse文件夾中的名為Eclipse的可執(zhí)行文件,就可以啟動(dòng)Eclipse了。然后,開始進(jìn)行Java程序的開發(fā)。1.創(chuàng)建Java項(xiàng)目執(zhí)行“文件→新建→Java項(xiàng)目”,在彈出的“新建Java項(xiàng)目”對(duì)話框中,設(shè)置“項(xiàng)目名”,并在內(nèi)容中設(shè)置項(xiàng)目的保存位置。然后,單擊“完成”按鈕,完成Java項(xiàng)目的創(chuàng)建工作,系統(tǒng)會(huì)在項(xiàng)目的保存位置上創(chuàng)建相應(yīng)的文件夾。2.4擴(kuò)展實(shí)例2.創(chuàng)建Java類執(zhí)行“文件→新建→類”,在彈出的“新建Java類”對(duì)話框中,設(shè)置類名。然后,單擊“完成”按鈕,完成Java類的創(chuàng)建工作,系統(tǒng)會(huì)自動(dòng)在項(xiàng)目文件夾中創(chuàng)建相應(yīng)的文件。2.4擴(kuò)展實(shí)例3.編寫Java類在編輯窗口中,輸入以下Java程序代碼:1 //BubbleSort.java2 publicclassBubbleSort{3 publicstaticvoidmain(Stringargs[]){4 inta[]={27,6,4,8,10,12,89,68,45,37};5 System.out.println("排序前的數(shù)據(jù)序列:");6 printArray(a);7 System.out.println("選擇排序的各趟結(jié)果:");8 sortBubble(a);9 printArray(a);10 }1112 //數(shù)組排序的方法2.4擴(kuò)展實(shí)例13 publicstaticvoidsortBubble(inta[]){14 inthold;15 for(intpass=1;pass<a.length;pass++){16 for(inti=0;i<a.length-1;i++)17 if(a[i]>a[i+1]){18 hold=a[i];19 a[i]=a[i+1];20 a[i+1]=hold;21 }22 printArray(a);23 }2.4擴(kuò)展實(shí)例24 }2526 //打印數(shù)組的方法27 publicstaticvoidprintArray(intb[]){28 for(inti=0;i<b.length;i++)29 System.out.print(""+b[i]);30 System.out.println("");31 }32 }輸入完成后,執(zhí)行“文件→保存”,即可完成在Eclipse下Java程序的編寫工作。2.4擴(kuò)展實(shí)例2.4.2運(yùn)行結(jié)果執(zhí)行“運(yùn)行→運(yùn)行方式→Java應(yīng)用程序”,即可執(zhí)行程序。如果程序尚未保存,Eclipse會(huì)詢問在執(zhí)行前是否要保存文檔,然后執(zhí)行程序。在Eclipse下運(yùn)行Java程序時(shí),通常會(huì)將在命令窗口中顯示的結(jié)果顯示在“控制臺(tái)”中。2.4擴(kuò)展實(shí)例冒泡排序運(yùn)行結(jié)果第3章車輛信息顯示3.1 基礎(chǔ)實(shí)例3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.4擴(kuò)展實(shí)例
引言本章介紹了如何使用java語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,包括類和對(duì)象的關(guān)系,類的實(shí)例化,類的派生和繼承,多重繼承的功能接口以及包等概念,并綜合運(yùn)用上述知識(shí)給出了兩個(gè)簡(jiǎn)單的車輛信息顯示的實(shí)例。3.1 基礎(chǔ)實(shí)例本實(shí)例的功能是通過類及對(duì)象的創(chuàng)建等操作,完成一個(gè)可以顯示小轎車信息的程序。3.1.1編寫步驟在Eclipse中建立一個(gè)小轎車類,在其中定義了小轎車的各種屬性及其方法,并對(duì)小轎車類進(jìn)行實(shí)例化,創(chuàng)建一個(gè)速騰轎車的對(duì)象。設(shè)置速騰轎車對(duì)象的屬性,并執(zhí)行相關(guān)的方法,最后顯示出這個(gè)對(duì)象的各種信息。3.1 基礎(chǔ)實(shí)例程序的源代碼清單1 publicclassCarDisp{//小轎車類2 3 publicstaticvoidmain(String[]args){4 CarDispSagitar=newCarDisp();//創(chuàng)建對(duì)象速騰5 6 Sagitar.color="黑";7 Sagitar.model="速騰";8 Sagitar.horsepower="小";9 Sagitar.manufacturer="一汽大眾";10 11 System.out.println("車輛類型:"+Sagitar.type);……15 System.out.println("生產(chǎn)廠家:"+Sagitar.manufacturer);16 17 System.out.println("當(dāng)前車速:"+Sagitar.speed+"行駛方向:"+Sagitar.direction); ……3.1 基礎(chǔ)實(shí)例34 }35 36 publicStringtype; //車輛類型37 publicStringcolor;//顏色38 publicStringmodel;//型號(hào)39 publicStringhorsepower;//馬力40 publicStringmanufacturer;//生產(chǎn)廠家41 publicintspeed; //速度42 publicStringdirection; //方向43 44 publicCarDisp(){45 type="小轎車";46 direct48 }49 50 publicvoidrun(){ //行駛方法……53 }54 55 publicvoidturnleft(){ //左轉(zhuǎn)彎方法……57 }……78 }3.1 基礎(chǔ)實(shí)例3.1.2運(yùn)行結(jié)果3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)
1.封裝性(Encapsulation)2.繼承(Inheritance)3.多態(tài)性(Polymorphism)3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.2類的建立與聲明類(Class)實(shí)際上是對(duì)某種類型的對(duì)象定義變量和方法的原型。它表示對(duì)現(xiàn)實(shí)生活中一類具有共同特征的事物的抽象,是面向?qū)ο缶幊痰幕A(chǔ)。類是對(duì)某個(gè)對(duì)象的定義。它包含有關(guān)對(duì)象動(dòng)作方式的信息,包括它的名稱、方法、屬性和事件。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)類定義的一般形式如下:限制符class類名{ 類體}類的定義由類頭和類體兩部分組成。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.3 類中的屬性和方法1.屬性屬性就是數(shù)據(jù)成員,它們指定了該類的內(nèi)部表示,其一般由常量或變量組成,比如基礎(chǔ)實(shí)例中第36行到41行,就是類屬性的定義。在類定義中屬性可以賦初值,如果設(shè)置了初始值,實(shí)例化對(duì)象后,對(duì)象中的屬性就會(huì)繼承該值。如果沒有在類定義中設(shè)置初始值,則在實(shí)例化對(duì)象后,要進(jìn)行顯式的賦值操作,否則該值會(huì)為空(null)。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)2.方法方法是包含一系列語(yǔ)句的代碼塊,他們指定了該類的操作方法,方法一般由方法頭和方法體組成,方法的定義如下:限制符返回值類型方法名(參數(shù)類型參數(shù)1,參數(shù)類型參數(shù)2,…){ 方法體}3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.構(gòu)造方法方法中有一個(gè)特殊的應(yīng)用,當(dāng)方法名與類名相同時(shí),這個(gè)方法被稱為構(gòu)造方法,即在對(duì)象被實(shí)例化時(shí)自動(dòng)調(diào)用的一個(gè)方法,一般將需要初始化的語(yǔ)句放在其中。構(gòu)造方法沒有返回值,因此不需要設(shè)置返回值類型,3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.4 類中的訪問權(quán)限1.public修飾符2.private修飾符3.protected修飾符4.friendly修飾符5.修飾符使用時(shí)的注意3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.5對(duì)象所謂對(duì)象就是類的實(shí)例化,一個(gè)對(duì)象就是類中所定義的一組變量和相關(guān)方法的集合。對(duì)象的變量是構(gòu)成對(duì)象的核心,不同對(duì)象的變量是分離的。對(duì)象通過成員變量和類方法進(jìn)行相互間的交流,以實(shí)現(xiàn)各種復(fù)雜的行為。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)1.對(duì)象的聲明對(duì)象的聲明與普通變量的聲明相似,首先指定一個(gè)類名作為這個(gè)對(duì)象的類類型,然后在類名后寫一個(gè)對(duì)象名即可。對(duì)象聲明的例子如下所示:類A對(duì)象A;類B對(duì)象B1,對(duì)象B2;類A實(shí)例化了一個(gè)對(duì)象A,類B實(shí)例化了兩個(gè)對(duì)象B1和B2。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)2.對(duì)象的創(chuàng)建示例中創(chuàng)建了兩個(gè)對(duì)象:對(duì)象A=new類A();對(duì)象B1=new類B(“hello”);3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.訪問對(duì)象中的成員對(duì)象成員的引用方式必須使用運(yùn)算符“.”,數(shù)據(jù)成員和方法的引用格式如下所示:對(duì)象名.數(shù)據(jù)成員名對(duì)象名.方法名(參數(shù)表) 例如基礎(chǔ)實(shí)例中的第6行和第20行等。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.1派生與繼承繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的一種重要手段。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,采用繼承的機(jī)制可以有效地組織程序的結(jié)構(gòu),設(shè)計(jì)系統(tǒng)中的類,明確類間關(guān)系,充分利用已有的類來完成更復(fù)雜、深入的開發(fā),大大提高程序開發(fā)的效率,降低系統(tǒng)維護(hù)的工作量。類繼承也稱為類派生,是指一個(gè)類不需要進(jìn)行任何定義就可以擁有其他類的非私有成員,實(shí)現(xiàn)代碼重用。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)父類與子類的層次關(guān)系
3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.2 方法重載方法重載的引入簡(jiǎn)化程序員的工作,將方法的選擇交由Java系統(tǒng)負(fù)責(zé)。如果沒有重載,在編寫如下語(yǔ)句段為 publicintadd1(inta,intb){ returna+b; } publicfloatadd2(floata,floatb){ returna+b; }現(xiàn)在有了方法重載,就可以將方法名寫成相同的名稱,如下所示: publicintadd(inta,intb){ returna+b; }publicfloatadd(floata,floatb){ returna+b; }3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.3 接口1.接口的定義Java語(yǔ)言中的接口是通過interface關(guān)鍵字來聲明的,其聲明格式如下:interface接口名{ 接口體}3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)一個(gè)清掃設(shè)備接口示例定義:interfaceCleaningEquipment{//清掃設(shè)備接口 publicintCleanerNumber=2; publicvoidCleanBegin(); publicvoidCleanStop();} 3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)2.接口的繼承具體的語(yǔ)法格式為:interface子接口名extends父接口名1,父接口名2{ 接口體}3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.接口的實(shí)現(xiàn)接口中只聲明了方法成員,而沒有給出方法體,這樣還不能在程序中使用,要想使用接口中聲明的方法成員,就必須在實(shí)現(xiàn)接口的類中給出方法體,這個(gè)過程稱為接口的實(shí)現(xiàn)。在類的聲明中,用implements子句來表示實(shí)現(xiàn)某個(gè)或某些接口。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.4包所謂“包”就是一個(gè)設(shè)定的命名集合,它是Java提供的組織類和接口的一種有效工具,定義的類都加入某一個(gè)包中,并作為包的一部分存在,Java類中的成員變量和成員方法都在類中定義,使用包機(jī)制使得每個(gè)Java的變量和方法都可以用全限定的名字來表示,包括包名、類名和成員(方法和變量)名,各部分間用點(diǎn)號(hào)分隔即可。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)1.包的創(chuàng)建創(chuàng)建一個(gè)包非常簡(jiǎn)單,在Java源文件的最開始包含一個(gè)package語(yǔ)句即可。其語(yǔ)法格式如下:package包名;為了更好地使用包中的類,可以創(chuàng)建不同層次的包,這通常是由不同包的功能分類決定的。采用下面的形式可以創(chuàng)建一個(gè)包的層次結(jié)構(gòu):packagep1[.p2[.p3]];3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)2.包的使用定義好的包可以通過import語(yǔ)句來引用。在Java源文件中,import語(yǔ)句需要放在package語(yǔ)句之后,但在其他任何類定義之前。importpackage1[.package2].(classname|*);3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.Java的常用包⑴java.lang包⑵java.io包⑶java.util包⑷包⑸java.awt包⑹java.awt.image包⑺java.applet包⑻java.text包⑼java.beans包3.4擴(kuò)展實(shí)例
3.4.1 編寫步驟在Eclipse中新建立一個(gè)項(xiàng)目CarDisp2,并在其中增加類文件CarDisp2.java,然后在其中輸入語(yǔ)句。3.4擴(kuò)展實(shí)例
3.4.2調(diào)試與運(yùn)行編寫完成后,測(cè)試并運(yùn)行程序,運(yùn)行結(jié)果如圖。第4章計(jì)算器4.1 基礎(chǔ)實(shí)例4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.3 基礎(chǔ)知識(shí)(二)——事件處理4.4擴(kuò)展知識(shí)——異常處理4.5擴(kuò)展實(shí)例
引言本章介紹了Java圖形用戶界面(GUI)和事件處理的基礎(chǔ)知識(shí),包括圖形用戶界面中AWT和Swing兩個(gè)類庫(kù)中常用的容器和組件等;各類常用的事件處理機(jī)制。同時(shí)還介紹了異常處理機(jī)制在Java語(yǔ)言中的應(yīng)用,并綜合運(yùn)用上述內(nèi)容完成計(jì)算器的實(shí)例。4.1 基礎(chǔ)實(shí)例本實(shí)例是一個(gè)簡(jiǎn)易計(jì)算器,功能是可對(duì)數(shù)字進(jìn)行加(+)、減(-)、乘(*)、除(/)簡(jiǎn)單算術(shù)計(jì)算。
4.1.1編寫步驟在Eclipse中建立一個(gè)項(xiàng)目,名稱為Calculator,在項(xiàng)目中建立一個(gè)類文件,名稱與項(xiàng)目名相同,在類文件中輸入相應(yīng)的程序代碼。4.1 基礎(chǔ)實(shí)例4.1.2運(yùn)行結(jié)果編寫完成后,可以測(cè)試程序的運(yùn)行結(jié)果。首先通過單擊按鈕選擇數(shù)值1,單擊運(yùn)算符號(hào)選擇做什么運(yùn)算,再選擇數(shù)值2,最后單擊等號(hào)按鈕,得出數(shù)值1和數(shù)值2運(yùn)算了后的結(jié)果。4.1 基礎(chǔ)實(shí)例計(jì)算器程序界面4.1 基礎(chǔ)實(shí)例本程序的主要功能:使用鼠標(biāo)單擊數(shù)字按鈕,上方文本區(qū)會(huì)對(duì)應(yīng)顯示出應(yīng)數(shù)字內(nèi)容。單擊”C”按鈕可以清空顯示回復(fù)0顯示。當(dāng)單擊對(duì)應(yīng)的運(yùn)算符號(hào)時(shí),如果是第一次計(jì)算則會(huì)等待用戶選擇第二個(gè)數(shù)值,如果已經(jīng)計(jì)算過則把前面的結(jié)果顯示出來后,把結(jié)果作為第一個(gè)數(shù)值再進(jìn)行計(jì)算。當(dāng)單擊等號(hào)按鈕,對(duì)前面選擇的數(shù)值和運(yùn)算符進(jìn)行運(yùn)算得出結(jié)果??梢园呀Y(jié)果繼續(xù)用于計(jì)算,也可以再單擊其他數(shù)值進(jìn)行下一次的運(yùn)算。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器圖形用戶界面GUI(GraphicalUserInterface)是程序提供給用戶操作的圖形界面。包括窗口、菜單、按鈕、文本區(qū)、復(fù)選框和其它各種屏幕元素。Java中提供了AWT和Swing兩個(gè)類庫(kù)為GUI設(shè)計(jì)提供了豐富的功能。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.2.1 容器1.面板2.窗口(Window)3.框架(Frame)4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.2.2AWT常用組件4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器1.框架(Frame)用Frame創(chuàng)建一個(gè)Windows窗口,用于存放其它的組件,通過add()方法向容器中添加。代碼:Framef;//創(chuàng)建一個(gè)框架f=ewFrame(“窗口標(biāo)題名稱”);//實(shí)例化窗口對(duì)象f4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Frame類常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器2.標(biāo)簽(Label)標(biāo)簽是顯示文本的組件,可以顯示單行的字符串,起著傳遞消息的作用。用戶不能對(duì)其進(jìn)行修改,只能查看其內(nèi)容。代碼:LabelmyLabel;//創(chuàng)建一個(gè)標(biāo)簽myLabel=newLabel(“標(biāo)簽文字”);//實(shí)例化標(biāo)簽對(duì)象,設(shè)置標(biāo)簽文字添加標(biāo)簽f.add(myLabel);//把標(biāo)簽添加到容器f中。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Label類常用的構(gòu)造方法和常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器3.按鈕(Button)按鈕是用來觸發(fā)特定動(dòng)作的組件。當(dāng)用戶用鼠標(biāo)單擊按鈕時(shí),系統(tǒng)會(huì)自動(dòng)執(zhí)行與該按鈕相聯(lián)系的程序,從而完成預(yù)先制定的功能。代碼:ButtonmyButton;myButton=newButton(“按鈕”);//實(shí)例化按鈕添加標(biāo)簽f.add(myButton);//把按鈕添加到容器f中。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Button類常用的構(gòu)造方法和常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.文本框(TextField)用來接收用戶通過鍵盤輸入的單行文本信息。通過事件處理機(jī)制,程序可以使用這些文本或數(shù)據(jù)信息。代碼:TextFieldmyTextField;myTextField=newTextField(“顯示的文本”,10);//實(shí)例化單行文本,并指定初始化文字和寬度為容納10個(gè)字符。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextField類常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextField類常用的方法及其說明代碼myTextField.getText();myTextField.setText(“新文本內(nèi)容”);//設(shè)置文本框顯示的文本。myTextField.setEditable(false);//設(shè)置文本框內(nèi)容不能再編輯。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器5.文本域(TextArea)用來接收用戶通過鍵盤輸入的多行文本信息。代碼:TextAreamyTextArea;myTextArea=newTextArea(“顯示的文本”,10,3);//實(shí)例化多行文本區(qū),并指定初始化文字和該文本區(qū)的行數(shù)和列數(shù)。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextArea類常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextArea類常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器6.復(fù)選框(Checkbox)復(fù)選框可以讓用戶進(jìn)行多項(xiàng)選擇。復(fù)選框有兩種狀態(tài),分別為“開”和“關(guān)”。當(dāng)用戶點(diǎn)中復(fù)選框時(shí)候,復(fù)選框的狀態(tài)就會(huì)改變。代碼:CheckboxmyCheckbox;myCheckbox=newCheckbox(“復(fù)選框”);//創(chuàng)建復(fù)選框,并指定復(fù)選框的標(biāo)簽內(nèi)容。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Checkbox類常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器7.單選按鈕組(CheckboxGroup)單選按鈕是在復(fù)選框的基礎(chǔ)上創(chuàng)建的。單選按鈕的選擇是互斥的,當(dāng)用戶選中了組中的一個(gè)按鈕后,其他按鈕自動(dòng)處于未選中狀態(tài)。代碼:CheckboxGroupmyCheckboxGroup=newCheckboxGroup();//創(chuàng)建一個(gè)單選按鈕組CheckboxmyCheckbox1=newCheckbox(“單選1”,myCheckboxGroup,true);//創(chuàng)建一個(gè)復(fù)選框1,并把其加入到上面創(chuàng)建的單選按鈕組中,設(shè)置默認(rèn)為選中狀態(tài)。CheckboxmyCheckbox2=newCheckbox(“單選2”,myCheckboxGroup,false);//創(chuàng)建一個(gè)復(fù)選框2,加入單選按鈕組中,設(shè)置默認(rèn)狀態(tài)為未選中狀態(tài)。最后將組件放置到容器中時(shí),只把復(fù)選框添加即可f.add(myCheckbox1);//向f中添加復(fù)選框?qū)ο螅皇菃芜x按鈕組。f.add(myCheckbox2);4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器CheckboxGrou類常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器8.下拉列表(Choice)下拉列表的選項(xiàng)框每次只能顯示一個(gè)選項(xiàng)。如果希望查看或選擇其他的選項(xiàng),需點(diǎn)擊下拉列表右邊的下箭頭,并從選項(xiàng)框中選擇一個(gè)選項(xiàng)。代碼:ChoicemyChoice=newChoice();//創(chuàng)建下拉列表myChoice.addItem(“下拉列表一”);//向下拉列表中添加列表項(xiàng)myChoice.addItem(“下拉列表二”);……添加標(biāo)簽f.add(myChoice);//把下拉列表添加到容器f中4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Choice類常用的構(gòu)造方法和常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器9.列表框(List)4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器10.菜單(Menu)完整的菜單系統(tǒng)由菜單條、菜單和菜單項(xiàng)組成,其對(duì)應(yīng)的類分別是:MenuBar、Menu和MenuItem。一個(gè)菜單的組成如圖4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Menu類常用的構(gòu)造方法及其說明4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.2.3Swing常用組件1.標(biāo)簽類(JLabel)2.文本輸入框(JTextField)3.密碼框輸入框(JPasswordField)4.文本區(qū)(JTextArea)5.按鈕類(JButton)6.單選按鈕(JRadioButton)和多選按鈕(JCheckBox)7.列表(JList)8.下拉列表(JComboBox)9.對(duì)話框(JDialog)4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.2.4布局管理
1.FlowLayout布局 4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器2.BorderLayout布局4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器3.GridLayout布局4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.CardLayout布局4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器5.自由布局如果把容器的布局設(shè)置為null布局(空布局),則通過所有組件都擁有的方法:publicvoidsetBounds(intx,inty,intwidth,intheight);可設(shè)置組件在容器中的位置和大小。參數(shù)x和y指定組件左上角在容器中的坐標(biāo),參數(shù)width和height指定組件的寬和高,單位為像素。4.3 基礎(chǔ)知識(shí)(二)——事件處理事件有三個(gè)重要概念:事件:用戶對(duì)組件的一個(gè)操作,稱之為一個(gè)事件。例如鼠標(biāo)單擊或鍵盤的操作。事件源:發(fā)生事件的組件就是事件源。例如不同的組件像按鈕Button、復(fù)選框Checkbox等。事件處理器:負(fù)責(zé)處理事件的方法。例如接受到按鈕單擊事件,并對(duì)這個(gè)事件進(jìn)行處理。4.3 基礎(chǔ)知識(shí)(二)——事件處理事件類和相應(yīng)的接口總結(jié)4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.1 事件類1.高級(jí)事件ActionEvent(動(dòng)作事件):對(duì)應(yīng)的事件為按鈕按鈕下,文本框中按下回車鍵。AdjjustmentEvent(調(diào)節(jié)事件):對(duì)應(yīng)的事件為滾動(dòng)條移動(dòng)滑塊調(diào)節(jié)數(shù)值。ItemEvent(項(xiàng)目事件):對(duì)應(yīng)事件為選擇項(xiàng)目。TextEvent(文本事件):對(duì)應(yīng)的事件為文本對(duì)象改變。4.3 基礎(chǔ)知識(shí)(二)——事件處理2.低級(jí)事件ComponentEvent(構(gòu)件事件):對(duì)應(yīng)的事件為構(gòu)件尺寸的變化、移動(dòng)。ContainerEvent(容器事件):對(duì)應(yīng)的事件為構(gòu)件增加移動(dòng)。FocusEvent(焦點(diǎn)事件):對(duì)應(yīng)的事件為焦點(diǎn)獲得和丟失。KeyEvent(鍵盤事件):對(duì)應(yīng)事件為鍵盤按鍵的按下、釋放。MouseEvent(鼠標(biāo)事件):對(duì)應(yīng)事件為鼠標(biāo)的單擊、移動(dòng)等。WindowEvent(窗口事件):關(guān)閉窗口、窗口最小化等。4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.2 事件監(jiān)聽器和事件適配器每類事件都有對(duì)應(yīng)的事件監(jiān)聽器,監(jiān)聽是是一種接口,要根據(jù)程序?qū)嶋H情況來定義方法。在上面小節(jié)程序中,窗口不能正常關(guān)閉,因?yàn)闆]有對(duì)窗口事件進(jìn)行處理,下面通過實(shí)例來實(shí)現(xiàn)窗口的關(guān)閉。窗口事件相對(duì)應(yīng)的接口是:publicinterfaceWindowListenerextendsEventListener{publicvoidwindowOpened(WindowEvente);//打開窗口時(shí)調(diào)用publicvoidwindowClosing(WindowEvente);//退出窗口時(shí)調(diào)用publicvoidwindowClosed(WindowEvente);//窗口關(guān)閉時(shí)調(diào)用publicvoidwindowIconified(WindowEvente);//窗口圖標(biāo)化時(shí)調(diào)用publicvoidwindowDecionified(WindowEvente);//窗口非圖標(biāo)化時(shí)調(diào)用publicvoidwindowActivated(WindowEvente);//窗口激活時(shí)調(diào)用publicvoidwindowDeactivated(WindowEvente);//窗口非激活時(shí)調(diào)用}4.3 基礎(chǔ)知識(shí)(二)——事件處理Java中定義的事件適配器類包括:ComponentAdapter,構(gòu)件適配器ContainerAdapter,容器適配器FocusAdapter,焦點(diǎn)適配器KeyAdapter,鍵盤適配器MouseAdapter,鼠標(biāo)適配器MouseMotionAdapter,鼠標(biāo)運(yùn)動(dòng)適配器WindowAdapter,窗口適配器4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.3 常見的事件及其相應(yīng)的接口4.3 基礎(chǔ)知識(shí)(二)——事件處理接上頁(yè)4.4擴(kuò)展知識(shí)——異常處理4.4.1異常的概述Java語(yǔ)言把程序運(yùn)算中可能遇到的錯(cuò)誤分為兩類,一類是非致命性的,通過某種修正后程序還能繼續(xù)執(zhí)行,比如對(duì)負(fù)數(shù)開平方根、空指針訪問、試圖讀取不存在的文件、網(wǎng)絡(luò)連接中斷等;另一類是致命性的,程序遇到了非常嚴(yán)重的不正常狀態(tài),不能簡(jiǎn)單的恢復(fù)執(zhí)行,比如程序中內(nèi)容耗盡等。在程序編譯或運(yùn)行中所發(fā)生的可預(yù)料或不可預(yù)料的錯(cuò)誤事件,它會(huì)引起程序的中斷,影響程序的正常運(yùn)行,這在Java語(yǔ)言中稱為異常(Exception)。4.4擴(kuò)展知識(shí)——異常處理常見異常類4.4擴(kuò)展知識(shí)——異常處理4.4.2 異常的捕獲與處理在程序中添加異常的處理機(jī)制,在異常產(chǎn)生時(shí)將危害減到最小。異常主要處理的是Exception類,Error是程序本身問題,不能處理。常用關(guān)鍵字:try、catch和finally。其語(yǔ)法結(jié)構(gòu)是:try{<可能產(chǎn)生異常的程序代碼段>}catch(<要捕捉的異常類><變量名稱>){<處理這個(gè)異常的程序代碼段>}finally{<必須運(yùn)行的代碼段>}4.4擴(kuò)展知識(shí)——異常處理4.4.3拋出異常拋出異常是Java中處理異常的第二種方式。如果一個(gè)方法(中的語(yǔ)句執(zhí)行時(shí))可能生成某種異常,但是并不能確定如何處理這種異常,則此方法應(yīng)聲明拋棄異常,表明該方法將不對(duì)這些異常進(jìn)行處理,而由該方法的調(diào)用者負(fù)責(zé)處理。拋出異常使用throws關(guān)鍵字來進(jìn)行處理,throws是在方法名后標(biāo)出該方法所產(chǎn)生何種異常的集合(通常比較多,可以用逗號(hào)隔開);即此方法如果內(nèi)部產(chǎn)生未經(jīng)處理的異常就會(huì)向外拋出。4.4擴(kuò)展知識(shí)——異常處理4.4.4用戶自定義異常如果JavaAPI中已經(jīng)定義好的異常類不能完全滿足程序的需求,那么還可以自己定義異常類。用戶自定義的異常類,只要去繼承某個(gè)原有的Exception類,然后加上兩個(gè)構(gòu)造函數(shù),一個(gè)需要傳遞一個(gè)字符串參數(shù),另外一個(gè)不需要參數(shù),然后在構(gòu)造函數(shù)中再往上調(diào)用父類的構(gòu)造函數(shù),把參數(shù)再往上傳即可。4.5擴(kuò)展實(shí)例4.5.1編寫步驟(略)4.5.2調(diào)試與運(yùn)行運(yùn)行結(jié)果與計(jì)算機(jī)的界面一樣。但當(dāng)除數(shù)分母為零時(shí),會(huì)有提示。第5章文本編輯器5.1 基礎(chǔ)實(shí)例5.2基礎(chǔ)知識(shí)(一)——菜單5.3基礎(chǔ)知識(shí)(二)——對(duì)話框5.4擴(kuò)展知識(shí)——輸入輸出流5.5擴(kuò)展實(shí)例
引言本章介紹了Java文件操作的基礎(chǔ)知識(shí),包括輸入輸出流、文件的操作。以及如何建立菜單和設(shè)置菜單功能,建立對(duì)話框等功能。并綜合運(yùn)用上述內(nèi)容給出了一個(gè)文本編輯器的實(shí)例。5.1 基礎(chǔ)實(shí)例本章構(gòu)造實(shí)現(xiàn)了一個(gè)文本編輯器,類似于常見的記事本或?qū)懽职暹@樣的文本編輯器,并提供其簡(jiǎn)化的功能。此編輯器功能包括:所見即所得的文本輸入。方便的選中文本、復(fù)制文本、刪除文本、插入文本的功能。簡(jiǎn)單的排版功能,如設(shè)置字體、字號(hào)等。5.1 基礎(chǔ)實(shí)例5.1.1編寫步驟1、主類MyEditor.java源代碼清單2.設(shè)置顏色程序SetColor.java源代碼清單3.設(shè)置字體程序SetFont.java源代碼清單5.1 基礎(chǔ)實(shí)例5.1.2 運(yùn)行結(jié)果
·運(yùn)行主類MyEditor.java,在命令行鍵入javaMyEditor或在IDE里選擇運(yùn)行項(xiàng)目,呈現(xiàn)給用戶的主界面
·在菜單選項(xiàng)中,選取設(shè)置字體
·選取設(shè)置顏色5.2基礎(chǔ)知識(shí)(一)——菜單5.2.1建立菜單5.2基礎(chǔ)知識(shí)(一)——菜單菜單項(xiàng)的常用方法5.2基礎(chǔ)知識(shí)(一)——菜單5.2.2設(shè)置菜單功能執(zhí)行下面代碼生成菜單界面。//加入菜單條fr.setJMenuBar(mb);//加入菜單mb.add(menuFile);//加入菜單項(xiàng)menuFile.add(menuFileNew); menuFile.add(menuFileClose);//加入分隔符menuFile.addSeparator();5.2基礎(chǔ)知識(shí)(一)——菜單示例代碼如下://當(dāng)菜單中選擇關(guān)閉時(shí)elseif(ae.getSource()==menuFileClose){ta.replaceRange("",0,ta.getText().length());fileStatus.setText("文件狀態(tài):Fileclosedwithoutsave|");fns=null;}5.3基礎(chǔ)知識(shí)(二)——對(duì)話框5.3.1 標(biāo)準(zhǔn)對(duì)話框1.FileDialog類2.消息對(duì)話框3.確認(rèn)對(duì)話框5.3基礎(chǔ)知識(shí)(二)——對(duì)話框5.3.2 用戶自定義對(duì)話框常用的對(duì)話框界面相似,顯示的信息也很簡(jiǎn)單。如果想要設(shè)計(jì)更為復(fù)雜一些的對(duì)話框,可以通過擴(kuò)展JDialog類來創(chuàng)建。5.3基礎(chǔ)知識(shí)(二)——對(duì)話框關(guān)于對(duì)話框5.4擴(kuò)展知識(shí)——輸入輸出流5.4.1 輸入輸出流類1、BufferedReader類主要方法5.4擴(kuò)展知識(shí)——輸入輸出流2、InputStreamReader類這是InputStream和Reader之間的橋梁,由于System.in是字節(jié)流,需要用它來包裝之后變?yōu)樽址鞴┙oBufferedReader使用。5.4擴(kuò)展知識(shí)——輸入輸出流3、PrintWriter類用于向文本輸出流打印對(duì)象的格式化表示形式。PrintWriterout1=newPrintWriter(newBufferedWriter(newFileWriter("IODemo.out")));5.4擴(kuò)展知識(shí)——輸入輸出流5.4.2 文件5.4擴(kuò)展知識(shí)——輸入輸出流File類常用方法5.5擴(kuò)展實(shí)例5.5.1 編寫步驟1.在MyEditor.java加入聲明JMenuItemmenuFileOpen,menuFileSave;2.在MyEditor.java布局方法中加入新的組件及事件3.在MyEditor.java的actionPerformend()方法中加入新的事件處理5.5擴(kuò)展實(shí)例
5.5.2 調(diào)試與運(yùn)行擴(kuò)展實(shí)例加入的功能運(yùn)行結(jié)果第6章賽馬游戲6.1 基礎(chǔ)實(shí)例6.2 基礎(chǔ)知識(shí)——圖形處理6.3 擴(kuò)展知識(shí)——多線程6.4擴(kuò)展實(shí)例引言本章介紹了Java線程的基礎(chǔ)知識(shí),使讀者了解如何利用線程來完成“同時(shí)”做多件事的方法,以及如何在此過程中對(duì)線程進(jìn)行控制,并綜合運(yùn)用上述內(nèi)容給出一個(gè)利用多線程方法編程的賽馬游戲?qū)嵗?.1 基礎(chǔ)實(shí)例6.1.1編寫步驟在Eclipse中建立一個(gè)項(xiàng)目,項(xiàng)目名稱為Racing,并在項(xiàng)目中建立一個(gè)文件包(Package),名為com,然后在上文件包中建立以下類。賽馬類程序Racing.java主要代碼清單6.1 基礎(chǔ)實(shí)例6.1.2 運(yùn)行結(jié)果編寫完成后,可以測(cè)試程序的運(yùn)行結(jié)果6.2 基礎(chǔ)知識(shí)——圖形處理6.2.1 框架(Jframe)
1.JFrame類的構(gòu)造方法2.JFrame類的常用成員方法3.創(chuàng)建并顯示框架6.2 基礎(chǔ)知識(shí)——圖形處理6.2.2 簡(jiǎn)單圖形Graphics類中繪制圖形的方法。drawLine(intx1,inty1,intx2,inty2)//繪制一條線段,從(x1,y1)至(x2,y2)drawOval(intx,inty,intw,inth)//繪制空心橢圓,其中x,y為左上角坐標(biāo)值;w,h表示半線,當(dāng)w=h時(shí),即為圓形fillOval(intx,inty,intw,inth)//繪制實(shí)心橢圓,參與與上例意義一樣drawRect(intx,inty,intw,inth)//繪制一個(gè)空心矩形fillRect(intx,inty,intw,inth)//繪制一個(gè)填充顏色的矩形drawRoundRect(intx,inty,intw,inth,intaw,intah)//繪制一個(gè)圓角矩形fillRoundRect(intx,inty,intw,inth)//繪制一個(gè)圓角填充顏色的矩形6.2 基礎(chǔ)知識(shí)——圖形處理上述方法的實(shí)際應(yīng)用: publicclassDraw_picextendsJFrame{ publicDraw_pic(){ Containercon=getContentPane(); con.add(newDrawPanel()); } publicstaticvoidmain(String[]args){ Draw_picframe=newDraw_pic(); frame.setSize(400,500); frame.setVisible(true); }6.2 基礎(chǔ)知識(shí)——圖形處理classDrawPanelextendsJPanel{ publicvoidpaintComponent(Graphicsg){ g.drawRect(10,10,20,20); g.fillRect(30,30,40,40); g.drawOval(100,120,100,100); g.fillOval(160,160,40,40); g.drawRoundRect(80,10,100,50,10,10);
intx[]={225,290,210,275,250}; inty[]={90,40,40,90,10};
g.setColor(Color.green); g.drawPolygon(x,y,x.length); g.drawLine(100,280,200,360); } } }6.2 基礎(chǔ)知識(shí)——圖形處理簡(jiǎn)單圖形運(yùn)行結(jié)果6.2 基礎(chǔ)知識(shí)——圖形處理6.2.3 顏色JAVA的java.awt.Color類為GUI件設(shè)置顏色。顏色中的R(紅)、G(綠)、B(藍(lán))為三原色的比例。一個(gè)RGB值由三部分組成,第一個(gè)RGB部分定義紅色的量;第二個(gè)定義綠色的量;第三個(gè)定義藍(lán)色的量。1.Color類的構(gòu)造方法如下:publicColor(intr,intg,intb);//使用在0-255范圍內(nèi)的整數(shù)指定紅、綠、藍(lán)三種顏色的比例來創(chuàng)建一種Color對(duì)象publicColor(floatr,floatg,floatb);//使用0.0-1.0范圍內(nèi)的浮點(diǎn)數(shù)指定紅、綠、藍(lán)三種顏色的比例來創(chuàng)建一種Color對(duì)象publicColor(intrgb);//使用指定的組合RGB值建一種Color對(duì)象6.2 基礎(chǔ)知
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年供水系統(tǒng)季度維護(hù)保養(yǎng)合同
- 2025年居民小區(qū)停車場(chǎng)策劃與建設(shè)協(xié)議書
- 2025年俄語(yǔ)外教勞動(dòng)合同范文
- 2025年亞洲區(qū)域基礎(chǔ)設(shè)施投資協(xié)議
- 2025年全球海運(yùn)合同實(shí)務(wù)解析
- 2025年醫(yī)聯(lián)體定點(diǎn)醫(yī)院合作協(xié)議模板
- 2025年企業(yè)聯(lián)合合作協(xié)議書版
- 2025年雙方無子女離婚協(xié)議書規(guī)范
- 2025年合作方保密協(xié)議范例
- 2025年邵陽(yáng)貨運(yùn)從業(yè)資格證考試模擬考試題庫(kù)
- 最新變態(tài)心理學(xué)課件
- 《民航飛機(jī)自動(dòng)飛行控制系統(tǒng)》課件合集
- 工程洽商記錄表格
- 橋梁施工常見問題及預(yù)防控制要點(diǎn)(PPT,46)
- 中俄文一般貿(mào)易合同范本
- 2021最新版三年級(jí)下冊(cè)生命-生態(tài)-安全教案
- 【自考練習(xí)題】石家莊學(xué)院概率論與數(shù)理統(tǒng)計(jì)真題匯總(附答案解析)
- 市政管道頂管施工技術(shù)的發(fā)展歷史(45頁(yè))
- 依戀理論之母嬰依戀
- 電氣CAD-電氣圖基本知識(shí)
- 混合痔的治療PPT課件
評(píng)論
0/150
提交評(píng)論