版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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章車(chē)輛信息顯示第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集成開(kāi)發(fā)環(huán)境1.4擴(kuò)展實(shí)例
引言
Java是一種簡(jiǎn)單易用、完全面向?qū)ο?、安全可靠、主要面向Internet且具有最棒的跨平臺(tái)可移植性的開(kāi)發(fā)工具。從現(xiàn)在開(kāi)始,Java將帶領(lǐng)讀者進(jìn)入一個(gè)全新的領(lǐng)域。本章將主要通過(guò)一些比較簡(jiǎn)單的實(shí)例,使讀者對(duì)于Java能有一個(gè)初步的認(rèn)識(shí),掌握J(rèn)ava程序設(shè)計(jì)中最基礎(chǔ)的知識(shí)。1.1基礎(chǔ)實(shí)例1.1.1編寫(xiě)步驟首先,執(zhí)行“開(kāi)始→所有程序→附件→記事本”。然后,在記事本中輸入以下內(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í)行“開(kāi)始→運(yùn)行”,在彈出的“運(yùn)行”對(duì)話框中,輸入“cmd”,單擊“確定”按鈕或執(zhí)行“開(kāi)始→所有程序→附件→命令提示符”。在命令窗口中,使用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的開(kāi)發(fā)運(yùn)行環(huán)境SUN公司提供了自己的一套Java開(kāi)發(fā)環(huán)境,通常稱(chēng)之為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)的版本。本書(shū)中所使用的都是基于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í)行過(guò)程1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)Java小應(yīng)用程序的執(zhí)行過(guò)程1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)1.2.3Java的基本語(yǔ)法格式1.標(biāo)識(shí)符在Java語(yǔ)言中,標(biāo)識(shí)符用于為各種變量、數(shù)組、方法、類(lèi)、對(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器用來(lái)創(chuàng)建標(biāo)識(shí)符的名字。Java標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫(xiě)。用戶(hù)不能直接使用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í)符的命名最好能夠做到“見(jiàn)名知義”,而且規(guī)范大小寫(xiě)的使用方式。通常情況下,對(duì)于標(biāo)識(shí)符有以下一些風(fēng)格約定:_和$一般不作為變量名,方法名的開(kāi)頭。包名:全部小寫(xiě),例如java、applet、awt等。接口名、類(lèi)名:每個(gè)單詞的首字母都要大寫(xiě),例如MyFirstJavaApplication、System、Graphics等。變量名、對(duì)象名、方法名:第一個(gè)單詞全部小寫(xiě),其余單詞只有首字母大寫(xiě),例如anyVariableWorld、drawString等。常量名:全部大寫(xiě),例如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í)符來(lái)使用。所有的Java關(guān)鍵字一律用小寫(xiě)字母表示。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)鍵字之中,也就是說(shuō),要保證程序中最基本元素的完整性。注釋不會(huì)影響程序的執(zhí)行結(jié)果,編譯器將忽略注釋。在Java中,主要有以下三種注釋形式:?jiǎn)涡凶⑨專(zhuān)?/注釋部分──只對(duì)當(dāng)前行有效多行注釋?zhuān)?*注釋部分*/文檔注釋?zhuān)?**注釋部分*/1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)⑵空白符空白符包括空格、回車(chē)、換行和制表符(Tab鍵)。各種Java基本成分之間的多個(gè)空白符與一個(gè)空白符的作用相同。在編譯過(guò)程中,編譯器會(huì)忽略空白符。在程序中適當(dāng)?shù)氖褂每瞻追?,可以增?qiáng)程序的可讀性。1.2基礎(chǔ)知識(shí)——Java程序設(shè)計(jì)基礎(chǔ)⑶普通分隔符普通分隔符具有確定的含義,不能用錯(cuò)。它主要包括四種分隔符:{}大括號(hào):用于定義語(yǔ)句塊,例如:定義類(lèi)體、方法體和復(fù)合語(yǔ)句以及數(shù)組的初始化等。;分號(hào):用于作為語(yǔ)句結(jié)束的標(biāo)志。,逗號(hào):用于區(qū)分方法的各個(gè)參數(shù),區(qū)分變量說(shuō)明的各個(gè)變量。:冒號(hào):用于作為語(yǔ)句的標(biāo)號(hào)1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境1.3.1JCreatorJCreator是一個(gè)小巧靈活的Java程序開(kāi)發(fā)工具,也是一個(gè)Java集成開(kāi)發(fā)環(huán)境。它可將Java程序的編寫(xiě)、編譯、運(yùn)行和調(diào)試集成進(jìn)自身的環(huán)境中直接進(jìn)行開(kāi)發(fā),且無(wú)需進(jìn)行環(huán)境變量的設(shè)置。在功能上與SUN公司所公布的JDK等文字模式開(kāi)發(fā)工具相較之下來(lái)得容易,還允許使用者自定義操作窗口界面及無(wú)限Undo/Redo等功能。1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境JCreator操作界面
1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境1.3.2JBuilderJBuilder主要的特點(diǎn)有:⑴JBuilder支持最新的Java技術(shù),包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的應(yīng)用。⑵用戶(hù)可以自動(dòng)地生成基于后端數(shù)據(jù)庫(kù)表的EJBJava類(lèi),JBuilder同時(shí)還簡(jiǎn)化了EJB的自動(dòng)部署功能。⑶JBuilder支持各種應(yīng)用服務(wù)器。⑷JBuilder能用Servlet和JSP開(kāi)發(fā)、調(diào)試動(dòng)態(tài)Web應(yīng)用。⑸利用JBuilder可以創(chuàng)建(沒(méi)有專(zhuān)有代碼和標(biāo)記)純Java2應(yīng)用。⑹JBuilder擁有專(zhuān)業(yè)化的圖形調(diào)試界面,支持遠(yuǎn)程調(diào)試和多線程調(diào)試,調(diào)試器支持各種JDK版本,包括J2ME、J2SE和J2EE。1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境
JBuilder操作界面
1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境1.3.3Eclipse和MyEclipse1.Eclipse⑴概述Eclipse是著名的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE)。Eclipse是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。Eclipse的前身是IBM的VisualAgeforJava。Eclipse是可擴(kuò)展的體系結(jié)構(gòu),可以集成不同軟件開(kāi)發(fā)供應(yīng)商開(kāi)發(fā)的產(chǎn)品,將他們開(kāi)發(fā)的工具和組件加入到Eclipse平臺(tái)中。1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境⑵Eclipse的結(jié)構(gòu)和內(nèi)核Eclipse本身作為一個(gè)開(kāi)放源碼的軟件項(xiàng)目,它主要包含3個(gè)子項(xiàng)目:平臺(tái)子項(xiàng)目、Java開(kāi)發(fā)工具(JDT-java)子項(xiàng)目和插件開(kāi)發(fā)環(huán)境(PDE-plug-in)子項(xiàng)目。Eclipse目前的最新版本為Eclipse3.5.2。1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境2.MyEclipseMyEclipse是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java,J2EE的Eclipse插件集合。MyEclipse目前支持JavaServlet、AJAX、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC數(shù)據(jù)庫(kù)鏈接工具等多項(xiàng)功能。可以說(shuō)MyEclipse幾乎囊括了目前所有主流開(kāi)源產(chǎn)品的專(zhuān)屬eclipse開(kāi)發(fā)工具。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱(chēng)MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML、Struts、JSF、CSS、Javascript、SQL、Hibernate。1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類(lèi):⑴J2EE模型⑵WEB開(kāi)發(fā)工具⑶EJB開(kāi)發(fā)工具⑷應(yīng)用程序服務(wù)器的連接器⑸J2EE項(xiàng)目部署服務(wù)⑹數(shù)據(jù)庫(kù)服務(wù)⑺MyEclipse整合幫助1.3擴(kuò)展知識(shí)——常用的Java集成開(kāi)發(fā)環(huán)境
MyEclipse操作界面
1.4擴(kuò)展實(shí)例在本節(jié)中,將使用Eclipse來(lái)開(kāi)發(fā)一個(gè)簡(jiǎn)單的Java應(yīng)用程序。通過(guò)實(shí)例,請(qǐng)讀者熟悉一下Eclipse開(kāi)發(fā)環(huán)境,本書(shū)后面都會(huì)使用Eclipse來(lái)進(jìn)行相應(yīng)的開(kāi)發(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類(lèi)執(zhí)行“文件→新建→類(lèi)”,在彈出的“新建Java類(lèi)”對(duì)話框中,設(shè)置類(lèi)名。然后,單擊“完成”按鈕,完成Java類(lèi)的創(chuàng)建工作,系統(tǒng)會(huì)自動(dòng)在項(xiàng)目文件夾中創(chuàng)建相應(yīng)的文件。1.4擴(kuò)展實(shí)例
4.編寫(xiě)Java類(lèi)在編輯窗口中,輸入以下Java程序代碼:1 //MyFirstJavaApplication1.java2 importjavax.swing.JOptionPane;3 publicclassMyFirstJavaApplication1{4 publicstaticvoidmain(Stringargs[]){5 JOptionPane.showMessageDialog(null,"你好,Java!");6 }7 }輸入完成后,執(zhí)行“文件→保存”,即可完成在Eclipse下第一個(gè)Java程序的編寫(xiě)工作。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ì)詢(xún)問(wèn)在執(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í)例
引言通過(guò)上一章的學(xué)習(xí),讀者對(duì)于Java已經(jīng)有了一個(gè)初步認(rèn)識(shí),掌握了Java程序設(shè)計(jì)的基礎(chǔ)知識(shí)。本章中,將通過(guò)一個(gè)比較數(shù)值大小的實(shí)例來(lái)進(jìn)一步學(xué)習(xí)Java語(yǔ)言的基本語(yǔ)法規(guī)則,從而讓讀者能夠使用Java開(kāi)發(fā)工具編寫(xiě)出一個(gè)具備數(shù)值比較功能的Java程序。2.1基礎(chǔ)實(shí)例現(xiàn)在將編寫(xiě)一個(gè)Java應(yīng)用程序,主要用于實(shí)現(xiàn)兩個(gè)數(shù)大小的比較,并給出比較結(jié)果。通過(guò)實(shí)例,讀者將進(jìn)一步學(xué)習(xí)Java語(yǔ)言的基本語(yǔ)法規(guī)則。2.1基礎(chǔ)實(shí)例2.1.1編寫(xiě)步驟1.啟動(dòng)Eclipse2.創(chuàng)建Java項(xiàng)目3.創(chuàng)建Java類(lèi)4.編寫(xiě)Java類(lèi)2.1基礎(chǔ)實(shí)例在編輯窗口中,輸入以下Java程序代碼:1 //Compare.java2 importjavax.swing.JOptionPane; //裝載JOptionPane類(lèi)3 publicclassCompare{4 publicstaticvoidmain(Stringargs[]){5 Strings1,s2;6 s1=JOptionPane.showInputDialog("請(qǐng)輸入第一個(gè)整數(shù):");7 //s1接收來(lái)自輸入文本框的第一個(gè)整數(shù)8 s2=JOptionPane.showInputDialog("請(qǐng)輸入第二個(gè)整數(shù):");9 //s2接收來(lái)自輸入文本框的第二個(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程序的編寫(xiě)工作。2.1基礎(chǔ)實(shí)例2.1.2運(yùn)行結(jié)果執(zhí)行“運(yùn)行→運(yùn)行”,即可執(zhí)行程序。如果程序尚未保存,Eclipse會(huì)詢(xún)問(wèn)在執(zhí)行前是否要保存文檔,然后執(zhí)行程序。該Java程序運(yùn)行后,按對(duì)話框提示操作。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)Java是基于C++語(yǔ)言開(kāi)發(fā)出來(lái)的,因此其語(yǔ)法規(guī)則與C/C++非常相似,但是又有所不同。接觸過(guò)C/C++的讀者,學(xué)習(xí)時(shí)要特別注意Java與C/C++的區(qū)別。下面詳細(xì)介紹Java的基本語(yǔ)法。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.1數(shù)據(jù)類(lèi)型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)1.整數(shù)類(lèi)型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.浮點(diǎn)數(shù)類(lèi)型2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)3.字符類(lèi)型在Java中,利用關(guān)鍵字char來(lái)定義字符類(lèi)型的數(shù)據(jù)。字符型數(shù)據(jù)是用單引號(hào)括起來(lái)的單個(gè)字符。例如:charc='A'。Java中的字符型數(shù)據(jù)是基于16位的Unicode字符集,每個(gè)字符占兩個(gè)字節(jié)。Java中的字符型數(shù)據(jù)屬于整型數(shù)據(jù),但是無(wú)符號(hào)的整型數(shù)據(jù),其取值范圍為0~216-1。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)4.邏輯類(lèi)型邏輯類(lèi)型,又稱(chēng)為布爾類(lèi)型,用關(guān)鍵字boolean來(lái)表示。例如:booleanb=false。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.2.2常量與變量1.常量常量是不能被程序修改的固定值,在程序運(yùn)行之前,其值就已經(jīng)確定了。在Java中,定義常量時(shí)需要使用final關(guān)鍵字。定義基本數(shù)據(jù)類(lèi)型的常量的基本語(yǔ)法格式為:[修飾符]final基本數(shù)據(jù)類(lèi)型常量名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í)型常量分為單精度和雙精度兩種類(lèi)型。實(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)括起來(lái)的一個(gè)字符,例如:'a'、'A'。Java中還允許使用轉(zhuǎn)義字符‘\’來(lái)將其后的字符轉(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)換成任何其他類(lèi)型的數(shù)據(jù)。true和false只能賦值給聲明為boolean類(lèi)型的變量,或者用于邏輯運(yùn)算表達(dá)式中。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.變量變量是在程序運(yùn)行過(guò)程中可以賦值并能夠?qū)ζ渲颠M(jìn)行更改的數(shù)據(jù)。變量是Java程序中的基本存儲(chǔ)單元,它的定義包括變量名、變量值、變量類(lèi)型和作用域幾個(gè)部分。變量根據(jù)其所屬的數(shù)據(jù)類(lèi)型劃分:基本數(shù)據(jù)類(lèi)型變量和引用數(shù)據(jù)類(lèi)型變量(復(fù)合數(shù)據(jù)類(lèi)型變量)。根據(jù)變量被聲明的位置劃分為:局部變量、成員變量。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑴變量的定義與初始化⑵變量的賦值與類(lèi)型轉(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)過(guò)運(yùn)算所得到的結(jié)果,而這些運(yùn)算就主要是由表達(dá)式中的運(yùn)算符來(lái)規(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ù)類(lèi)型必須保持一致。2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)⑺其他運(yùn)算符2.2基礎(chǔ)知識(shí)——Java基本語(yǔ)2.表達(dá)式⑴表達(dá)式的值和類(lèi)型⑵表達(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),中間沒(méi)有分支和跳轉(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í)行可以跳過(guò)某些語(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í)行一段代碼,直到滿(mǎn)足終止循環(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ǔ)句,來(lái)跳過(guò)本次循環(huán)要執(zhí)行的剩余語(yǔ)句,然后開(kāi)始執(zhí)行下一輪循環(huán)。2.3 擴(kuò)展知識(shí)——數(shù)組法Java中,數(shù)組是一種最簡(jiǎn)單的復(fù)合數(shù)據(jù)類(lèi)型。數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中的每個(gè)元素都具有相同的數(shù)據(jù)類(lèi)型,可以用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來(lái)唯一地確定數(shù)組中的元素,這些數(shù)據(jù)在內(nèi)存中的存放是連續(xù)的。數(shù)組分為一維數(shù)組和多維數(shù)組。2.3 擴(kuò)展知識(shí)——數(shù)組法2.3.1一維數(shù)組1.一維數(shù)組的聲明在Java中,一維數(shù)組的定義形式為:數(shù)組元素類(lèi)型數(shù)組名[];數(shù)組元素類(lèi)型[]數(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ù)組元素的引用是通過(guò)數(shù)組下標(biāo)來(lái)實(shí)現(xiàn)的,其引用方式為:數(shù)組名[數(shù)組下標(biāo)]其中數(shù)組下標(biāo)可以為整型常數(shù)或表達(dá)式,下標(biāo)從0開(kāi)始,到數(shù)組元素個(gè)數(shù)值減1為止。每個(gè)數(shù)組都有一個(gè)屬性length來(lái)指明它的長(zhǎng)度,即數(shù)組元素的個(gè)數(shù)。2.3 擴(kuò)展知識(shí)——數(shù)組法2.3.2多維數(shù)組1.二維數(shù)組的定義在Java中,二維數(shù)組的定義形式為:數(shù)組元素類(lèi)型數(shù)組名[][];數(shù)組元素類(lèi)型[][]數(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ù)組元素類(lèi)型[arrayLength1][arrayLength2];從最高維開(kāi)始,分別為每一維分配空間:數(shù)組名=new數(shù)組元素類(lèi)型[arrayLength1][];數(shù)組名[0]=new數(shù)組元素類(lèi)型[arrayLength20];數(shù)組名[1]=new數(shù)組元素類(lèi)型[arrayLength21];…數(shù)組名[arrayLength1-1]=new數(shù)組元素類(lèi)型[arrayLength2n];2.3 擴(kuò)展知識(shí)——數(shù)組法3.二維數(shù)組元素的引用與一維數(shù)組相同,二維數(shù)組元素可以通過(guò)指定數(shù)組元素下標(biāo)的方式進(jìn)行引用。對(duì)二維數(shù)組中的每個(gè)元素,引用方式為:數(shù)組名[index1][index2]。需要注意的是:在數(shù)組的每一維中,數(shù)組元素的編號(hào)均從0開(kāi)始,到該維的數(shù)組元素個(gè)數(shù)減1結(jié)束。2.4擴(kuò)展實(shí)例2.4.1編寫(xiě)步驟首先,通過(guò)雙擊Eclipse文件夾中的名為Eclipse的可執(zhí)行文件,就可以啟動(dòng)Eclipse了。然后,開(kāi)始進(jìn)行Java程序的開(kāi)發(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類(lèi)執(zhí)行“文件→新建→類(lèi)”,在彈出的“新建Java類(lèi)”對(duì)話框中,設(shè)置類(lèi)名。然后,單擊“完成”按鈕,完成Java類(lèi)的創(chuàng)建工作,系統(tǒng)會(huì)自動(dòng)在項(xiàng)目文件夾中創(chuàng)建相應(yīng)的文件。2.4擴(kuò)展實(shí)例3.編寫(xiě)Java類(lèi)在編輯窗口中,輸入以下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程序的編寫(xiě)工作。2.4擴(kuò)展實(shí)例2.4.2運(yùn)行結(jié)果執(zhí)行“運(yùn)行→運(yùn)行方式→Java應(yīng)用程序”,即可執(zhí)行程序。如果程序尚未保存,Eclipse會(huì)詢(xún)問(wèn)在執(zhí)行前是否要保存文檔,然后執(zhí)行程序。在Eclipse下運(yùn)行Java程序時(shí),通常會(huì)將在命令窗口中顯示的結(jié)果顯示在“控制臺(tái)”中。2.4擴(kuò)展實(shí)例冒泡排序運(yùn)行結(jié)果第3章車(chē)輛信息顯示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ì)的基本概念,包括類(lèi)和對(duì)象的關(guān)系,類(lèi)的實(shí)例化,類(lèi)的派生和繼承,多重繼承的功能接口以及包等概念,并綜合運(yùn)用上述知識(shí)給出了兩個(gè)簡(jiǎn)單的車(chē)輛信息顯示的實(shí)例。3.1 基礎(chǔ)實(shí)例本實(shí)例的功能是通過(guò)類(lèi)及對(duì)象的創(chuàng)建等操作,完成一個(gè)可以顯示小轎車(chē)信息的程序。3.1.1編寫(xiě)步驟在Eclipse中建立一個(gè)小轎車(chē)類(lèi),在其中定義了小轎車(chē)的各種屬性及其方法,并對(duì)小轎車(chē)類(lèi)進(jìn)行實(shí)例化,創(chuàng)建一個(gè)速騰轎車(chē)的對(duì)象。設(shè)置速騰轎車(chē)對(duì)象的屬性,并執(zhí)行相關(guān)的方法,最后顯示出這個(gè)對(duì)象的各種信息。3.1 基礎(chǔ)實(shí)例程序的源代碼清單1 publicclassCarDisp{//小轎車(chē)類(lèi)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("車(chē)輛類(lèi)型:"+Sagitar.type);……15 System.out.println("生產(chǎn)廠家:"+Sagitar.manufacturer);16 17 System.out.println("當(dāng)前車(chē)速:"+Sagitar.speed+"行駛方向:"+Sagitar.direction); ……3.1 基礎(chǔ)實(shí)例34 }35 36 publicStringtype; //車(chē)輛類(lèi)型37 publicStringcolor;//顏色38 publicStringmodel;//型號(hào)39 publicStringhorsepower;//馬力40 publicStringmanufacturer;//生產(chǎn)廠家41 publicintspeed; //速度42 publicStringdirection; //方向43 44 publicCarDisp(){45 type="小轎車(chē)";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類(lèi)的建立與聲明類(lèi)(Class)實(shí)際上是對(duì)某種類(lèi)型的對(duì)象定義變量和方法的原型。它表示對(duì)現(xiàn)實(shí)生活中一類(lèi)具有共同特征的事物的抽象,是面向?qū)ο缶幊痰幕A(chǔ)。類(lèi)是對(duì)某個(gè)對(duì)象的定義。它包含有關(guān)對(duì)象動(dòng)作方式的信息,包括它的名稱(chēng)、方法、屬性和事件。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)類(lèi)定義的一般形式如下:限制符class類(lèi)名{ 類(lèi)體}類(lèi)的定義由類(lèi)頭和類(lèi)體兩部分組成。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.3 類(lèi)中的屬性和方法1.屬性屬性就是數(shù)據(jù)成員,它們指定了該類(lèi)的內(nèi)部表示,其一般由常量或變量組成,比如基礎(chǔ)實(shí)例中第36行到41行,就是類(lèi)屬性的定義。在類(lèi)定義中屬性可以賦初值,如果設(shè)置了初始值,實(shí)例化對(duì)象后,對(duì)象中的屬性就會(huì)繼承該值。如果沒(méi)有在類(lèi)定義中設(shè)置初始值,則在實(shí)例化對(duì)象后,要進(jìn)行顯式的賦值操作,否則該值會(huì)為空(null)。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)2.方法方法是包含一系列語(yǔ)句的代碼塊,他們指定了該類(lèi)的操作方法,方法一般由方法頭和方法體組成,方法的定義如下:限制符返回值類(lèi)型方法名(參數(shù)類(lèi)型參數(shù)1,參數(shù)類(lèi)型參數(shù)2,…){ 方法體}3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.構(gòu)造方法方法中有一個(gè)特殊的應(yīng)用,當(dāng)方法名與類(lèi)名相同時(shí),這個(gè)方法被稱(chēng)為構(gòu)造方法,即在對(duì)象被實(shí)例化時(shí)自動(dòng)調(diào)用的一個(gè)方法,一般將需要初始化的語(yǔ)句放在其中。構(gòu)造方法沒(méi)有返回值,因此不需要設(shè)置返回值類(lèi)型,3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.2.4 類(lèi)中的訪問(wèn)權(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ì)象就是類(lèi)的實(shí)例化,一個(gè)對(duì)象就是類(lèi)中所定義的一組變量和相關(guān)方法的集合。對(duì)象的變量是構(gòu)成對(duì)象的核心,不同對(duì)象的變量是分離的。對(duì)象通過(guò)成員變量和類(lèi)方法進(jìn)行相互間的交流,以實(shí)現(xiàn)各種復(fù)雜的行為。3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)1.對(duì)象的聲明對(duì)象的聲明與普通變量的聲明相似,首先指定一個(gè)類(lèi)名作為這個(gè)對(duì)象的類(lèi)類(lèi)型,然后在類(lèi)名后寫(xiě)一個(gè)對(duì)象名即可。對(duì)象聲明的例子如下所示:類(lèi)A對(duì)象A;類(lèi)B對(duì)象B1,對(duì)象B2;類(lèi)A實(shí)例化了一個(gè)對(duì)象A,類(lèi)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類(lèi)A();對(duì)象B1=new類(lèi)B(“hello”);3.2 基礎(chǔ)知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)3.訪問(wèn)對(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)中的類(lèi),明確類(lèi)間關(guān)系,充分利用已有的類(lèi)來(lái)完成更復(fù)雜、深入的開(kāi)發(fā),大大提高程序開(kāi)發(fā)的效率,降低系統(tǒng)維護(hù)的工作量。類(lèi)繼承也稱(chēng)為類(lèi)派生,是指一個(gè)類(lèi)不需要進(jìn)行任何定義就可以擁有其他類(lèi)的非私有成員,實(shí)現(xiàn)代碼重用。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)父類(lèi)與子類(lèi)的層次關(guān)系
3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.2 方法重載方法重載的引入簡(jiǎn)化程序員的工作,將方法的選擇交由Java系統(tǒng)負(fù)責(zé)。如果沒(méi)有重載,在編寫(xiě)如下語(yǔ)句段為 publicintadd1(inta,intb){ returna+b; } publicfloatadd2(floata,floatb){ returna+b; }現(xiàn)在有了方法重載,就可以將方法名寫(xiě)成相同的名稱(chēng),如下所示: 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ǔ)言中的接口是通過(guò)interface關(guān)鍵字來(lái)聲明的,其聲明格式如下: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)接口中只聲明了方法成員,而沒(méi)有給出方法體,這樣還不能在程序中使用,要想使用接口中聲明的方法成員,就必須在實(shí)現(xiàn)接口的類(lèi)中給出方法體,這個(gè)過(guò)程稱(chēng)為接口的實(shí)現(xiàn)。在類(lèi)的聲明中,用implements子句來(lái)表示實(shí)現(xiàn)某個(gè)或某些接口。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)3.3.4包所謂“包”就是一個(gè)設(shè)定的命名集合,它是Java提供的組織類(lèi)和接口的一種有效工具,定義的類(lèi)都加入某一個(gè)包中,并作為包的一部分存在,Java類(lèi)中的成員變量和成員方法都在類(lèi)中定義,使用包機(jī)制使得每個(gè)Java的變量和方法都可以用全限定的名字來(lái)表示,包括包名、類(lèi)名和成員(方法和變量)名,各部分間用點(diǎn)號(hào)分隔即可。3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)1.包的創(chuàng)建創(chuàng)建一個(gè)包非常簡(jiǎn)單,在Java源文件的最開(kāi)始包含一個(gè)package語(yǔ)句即可。其語(yǔ)法格式如下:package包名;為了更好地使用包中的類(lèi),可以創(chuàng)建不同層次的包,這通常是由不同包的功能分類(lèi)決定的。采用下面的形式可以創(chuàng)建一個(gè)包的層次結(jié)構(gòu):packagep1[.p2[.p3]];3.3 擴(kuò)展知識(shí)——面向?qū)ο蟪绦蛟O(shè)計(jì)高級(jí)2.包的使用定義好的包可以通過(guò)import語(yǔ)句來(lái)引用。在Java源文件中,import語(yǔ)句需要放在package語(yǔ)句之后,但在其他任何類(lèi)定義之前。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 編寫(xiě)步驟在Eclipse中新建立一個(gè)項(xiàng)目CarDisp2,并在其中增加類(lèi)文件CarDisp2.java,然后在其中輸入語(yǔ)句。3.4擴(kuò)展實(shí)例
3.4.2調(diào)試與運(yùn)行編寫(xiě)完成后,測(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圖形用戶(hù)界面(GUI)和事件處理的基礎(chǔ)知識(shí),包括圖形用戶(hù)界面中AWT和Swing兩個(gè)類(lèi)庫(kù)中常用的容器和組件等;各類(lèi)常用的事件處理機(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編寫(xiě)步驟在Eclipse中建立一個(gè)項(xiàng)目,名稱(chēng)為Calculator,在項(xiàng)目中建立一個(gè)類(lèi)文件,名稱(chēng)與項(xiàng)目名相同,在類(lèi)文件中輸入相應(yīng)的程序代碼。4.1 基礎(chǔ)實(shí)例4.1.2運(yùn)行結(jié)果編寫(xiě)完成后,可以測(cè)試程序的運(yùn)行結(jié)果。首先通過(guò)單擊按鈕選擇數(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ì)等待用戶(hù)選擇第二個(gè)數(shù)值,如果已經(jīng)計(jì)算過(guò)則把前面的結(jié)果顯示出來(lái)后,把結(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ì)與布局管理器圖形用戶(hù)界面GUI(GraphicalUserInterface)是程序提供給用戶(hù)操作的圖形界面。包括窗口、菜單、按鈕、文本區(qū)、復(fù)選框和其它各種屏幕元素。Java中提供了AWT和Swing兩個(gè)類(lèi)庫(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窗口,用于存放其它的組件,通過(guò)add()方法向容器中添加。代碼:Framef;//創(chuàng)建一個(gè)框架f=ewFrame(“窗口標(biāo)題名稱(chēng)”);//實(shí)例化窗口對(duì)象f4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Frame類(lèi)常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器2.標(biāo)簽(Label)標(biāo)簽是顯示文本的組件,可以顯示單行的字符串,起著傳遞消息的作用。用戶(hù)不能對(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類(lèi)常用的構(gòu)造方法和常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器3.按鈕(Button)按鈕是用來(lái)觸發(fā)特定動(dòng)作的組件。當(dāng)用戶(hù)用鼠標(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類(lèi)常用的構(gòu)造方法和常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.文本框(TextField)用來(lái)接收用戶(hù)通過(guò)鍵盤(pán)輸入的單行文本信息。通過(guò)事件處理機(jī)制,程序可以使用這些文本或數(shù)據(jù)信息。代碼:TextFieldmyTextField;myTextField=newTextField(“顯示的文本”,10);//實(shí)例化單行文本,并指定初始化文字和寬度為容納10個(gè)字符。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextField類(lèi)常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextField類(lèi)常用的方法及其說(shuō)明代碼myTextField.getText();myTextField.setText(“新文本內(nèi)容”);//設(shè)置文本框顯示的文本。myTextField.setEditable(false);//設(shè)置文本框內(nèi)容不能再編輯。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器5.文本域(TextArea)用來(lái)接收用戶(hù)通過(guò)鍵盤(pán)輸入的多行文本信息。代碼:TextAreamyTextArea;myTextArea=newTextArea(“顯示的文本”,10,3);//實(shí)例化多行文本區(qū),并指定初始化文字和該文本區(qū)的行數(shù)和列數(shù)。4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextArea類(lèi)常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器TextArea類(lèi)常用的方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器6.復(fù)選框(Checkbox)復(fù)選框可以讓用戶(hù)進(jìn)行多項(xiàng)選擇。復(fù)選框有兩種狀態(tài),分別為“開(kāi)”和“關(guān)”。當(dāng)用戶(hù)點(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類(lèi)常用的構(gòu)造方法4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器7.單選按鈕組(CheckboxGroup)單選按鈕是在復(fù)選框的基礎(chǔ)上創(chuàng)建的。單選按鈕的選擇是互斥的,當(dāng)用戶(hù)選中了組中的一個(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ū)ο?,而不是單選按鈕組。f.add(myCheckbox2);4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器CheckboxGrou類(lèi)常用的構(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類(lèi)常用的構(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)的類(lèi)分別是:MenuBar、Menu和MenuItem。一個(gè)菜單的組成如圖4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器Menu類(lèi)常用的構(gòu)造方法及其說(shuō)明4.2基礎(chǔ)知識(shí)(一)——界面設(shè)計(jì)與布局管理器4.2.3Swing常用組件1.標(biāo)簽類(lèi)(JLabel)2.文本輸入框(JTextField)3.密碼框輸入框(JPasswordField)4.文本區(qū)(JTextArea)5.按鈕類(lèi)(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布局(空布局),則通過(guò)所有組件都擁有的方法:publicvoidsetBounds(intx,inty,intwidth,intheight);可設(shè)置組件在容器中的位置和大小。參數(shù)x和y指定組件左上角在容器中的坐標(biāo),參數(shù)width和height指定組件的寬和高,單位為像素。4.3 基礎(chǔ)知識(shí)(二)——事件處理事件有三個(gè)重要概念:事件:用戶(hù)對(duì)組件的一個(gè)操作,稱(chēng)之為一個(gè)事件。例如鼠標(biāo)單擊或鍵盤(pán)的操作。事件源:發(fā)生事件的組件就是事件源。例如不同的組件像按鈕Button、復(fù)選框Checkbox等。事件處理器:負(fù)責(zé)處理事件的方法。例如接受到按鈕單擊事件,并對(duì)這個(gè)事件進(jìn)行處理。4.3 基礎(chǔ)知識(shí)(二)——事件處理事件類(lèi)和相應(yīng)的接口總結(jié)4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.1 事件類(lèi)1.高級(jí)事件ActionEvent(動(dòng)作事件):對(duì)應(yīng)的事件為按鈕按鈕下,文本框中按下回車(chē)鍵。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(鍵盤(pán)事件):對(duì)應(yīng)事件為鍵盤(pán)按鍵的按下、釋放。MouseEvent(鼠標(biāo)事件):對(duì)應(yīng)事件為鼠標(biāo)的單擊、移動(dòng)等。WindowEvent(窗口事件):關(guān)閉窗口、窗口最小化等。4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.2 事件監(jiān)聽(tīng)器和事件適配器每類(lèi)事件都有對(duì)應(yīng)的事件監(jiān)聽(tīng)器,監(jiān)聽(tīng)是是一種接口,要根據(jù)程序?qū)嶋H情況來(lái)定義方法。在上面小節(jié)程序中,窗口不能正常關(guān)閉,因?yàn)闆](méi)有對(duì)窗口事件進(jìn)行處理,下面通過(guò)實(shí)例來(lái)實(shí)現(xiàn)窗口的關(guān)閉。窗口事件相對(duì)應(yīng)的接口是:publicinterfaceWindowListenerextendsEventListener{publicvoidwindowOpened(WindowEvente);//打開(kāi)窗口時(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中定義的事件適配器類(lèi)包括:ComponentAdapter,構(gòu)件適配器ContainerAdapter,容器適配器FocusAdapter,焦點(diǎn)適配器KeyAdapter,鍵盤(pán)適配器MouseAdapter,鼠標(biāo)適配器MouseMotionAdapter,鼠標(biāo)運(yùn)動(dòng)適配器WindowAdapter,窗口適配器4.3 基礎(chǔ)知識(shí)(二)——事件處理4.3.3 常見(jiàn)的事件及其相應(yīng)的接口4.3 基礎(chǔ)知識(shí)(二)——事件處理接上頁(yè)4.4擴(kuò)展知識(shí)——異常處理4.4.1異常的概述Java語(yǔ)言把程序運(yùn)算中可能遇到的錯(cuò)誤分為兩類(lèi),一類(lèi)是非致命性的,通過(guò)某種修正后程序還能繼續(xù)執(zhí)行,比如對(duì)負(fù)數(shù)開(kāi)平方根、空指針訪問(wèn)、試圖讀取不存在的文件、網(wǎng)絡(luò)連接中斷等;另一類(lèi)是致命性的,程序遇到了非常嚴(yán)重的不正常狀態(tài),不能簡(jiǎn)單的恢復(fù)執(zhí)行,比如程序中內(nèi)容耗盡等。在程序編譯或運(yùn)行中所發(fā)生的可預(yù)料或不可預(yù)料的錯(cuò)誤事件,它會(huì)引起程序的中斷,影響程序的正常運(yùn)行,這在Java語(yǔ)言中稱(chēng)為異常(Exception)。4.4擴(kuò)展知識(shí)——異常處理常見(jiàn)異常類(lèi)4.4擴(kuò)展知識(shí)——異常處理4.4.2 異常的捕獲與處理在程序中添加異常的處理機(jī)制,在異常產(chǎn)生時(shí)將危害減到最小。異常主要處理的是Exception類(lèi),Error是程序本身問(wèn)題,不能處理。常用關(guān)鍵字:try、catch和finally。其語(yǔ)法結(jié)構(gòu)是:try{<可能產(chǎn)生異常的程序代碼段>}catch(<要捕捉的異常類(lèi)><變量名稱(chēng)>){<處理這個(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)鍵字來(lái)進(jìn)行處理,throws是在方法名后標(biāo)出該方法所產(chǎn)生何種異常的集合(通常比較多,可以用逗號(hào)隔開(kāi));即此方法如果內(nèi)部產(chǎn)生未經(jīng)處理的異常就會(huì)向外拋出。4.4擴(kuò)展知識(shí)——異常處理4.4.4用戶(hù)自定義異常如果JavaAPI中已經(jīng)定義好的異常類(lèi)不能完全滿(mǎn)足程序的需求,那么還可以自己定義異常類(lèi)。用戶(hù)自定義的異常類(lèi),只要去繼承某個(gè)原有的Exception類(lèi),然后加上兩個(gè)構(gòu)造函數(shù),一個(gè)需要傳遞一個(gè)字符串參數(shù),另外一個(gè)不需要參數(shù),然后在構(gòu)造函數(shù)中再往上調(diào)用父類(lèi)的構(gòu)造函數(shù),把參數(shù)再往上傳即可。4.5擴(kuò)展實(shí)例4.5.1編寫(xiě)步驟(略)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è)文本編輯器,類(lèi)似于常見(jiàn)的記事本或?qū)懽职暹@樣的文本編輯器,并提供其簡(jiǎn)化的功能。此編輯器功能包括:所見(jiàn)即所得的文本輸入。方便的選中文本、復(fù)制文本、刪除文本、插入文本的功能。簡(jiǎn)單的排版功能,如設(shè)置字體、字號(hào)等。5.1 基礎(chǔ)實(shí)例5.1.1編寫(xiě)步驟1、主類(lèi)MyEditor.java源代碼清單2.設(shè)置顏色程序SetColor.java源代碼清單3.設(shè)置字體程序SetFont.java源代碼清單5.1 基礎(chǔ)實(shí)例5.1.2 運(yùn)行結(jié)果
·運(yùn)行主類(lèi)MyEditor.java,在命令行鍵入javaMyEditor或在IDE里選擇運(yùn)行項(xiàng)目,呈現(xiàn)給用戶(hù)的主界面
·在菜單選項(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類(lèi)2.消息對(duì)話框3.確認(rèn)對(duì)話框5.3基礎(chǔ)知識(shí)(二)——對(duì)話框5.3.2 用戶(hù)自定義對(duì)話框常用的對(duì)話框界面相似,顯示的信息也很簡(jiǎn)單。如果想要設(shè)計(jì)更為復(fù)雜一些的對(duì)話框,可以通過(guò)擴(kuò)展JDialog類(lèi)來(lái)創(chuàng)建。5.3基礎(chǔ)知識(shí)(二)——對(duì)話框關(guān)于對(duì)話框5.4擴(kuò)展知識(shí)——輸入輸出流5.4.1 輸入輸出流類(lèi)1、BufferedReader類(lèi)主要方法5.4擴(kuò)展知識(shí)——輸入輸出流2、InputStreamReader類(lèi)這是InputStream和Reader之間的橋梁,由于System.in是字節(jié)流,需要用它來(lái)包裝之后變?yōu)樽址鞴┙oBufferedReader使用。5.4擴(kuò)展知識(shí)——輸入輸出流3、PrintWriter類(lèi)用于向文本輸出流打印對(duì)象的格式化表示形式。PrintWriterout1=newPrintWriter(newBufferedWriter(newFileWriter("IODemo.out")));5.4擴(kuò)展知識(shí)——輸入輸出流5.4.2 文件5.4擴(kuò)展知識(shí)——輸入輸出流File類(lèi)常用方法5.5擴(kuò)展實(shí)例5.5.1 編寫(xiě)步驟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í),使讀者了解如何利用線程來(lái)完成“同時(shí)”做多件事的方法,以及如何在此過(guò)程中對(duì)線程進(jìn)行控制,并綜合運(yùn)用上述內(nèi)容給出一個(gè)利用多線程方法編程的賽馬游戲?qū)嵗?.1 基礎(chǔ)實(shí)例6.1.1編寫(xiě)步驟在Eclipse中建立一個(gè)項(xiàng)目,項(xiàng)目名稱(chēng)為Racing,并在項(xiàng)目中建立一個(gè)文件包(Package),名為com,然后在上文件包中建立以下類(lèi)。賽馬類(lèi)程序Racing.java主要代碼清單6.1 基礎(chǔ)實(shí)例6.1.2 運(yùn)行結(jié)果編寫(xiě)完成后,可以測(cè)試程序的運(yùn)行結(jié)果6.2 基礎(chǔ)知識(shí)——圖形處理6.2.1 框架(Jframe)
1.JFrame類(lèi)的構(gòu)造方法2.JFrame類(lèi)的常用成員方法3.創(chuàng)建并顯示框架6.2 基礎(chǔ)知識(shí)——圖形處理6.2.2 簡(jiǎn)單圖形Graphics類(lèi)中繪制圖形的方法。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類(lèi)為GUI件設(shè)置顏色。顏色中的R(紅)、G(綠)、B(藍(lán))為三原色的比例。一個(gè)RGB值由三部分組成,第一個(gè)RGB部分定義紅色的量;第二個(gè)定義綠色的量;第三個(gè)定義藍(lán)色的量。1.Color類(lèi)的構(gòu)造方法如下:publicColor(intr,intg,intb);//使用在0-255范圍內(nèi)的整數(shù)指定紅、綠、藍(lán)三種顏色的比例來(lái)創(chuàng)建一種Color對(duì)象publicColor(floatr,floatg,floatb);//使用0.0-1.0范圍內(nèi)的浮點(diǎn)數(shù)指定紅、綠、藍(lán)三種顏色的比例來(lái)創(chuàng)建一種Color對(duì)象publicColor(intrgb);//使用指定的組合RGB值建一種Color對(duì)象6.2 基礎(chǔ)知
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)連續(xù)玻璃纖維原絲氈?jǐn)?shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)自動(dòng)刃磨機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 時(shí)尚品牌智能客服系統(tǒng)-深度研究
- 2025至2030年中國(guó)空調(diào)風(fēng)機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)斜軸式變量泵數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)卡通開(kāi)瓶器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)全鋼房口車(chē)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國(guó)船用家具設(shè)備市場(chǎng)調(diào)查研究報(bào)告
- 二零二四年度幼兒園教師早期教育項(xiàng)目合作合同3篇
- 二零二五年度文化產(chǎn)業(yè)園開(kāi)發(fā)承包經(jīng)營(yíng)合同范本4篇
- 你比我猜題庫(kù)課件
- 體育概論(第二版)課件第三章體育目的
- 無(wú)人駕駛航空器安全操作理論復(fù)習(xí)測(cè)試附答案
- 建筑工地春節(jié)留守人員安全技術(shù)交底
- 默納克-NICE1000技術(shù)交流-V1.0
- 蝴蝶蘭的簡(jiǎn)介
- 老年人心理健康量表(含評(píng)分)
- 《小兒靜脈輸液速度》課件
- 營(yíng)銷(xiāo)人員薪酬標(biāo)準(zhǔn)及績(jī)效考核辦法
- 醫(yī)院每日消防巡查記錄表
- 運(yùn)輸企業(yè)重大危險(xiǎn)源辨識(shí)及排查制度
評(píng)論
0/150
提交評(píng)論