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