2022年java自學(xué)考試復(fù)習(xí)資料_第1頁
2022年java自學(xué)考試復(fù)習(xí)資料_第2頁
2022年java自學(xué)考試復(fù)習(xí)資料_第3頁
2022年java自學(xué)考試復(fù)習(xí)資料_第4頁
2022年java自學(xué)考試復(fù)習(xí)資料_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選精選.精選.?Java語言程序設(shè)計? Java語言根底Java語言的特點。 Java語言主要有以下特點:強類型:強制約束程序員必須遵守更多的編程規(guī)定,編譯器能檢測程序中盡可能多的錯誤。編譯和解釋:用Java編寫的源程序在計算機上運行必須經(jīng)過編譯和解釋執(zhí)行兩個階段。編譯程序先江Java源程序翻譯成與機器無關(guān)的字節(jié)碼bytecode,不是通常的編譯程序?qū)⒃闯绦蚍g成特定計算機的機器代碼。運行時,由Java虛擬機JVM中的Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機器碼進(jìn)行運行。自動無用內(nèi)存回收功能:垃圾收集器garbage collector可以自動回收程序不再使用的內(nèi)存,防止程序遺漏或重復(fù)

2、釋放內(nèi)存。面向?qū)ο笈c平臺無關(guān):與平臺無關(guān)是對程序可移植性最直接最有效的支持,“一次編程,到處運行??梢浦残栽从趦煞矫妫?. Java的編譯和解釋的特征Java虛擬機;2. Java采用基于國際標(biāo)準(zhǔn)的數(shù)據(jù)類型,在任何平臺上,同一種數(shù)據(jù)類型是一致的。平安性:取消指針,防止因指針使用不當(dāng),訪問不該訪問的內(nèi)存空間;提供數(shù)組下標(biāo)檢測機制,禁止程序越界訪問內(nèi)存;編譯執(zhí)行過程中進(jìn)行比較嚴(yán)格的檢查:在解釋執(zhí)行前,對字節(jié)碼文件作檢查,防止被惡意改動的字節(jié)碼文件被解釋執(zhí)行而破壞系統(tǒng);瀏覽器限制下載的小應(yīng)用程序不允許訪問本地文件,防止其破壞本地文件。分布式計算多線程:Java的運行環(huán)境采用多線程實現(xiàn)。Java語言提

3、供語言級多線程支持,用Java語言能直接編寫多線程程序。兩種類型的Java程序。 Java程序可分為應(yīng)用程序Application和小應(yīng)用程序Applet兩類。這兩種程序的主要區(qū)別:小應(yīng)用程序需要嵌入在HTML網(wǎng)頁中,當(dāng)網(wǎng)頁被瀏覽時,在瀏覽器中運行;且其運行受到嚴(yán)格的平安限制。應(yīng)用程序那么獨立運行,不嵌入網(wǎng)頁,也沒有那些限制。另外,這兩類程序在代碼編寫上也有差異:一個小應(yīng)用程序必須定義為java.applet.Applet類的子類,而不必定義main()方法;應(yīng)用程序一般不必為java.applet.Applet類的子類,而必須在一個類中定義main()方法。注釋:行注釋/塊注釋/* . */

4、文檔注釋/* */Java程序的開發(fā)過程 java編譯器java編譯器字節(jié)碼文件.class編寫源程序文件.javaJava編譯器字節(jié)碼文件.class由Web瀏覽器執(zhí)行有Java解釋器執(zhí)行應(yīng)用程序Applet通常在JDK目錄下有bin、demo、lib、jre等子目錄,其中bin目錄保存了javac編譯器、java解釋器、jdb調(diào)試器、appletviewerjava Appelt解釋器等命令文件;Java的字符集和標(biāo)識符。 Java語言使用Unicode字符集,字符采用雙字節(jié)的表示方式,共有65535個字符,最前面的128個字符與標(biāo)準(zhǔn)的ASCII字符一致,包括:數(shù)字字符10個09英文大小寫

5、字母各26個AZ, az下劃線_、美元符號$文字字符漢字,日文片假名、平假名,朝鮮文字等其他用于構(gòu)成特殊符號的字符集標(biāo)識符可以用來標(biāo)識文件名、變量名、類名、接口名和成員方法名等,其構(gòu)造規(guī)那么如下:標(biāo)識符由Java字母和Java數(shù)字組成;精選精選.精選.首字符必須是Java字母;除去關(guān)鍵字、false、true和null;所有標(biāo)識符是區(qū)分大小寫的。關(guān)鍵字是Java語言保存的一些英文單詞,具有特殊的含義。例如:public、static和class,具有特殊用途,不能作為標(biāo)識符使用。根本數(shù)據(jù)類型。 布爾型boolean1個字節(jié)true或false)字符型char16位字節(jié)型byte8位短整型sho

6、rt16位整數(shù)型int32位長整型long64位單精度浮點型float32位雙精度浮點型double64位Java直接量是直接顯式地表示根本數(shù)據(jù)類型數(shù)據(jù)、字符串String值和空引用值null的表達(dá)式,而且在該表達(dá)式中不含運算。 布爾(boolean)直接量只有兩個:true和false字符(char)直接量:如a,6,貓,u0061,n整型(byte,short,int)直接量:如-27,+0123,0 x56ab長整型(long)直接量:如-27L,+0123L,0 x56abL浮點數(shù)(float,double)直接量:如1.5,45.6D,100d,76.4e8,-32.0 ,1.5F,

7、 45.6f, 76.4E-8F,-32.0F字符串(String)直接量:如“Hello World!引用數(shù)據(jù)類型的直接量:null變量在計算機內(nèi)部對應(yīng)著一個存儲單元,而且總是具有某種數(shù)據(jù)類型:根本數(shù)據(jù)類型或引用數(shù)據(jù)類型。每個變量均具有:名字、類型、一定大小的存儲單元以及值。變量總是具有與其數(shù)據(jù)類型相對應(yīng)的值。根本數(shù)據(jù)類型:變量的存儲單元中存放的是具體的布爾值或數(shù)值;引用數(shù)據(jù)類型:變量的存儲單元中存放的是引用值,引用值一般用來指向某個具體的對象。如果引用值是null,那么該引用值不指向任何對象。在使用變量前,必須先定義該變量,而且一般要求先初始化。例如:int studentNumber;

8、/定義單個變量studentNumber=30; /給變量賦值double velocity, distance; /定義多個變量int studentNumber=30; /定義變量,并賦初值運算和語句賦值運算。 簡單賦值運算,格式如下:變量=表達(dá)式不是“相等運算符“=。賦值語句中的數(shù)據(jù)類型轉(zhuǎn)換只能是簡單類型向復(fù)雜類型轉(zhuǎn)換,不能從復(fù)雜的轉(zhuǎn)換成簡單的。轉(zhuǎn)換規(guī)那么如下:byteshortintlongfloatbouble復(fù)合賦值運算,格式如下:變量 雙目算術(shù)運算符= 表達(dá)式包括:+=、-=、*=、/=、&=、|=、%=、=和=。例如:a+=b等價于a=a+b,a/=b+c等價于a=a/(b+c

9、)。算術(shù)運算符。 算術(shù)運算符包括:+取正, -取負(fù) 單目運算 +, -, *, /, % 雙目運算本卷須知:當(dāng)操作數(shù)是定點類型數(shù)據(jù)時,應(yīng)當(dāng)注意運算是否會溢出int i=123456;i=i*i; /溢出整數(shù)除法:截去余數(shù),7/5結(jié)果為1考慮除數(shù)是否可能為0或很小的數(shù)取模:返回余數(shù),可以對定點或浮點數(shù)進(jìn)行取模運算,7%5結(jié)果為2;15.25%(-0.5)結(jié)果為0.25自增自減運算。 自增(+)和自減(-):操作數(shù)必須是變量;有前置和后置兩種運算int n=3;int i=n+, j=n-;/i=3,j=4,n=3精選精選.精選.int k=+n, m=-n;/k=4,m=3,n=3前綴 和后綴,

10、 對變量本身,效果相同;但表達(dá)式的值不相同。運算對象只能是變量,不能是常量或表達(dá)式,如:7+;(i+j)-都是非法的。關(guān)系運算符。 關(guān)系運算符包括: 、=、= 和 !=,關(guān)系運算生成一個布爾結(jié)果。例如:1 2;/false3.5 != 1; /true 51.5 = 23.0; /true540 = 654; /true24 = 3*8; /trueboolean test1=(10 10); /test1=false;關(guān)系運算符的優(yōu)先級:、=優(yōu)先于=、!=;、=優(yōu)先級相同,結(jié)合性是自左向右;=、!= 優(yōu)先級相同,結(jié)合性是自左向右。【注意】Java不允許將一個數(shù)字作為布爾值使用,這與c或c+不

11、同。例如:當(dāng)要表達(dá)“如果a不等于0這個條件不能寫作 if(a)而要寫作 if(a!=0)邏輯運算符。 邏輯運算的操作數(shù)必須是布爾型,結(jié)果也是布爾型。可以有3種根本操作:與&、或|、非!。短路規(guī)那么:一旦能夠明確無誤確實定整個表達(dá)式的值,就不再計算表達(dá)式余下的局部了。因此,整個邏輯表達(dá)式靠后的局部可能不會計算。比較:(birthday = true) & (+age = 65)(birthday = true) | (+age = 65)! 優(yōu)先于 雙目算術(shù)運算符 優(yōu)先于 關(guān)系運算符 優(yōu)先于 & 優(yōu)先于|條件運算符。 條件運算符是一個三目運算符,一般形式為:邏輯表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2

12、例如: int i = 5; int k = (i=0) ? 1 : -1;條件運算符的結(jié)合性為“自右至左。例如: x y ? x : u v ? u : v 等價于x y ? x : u v ? u : v位運算和位移運算。 位運算符包括:&、|、移位運算符有 : 、和 帶符號右移:左端空出的位填原符號位不帶符號右移邏輯右移:左端空出的位填0C或C+中無此運算符位運算操作是:先將整數(shù)寫成二進(jìn)制形式補碼,然后按位操作,最后產(chǎn)生一個新的數(shù)注意: 只用于定點類型數(shù)據(jù)整型根本語句。 表達(dá)式語句:k=k+2;空語句 ;break語句:break; 用于循環(huán)或選擇continue語句:continue;

13、 同上return語句:return;, return 表達(dá)式;,該語句的執(zhí)行將結(jié)束方法的執(zhí)行,只能出現(xiàn)在方法體中。復(fù)合語句。 用花括號引起來的兩條或兩條以上語句,順序執(zhí)行但作為一個整體。在復(fù)合語句中可以定義自己專用的臨時變量。if語句。 if語句的格式是:if (布爾表達(dá)式) 語句或if (布爾表達(dá)式) 一條或多條語句例如:精選精選.精選.if(score = 60) System.out.println(Passed);if-else語句。 if-else語句的格式是:if (布爾表達(dá)式) 語句1或語句塊1else 語句2或語句塊2例如:if (score = 60) System.out

14、.println(Passed!);else System.out.println(Failed!);標(biāo)準(zhǔn)嵌套if-else控制結(jié)構(gòu)可實現(xiàn)多路選擇,用在想從多個候選項中選擇且只選出一項時。例如:if (score90) System.out.println(“A) ;else if (score=80) System.out.println(“B) ;else if (score=60) System.out.println(“C) ;else System.out.println(“F) ;switch語句。 switch語句的格式是:switch (表達(dá)式)case 值1: 語句組1; b

15、reak;case 值2: 語句組2; break; case 值n: 語句組n; break;default: 語句組(n+1);switch表達(dá)式的數(shù)據(jù)類型可以是根本類型char、byte、short、int;或是這四種根本類型相對應(yīng)的包裝類java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或enum枚舉類型。跟在case后的必須是常量表達(dá)式,其值的類型應(yīng)當(dāng)與switch表達(dá)式的數(shù)據(jù)類型相匹配。Switch語句的執(zhí)行規(guī)那么:求出表達(dá)式的值;找出給定值與表達(dá)式相符的case語句,執(zhí)行此case標(biāo)號后的所有語

16、句除非遇到break語句,直到switch語句結(jié)束;假設(shè)沒有匹配的case語句,那么轉(zhuǎn)向defalult語句,執(zhí)行default標(biāo)號后的所有語句,直到switch語句結(jié)束。假設(shè)沒有匹配的case語句,也沒有defalult語句,那么switch語句的這次執(zhí)行立即結(jié)束。trycatch語句。 try 語句塊/執(zhí)行該語句塊,可能會發(fā)生異常 catch (異常類型e) 異常發(fā)生時要執(zhí)行的語句塊 finally 無論異常發(fā)生與否,都要執(zhí)行的語句塊說明:Catch和 finally 必須和一個try相關(guān)聯(lián)try至少要有一個catch, 可以有多個finally語句塊是可選的精選精選.精選.while語句

17、。 while語句的格式:while (布爾表達(dá)式) 語句或語句塊當(dāng)條件(布爾表達(dá)式)為true ,那么不斷地執(zhí)行語句或語句塊。“while 循環(huán)的中止條件是布爾表達(dá)式變?yōu)閒alse,如果布爾表達(dá)式一開始就為false,那么不執(zhí)行循環(huán)體。有時循環(huán)條件很難寫出,可以直接使用true, 格式如下:While (true) If( 條件表達(dá)式 break;do-while語句。 do-while語句的格式是:do 語句或語句塊while (布爾表達(dá)式);do-while和while結(jié)構(gòu)唯一的區(qū)別就是do-while中的語句至少會執(zhí)行一次,即便布爾表達(dá)式第一次就被計算為false。注意最后的分號,一定

18、不能省略。for語句。 for語句的格式是: for (初始化表達(dá)式; 條件表達(dá)式; 更新表達(dá)式) 語句或語句塊例如: int counter, sum; for(counter=1,sum=0; counter=100; counter+) sum+=counter; System.out.println(“counter=“ + counter + , sum= + sum);注意變量counter和sum的作用域,假設(shè)將它們改在for語句內(nèi)部定義,會有何不同。在for語句的初始化和更新局部,可以使用多個由逗號分隔的表達(dá)式,這些表達(dá)式都會獨立執(zhí)行。例如: for(int 1=1, j=i+

19、10; i 5; i+, j=i*2) System.out.println(“i = + i + “ j = + j); 注意:通過逗號操作符,可以在初始化局部定義多個變量,但這些變量必須具有相同的類型。無論在初始化還是更新局部,表達(dá)式都是順序執(zhí)行的。嵌套的循環(huán)結(jié)構(gòu)。 for循環(huán)的嵌套while循環(huán)的嵌套do.while循環(huán)的嵌套以上三個任意之間的嵌套continue語句。 格式:continue;功能:跳過continue之后的語句,重新判斷循環(huán)控制條件,決定是否繼續(xù)循環(huán)。說明:continue語句只能用在三種循環(huán)語句的循環(huán)體中。continue語句通常和if語句聯(lián)合使用,從而構(gòu)成其后的局

20、部循環(huán)體是否執(zhí)行的單分支結(jié)構(gòu)。break語句。 格式:break;功能:強制結(jié)束當(dāng)前的循環(huán),不再執(zhí)行循環(huán)體中break后面的語句。說明:break語句只能在三種循環(huán)語句的循環(huán)體和switch語句中使用。在循環(huán)語句中break通常和if語句聯(lián)合使用,用于構(gòu)成第二個退出循環(huán)的時機。Package語句。 程序包相當(dāng)于其它語言的函數(shù)庫,系統(tǒng)提供大量的程序包,自己編寫的類也可以組成程序包,但一定要用package語句聲明。格式: package 包名;精選精選.精選.包名是一個目錄名,可以有路徑。import 語句。 用來引入所需要的類格式:import 包名.類名;例如: import java.ut

21、il.Date;/引入Date類如果從一個包中引入多個類,可以用通配符“*, 如: import java.awt.*;一個java源程序中可以有多個import語句, 它們必須出現(xiàn)在package語句之后;類的定義之前。Java程序的根本結(jié)構(gòu)。 package 包名;import 包名.類名; / 更多的import語句public class 類名int val= /變量定義語句Public static void main( String args )/ 方法定義 / 變量定義和控制語句構(gòu)成的方法體 面向?qū)ο缶幊谈壮橄?抽象是程序設(shè)計最經(jīng)常使用的技術(shù)之一,是有效控制程序復(fù)雜性的重要手段

22、。在面向?qū)ο蟪绦蛟O(shè)計中:把一系列復(fù)雜的屬性與動作組織到單個模塊中,然后把該模塊當(dāng)作一個整體對象來對待,就是一種抽象形式。把一個問題分解成構(gòu)成它的對象,也是一種抽象形式。對象object萬物皆為對象,它存儲數(shù)據(jù),還可以要求它在自身上執(zhí)行操作。對象具有狀態(tài)、行為和標(biāo)識。這意味著每一個對象可以擁有內(nèi)部數(shù)據(jù)它們給出該對象的狀態(tài)和方法它們產(chǎn)生行為,并且每一個對象都可以唯一地與其他對象區(qū)分開來每一個對象在內(nèi)存中都有唯一一個地址。消息message在面向?qū)ο罂蚣苤校瑢ο笾g通過相互發(fā)送消息來進(jìn)行交互。在Java里,通過調(diào)用方法來傳遞消息。類class類定義了某種類型的所有對象所具有的屬性與行為,是用來創(chuàng)立對

23、象的藍(lán)圖或模板;對象是某個確切類的實例。在創(chuàng)立一個類的實例對象之前必須定義這個類。繼承性inheritance 多態(tài)性polymorphism類 1類的聲明類的定義格式如下:類修飾詞 class 類名 extends 父類名 implements 接口名稱列表 類體 / 通常先定義成員變量,再定義構(gòu)造方法,最后編寫成員方法2成員變量成員變量的定義格式如下:修飾詞列表 類型 變量名或帶初始化的變量名列表;例如:private float height, weight; private String name, sex, no;3方法類的成員方法:簡稱方法,用來實現(xiàn)類的各種功能。方法的定義格式如下

24、: 方法修飾詞列表 返回類型 方法名(方法的參數(shù)列表) 方法體 例如: public int mb_method() 精選精選.精選. public static void main(String args) 例3.2假設(shè)某方法的參數(shù)名或局部變量名與類的成員變量名相同,那么成員變量名在這個方法內(nèi)部暫時被隱藏。例3.3關(guān)鍵字this:對當(dāng)前對象的引用 4構(gòu)造方法構(gòu)造方法用來創(chuàng)立類的實例,并對對象初始化。構(gòu)造方法的聲明和一般方法聲明非常相似,但是它必須和類同名,并且不能聲明返回值類型。構(gòu)造方法的一般形式: public ( ) 默認(rèn)的構(gòu)造方法:當(dāng)一個類沒有包含構(gòu)造方法時,Java將自動提供一個默認(rèn)

25、的構(gòu)造方法。對象 1聲明對象聲明一個對象只是命名一個引用變量,這個引用變量和對象關(guān)聯(lián),可以用來引用該對象。聲明一個對象的格式如下: 類名 變量名對象名; 例如,聲明對象: Point p1,p2;不要把聲明一個對象和創(chuàng)立一個對象混淆起來。聲明對象并不會為這個對象分配內(nèi)存。2創(chuàng)立對象創(chuàng)立對象:使用new操作符和構(gòu)造方法。構(gòu)造方法是在對象實例化過程中使用的特殊方法;操作符new為新的對象分配一片內(nèi)存并將它存儲在那里,然后返回對象的地址。格式為: new 構(gòu)造方法名(構(gòu)造方法的調(diào)用參數(shù)列表) 例如: p1 = new Point(); p2 = new Point(30,40);聲明和創(chuàng)立對象也可以

26、一起完成,例如: Point p3 = new Point(), p4 = new Point(60,70);3對象的內(nèi)存模型在Java中有兩種類型的變量:根本類型與引用類型。根本類型的變量總是存放一個該類型的值;引用變量實際上存放的是它所引用的對象的地址,而不是存放對象本身。在Java中,主要有數(shù)組和類類型是引用類型。 4使用對象程序使用對象:訪問對象的成員變量,一般形式為: 對象名.成員變量名調(diào)用對象的方法,一般形式為: 對象名.方法名(參數(shù)表)實例變量和類變量 被關(guān)鍵字static修飾的變量為類變量靜態(tài)變量,未被關(guān)鍵字static修飾的變量為實例變量。 例如: class D float

27、 x; / 實例變量 static int y; /類變量 每個對象都有自己的實例變量,不同對象的實例變量也將被分配不同的內(nèi)存空間。類變量那么被一個類的所有對象共享,在內(nèi)存中也只有一處??梢酝ㄟ^類名或?qū)ο竺妙愖兞俊嵗椒ê皖惙椒?被關(guān)鍵字static修飾的方法為類變量靜態(tài)方法,未被關(guān)鍵字static修飾的方法為實例方法。例3.7注意:類中的實例方法可以互相調(diào)用,并可調(diào)用類方法。類方法也能相互調(diào)用,但不能直接調(diào)用實例方法,而要通過在類方法中引入局部對象,通過對象名調(diào)用實例方法。類中的實例方法中可以直接使用實例變量,也可直接使用類變量。但類方法能直接使用類變量,卻必須通過在類方法中引入的局部

28、對象,用對象名引用實例變量。精選精選.精選.類方法可以通過類名或?qū)ο竺{(diào)用。例3.8訪問權(quán)限 設(shè)置訪問權(quán)限實現(xiàn)訪問控制,為類的成員設(shè)置訪問權(quán)限,保護(hù)類的成員不在非期望的情況下被引用。在類的聲明中,除了類的方法總能訪問類的成員變量外,為其他類的方法訪問本類的成員變量和方法,提供了四種訪問權(quán)限:public:無訪問限制,其他類的方法都能訪問private:最強訪問限制,其他類的方法都不能訪問protected:僅限子類或同一包中的類的方法訪問:只允許同一包中的類的方法訪問繼承 繼承性 - 軟件重用的一種方法繼承使得一個類可通過擴展現(xiàn)有類來定義擴展聲明的新類稱為子類,原有的類稱為超類父類子類繼承超類

29、的變量和方法;子類可以增加新的變量和方法;子類可以重寫第51頁從超類中繼承的方法。子類對父類的繼承性,Java語言有以下規(guī)定:子類自然地繼承其父類中非private的成員變量作為自己的成員變量子類自然地繼承其父類中非private的成員方法作為自己的成員方法多態(tài)性 靜態(tài)的多態(tài)性:重載,在編譯時就能夠被識別針對的是同一個類內(nèi)的同名方法重載的方法。動態(tài)的多態(tài)性:重寫,在程序運行時才被識別動態(tài)聯(lián)編重寫父類的方法同樣簽名。多層繼承 繼承關(guān)系具有傳遞性。繼承聲明的新類,又可被其他類再繼承,從而構(gòu)成多層繼承。 Java面向?qū)ο蟮钠渌麢C制 1 final類、final方法和final變量關(guān)鍵字final的含

30、義為“最終的,“不能改變的。用final修飾類,說明此類不能派生出子類,例如:final class C 用final修飾方法,說明此方法不能被子類的方法重寫覆蓋 例如:final int f( int x, int y ) 用final修飾變量,說明此變量一旦賦值,那么不能再被改變,相當(dāng)于一個常量 例如:final int FINALVAR = 100;2abstract類和abstract方法關(guān)鍵自abstract的含義為“抽象,用abstract修飾類,此類稱為抽象類,抽象類不能被實例化;用abstract修飾方法,此方法稱為抽象方法,抽象方法沒有實現(xiàn)的代碼方法首部; 包含抽象方法的類一

31、定是抽象類,但抽象類可以沒有抽象方法。3關(guān)鍵字super關(guān)鍵字super的用途:在子類型的非靜態(tài)成員方法中訪問其父類型的成員變量4關(guān)鍵字this關(guān)鍵字this的用途:在當(dāng)前類的非靜態(tài)成員方法中訪問當(dāng)前類的成員變量5類之間的is-a和has-a關(guān)系例:類A繼承自類B,子類A與父類B之間有is-a關(guān)系例:類A的某個成員變量的類型是B,類A和類B之間是has-a關(guān)系6內(nèi)部類inner class定義在其它類內(nèi)部的類稱為內(nèi)部類。接口(interface)Java小應(yīng)用程序根底 Java Applet主要功能:顯示圖形、動畫、播放聲音、響應(yīng)用戶事件等。Java applet 的實現(xiàn)主要依靠java.ap

32、plet 包中的Applet類。 java. applet. Applet類是所有Java applet的基類,所有的Java applet都必須繼承該類。1小應(yīng)用程序的建立和運行 Java applet程序從建立到運行的步驟如下:選用寫字板或文本編輯器等工具建立Java applet源程序。其中必須有一個類繼承java.applet.Applet類,這個類是小應(yīng)用程序的主類,用關(guān)鍵字public修飾。把Java applet的源程序編譯為字節(jié)碼文件。精選精選.精選.編制HTML文件,通過標(biāo)記將字節(jié)碼文件嵌入HTML文件中。在支持Java的瀏覽器上運行。2Applet類的根本方法 public

33、 void init( )public void start( )public void paint( )public void stop( )public void destroy( )public void repaint( )public void update( )4小應(yīng)用程序數(shù)據(jù)輸入與輸出 小應(yīng)用程序的數(shù)據(jù)輸入有多種方式:從圖形用戶界面的文本框、文本區(qū)域中輸入;采用系統(tǒng)標(biāo)準(zhǔn)輸入;由HTML文件中的參數(shù)導(dǎo)入。數(shù)組和字符串1. 數(shù)組 數(shù)組是連續(xù)存儲區(qū)域的命名集合,這些存儲區(qū)域彼此相鄰,存放著相同類型的數(shù)據(jù)元素。一維數(shù)組 1聲明一維數(shù)組一維數(shù)組變量的聲明格式有如下兩種:數(shù)組元素的數(shù)據(jù)類型

34、數(shù)組名;數(shù)組元素的數(shù)據(jù)類型 數(shù)組名 ;2創(chuàng)立一維數(shù)組Java數(shù)組是引用類型,可以通過new 操作符來創(chuàng)立;在創(chuàng)立一個數(shù)組時必須指明數(shù)組的元素類型和它的長度。先聲明后創(chuàng)立 格式:數(shù)組名 = new 數(shù)組元素類型元素個數(shù) 例如: char c; / 聲明數(shù)組 c = new char5; / 創(chuàng)立數(shù)組,并分配內(nèi)存在聲明時創(chuàng)立 例如: char c = new char5;對于較小的數(shù)組,可以使用直接賦值創(chuàng)立,即在聲明數(shù)組時賦給它初值。數(shù)組初始化表達(dá)式寫成一組用逗號分開的擴在花括號里的表達(dá)式。例如:int arr = 2, -9, 15, -2, 0, 80, 7; char c = h, e, l

35、, l, o;3引用一維數(shù)組元素數(shù)組的每個元素通過它在數(shù)組里的位置來引用:數(shù)組名 下標(biāo) ,例如:arr7數(shù)組下標(biāo)必須是0到N-1之間的整數(shù),或值在0到N-1之間的整數(shù)表達(dá)式,其中N是數(shù)組里元素的個數(shù)。例如:arr7、arri+j其中i=1, j=6使用一個不在0到N-1范圍內(nèi)的下標(biāo)值系統(tǒng)將發(fā)生運行時異常,這是由于Java運行系統(tǒng)會對數(shù)組下標(biāo)自動進(jìn)行范圍越界檢查。例如:arr-1、arr15多維數(shù)組 1聲明二維數(shù)組聲明二維數(shù)組的形式有以下三種:數(shù)據(jù)元素類型 數(shù)組名 數(shù)據(jù)元素類型 數(shù)組名數(shù)據(jù)元素類型 數(shù)組名 2創(chuàng)立二維數(shù)組創(chuàng)立二維數(shù)組的方法也有多種:直接分配適用于平衡二維數(shù)組,即矩陣格式:類型 數(shù)

36、組名 = new 類型長度1長度2;例如: double rainfall = new double1231;從最高維開始,分別對每一維分配不等長空間適用于非平衡數(shù)組例如: int a = new int3 ; int a0 = new int4; int a1 = new int5; int a2 = new int2;直接賦值創(chuàng)立適用于元素較少的數(shù)組例如:int x = 5,6,7,精選精選.精選. 8,9,10,11, 18,19,20,15, 2,9 ;3引用二維數(shù)組元素書中例如的非平衡二維數(shù)組x中,x23值為154使用二維數(shù)組要注意的問題二維數(shù)組名下標(biāo)1是一維數(shù)組。二維數(shù)組名.len

37、gth是二維數(shù)組的子數(shù)組個數(shù);二維數(shù)組名下標(biāo)1.length是指定子數(shù)組的元素個數(shù)。2. 字符串 字符串常量 雙引號括起來的字符序列。例如:“student、“你好 或“123.456字符串聲明和創(chuàng)立 String name1 = new String( );String name2 = new String(“Hello World);char a = 1,2,3,4,5,6,7;String name3 = new String(a);String name4 = new String(a,2,4);字符串根本操作 1字符串連接String s1 = “sweet;String s2 =

38、new String( “you + “are + s1);2獲取字符串長度方法:public int length() 功能:返回此字符串的長度3字符串前綴或后綴的比較方法:public boolean startsWith(Stringprefix)功能:測試此字符串是否以指定的前綴開始方法:public boolean endsWith(Stringsuffix)功能:測試此字符串是否以指定的后綴結(jié)束 4比較兩個字符串是否相同方法:public boolean equals(Objectobj)功能:比較兩個引用變量是否引用同一個對象,例如x.equals(y),對于任何非空引用值 x

39、和 y,當(dāng)且僅當(dāng) x 和 y 引用同一個對象時,此方法才返回 truex = y 具有值 true。方法:public boolean equalsIgnoreCase(StringanotherString)功能:將此 String 與另一個 String 比較,不考慮大小寫。如果兩個字符串的長度相同,并且其中的相應(yīng)字符都相等忽略大小寫,那么認(rèn)為這兩個字符串是相等的。方法:public int compareTo(Stringstr)功能:按字典順序比較兩個字符串的大小。該比較基于字符串中各個字符的 Unicode 值。如果此 String 對象小于參數(shù)字符串,那么返回一個負(fù)整數(shù)。如果此 S

40、tring 對象大于參數(shù)字符串,那么返回一個正整數(shù)。如果這兩個字符串相等,那么返回 0。方法:public int compareToIgnoreCase(Stringstr)功能:按字典順序比較兩個字符串,不考慮大小寫。 5字符串檢索String的實例方法indexOf( ) 可以 用于在字符串中查找一個字符或子串的索引位置。indexOf( )方法在一個String里從左到右查找一個字符或子串,它有幾種版本:public int indexOf( String string );public int indexOf( String string, int startingIndex );6

41、取字符串的子串方法substring( )可以用 來從一個String里檢索一個字符子串。 public String substring( int startIndex ) 例如: String str = “HelloWorld; str.substring( 5 ); / “World str.substring( 9 ); / d7替換字符串中的某字符得到一個新字符串方法:public String replace(charoldChar, charnewChar)功能:返回一個新的字符串,它是通過用 newChar 替換此字符串中出現(xiàn)的所有 oldChar 得到的。8去掉前后空格得到

42、一個新字符串方法:public String trim() 精選精選.精選.功能:返回字符串的副本,去掉前后空白。9根本類型值的字符串表示String的類方法valueOf( )用于把某種根本類型的值轉(zhuǎn)換成一個String對象。10字符串得到根本類型對象每種根本類包裝類,除Character都有類方法能將字符串轉(zhuǎn)換成根本類的對象,形如: public static Type valueOf(String s) 其中,Type代表任何根本類,包括Boolean、Integer、Double等。11字符串得到根本類型值每種根本類包裝類,除Character都有類方法能從字符串中解析出根本類型的值,

43、形如: public static type parseType(Strings) 其中,type代表任何根本數(shù)據(jù)類型,包括boolean、int、double等,Type代表相應(yīng)的包裝類。StringTokenizer類 java.util.StringTokenizer類用來把字符串分解為標(biāo)記。常用構(gòu)造方法1:public StringTokenizer(Stringstr) /為指定字符串構(gòu)造一個 string tokenizer。使用默認(rèn)的分隔符集 “tnrf,即:空格字符、制表符、換行符、回車符和換頁符。 常用構(gòu)造方法2:public StringTokenizer(Stringst

44、r, Stringdelim) /為指定字符串構(gòu)造一個 string tokenizer。delim 參數(shù)中的字符都是分隔標(biāo)記的分隔符。 常用方法:public int countTokens() / 返回使用當(dāng)前分隔符集的字符串中剩余的標(biāo)記數(shù) public String nextToken() /返回此 string tokenizer 的下一個標(biāo)記。 public boolean hasMoreElements() /測試此 string tokenizer 的字符串中是否還有更多的可用標(biāo)記。如果此方法返回 true,那么后續(xù)調(diào)用無參數(shù)的 nextToken 方法將成功地返回一個標(biāo)記。 字

45、符串與字節(jié)數(shù)組 可以使用String構(gòu)造方法,利用字節(jié)數(shù)組創(chuàng)立字符串:public String(byte bytes) /通過使用默認(rèn)字節(jié)字符對應(yīng)表,由字節(jié)數(shù)組構(gòu)造一個新的 String。新 String 的長度是字符集的函數(shù),因此可能不等于 byte 數(shù)組的長度。 public String(byte bytes, intoffset, intlength) /通過使用默認(rèn)字節(jié)字符對應(yīng)表,由字節(jié)數(shù)組起始位置offset開始取length個字節(jié)構(gòu)造一個新的 String。String類也提供實例方法將字符串轉(zhuǎn)化為字節(jié)數(shù)組:public byte getBytes() / 使用默認(rèn)字節(jié)字符對應(yīng)

46、表將字符串轉(zhuǎn)化為字節(jié)數(shù)組對象的字符串表示 根類Object中定義了實例方法 public String toString() 此方法的功能描述為:返回該對象的字符串表示。圖形界面設(shè)計一1. 圖形界面設(shè)計根底AWT和Swing AWT:Abstract Windowing Toolkit,抽象窗口工具包Swing:與AWT相比功能更加強大、完善,平臺相關(guān)性較小組件和容器組件 Component 組件是Java圖形用戶界面的最根本組成局部,是一個可以以圖形化的方式顯示在屏幕上、并能與用戶進(jìn)行交互的對象,組件不能獨立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。容器 Container 容器

47、是可以容納其他組件的組件,是圖形界面的復(fù)合元素。Container類有 add()方法,可以向容器添加組件。 類java.awt.container的成員方法:public Component add( component comp ) / 將組件comp添加到當(dāng)前容器中Component、Container和Graphics類是AWT庫中的關(guān)鍵類。事件驅(qū)動程序設(shè)計根底 精選精選.精選.1事件、監(jiān)視器和監(jiān)視器注冊在Java里,每當(dāng)某件事發(fā)生在一個GUI組件事件源或源對象里,會生成一個事件對象event并傳給為處理該事件而注冊的事件監(jiān)視器event listener。2實現(xiàn)事件處理的途征事件處理

48、模型的三個根本要素:事件源(An event source) 事件對象(An event object)事件監(jiān)視器(event listener(s)事件源源對象可供用戶進(jìn)行交互的GUI組件事件對象包裝相應(yīng)的事件記錄事件源以及處理該事件所需要的各種信息事件對象對應(yīng)的類一般位于包java.awt.event和包javax.swing.event中事件監(jiān)視器事件監(jiān)聽器在事件源中注冊事件監(jiān)視器,當(dāng)有事件發(fā)生時,事件源接收事件對象,并交由相應(yīng)的事件監(jiān)聽器處理事件監(jiān)聽器對應(yīng)的接口和適配器類一般位于包java.awt.event和包javax.swing.event中3事件類型和監(jiān)視器接口常用的事件:動作

49、事件ActionEvent、項事件ItemEvent、列表選擇事件ListSelectionEvent、文檔事件DocumentEvent類javax.swing.Frame的成員方法:public Container getContentPane( ) / 返回當(dāng)前Frame的內(nèi)容窗格類java.awt.container的成員方法:public Component add( component comp ) / 將組件comp添加到當(dāng)前容器中對于頂層容器,是向其內(nèi)容窗格添加組件;對于其他容器,那么可直接添加組件。為頂層容器添加組件的另一種方法:建立JPanel對象作為中間容器,將組件添加到

50、這個容器中,再用方法public void setContentPane(Container contentPane)把此中間容器設(shè)置為內(nèi)容面板。 JPanel contentPane = new JPanel(); / 添加組件到contentPane中 mw = setContentPane(contentPane); / mw為之前創(chuàng)立的某JFame對象 3. 標(biāo)簽、按鈕和按鈕事件 標(biāo)簽javax.swing.JLabel是用于短文本字符串或圖像或二者的顯示區(qū)。標(biāo)簽不對輸入事件作出反響。標(biāo)簽類javax.swing.JLabel的構(gòu)造方法:public JLabel( )public J

51、Label( String text )public JLabel( String text, int align ) / 參數(shù)text指定標(biāo)簽的文字信息;參數(shù)align指定文字在水平方向上的對齊方式。常見對齊方式:javax.swing.JLabel.LEFT左對齊、javax.swing.JLabel.CENTER中對齊、javax.swing.JLabel.RIGHT右對齊JLabel的常用成員方法:public void setText( String text ) / 設(shè)置標(biāo)簽的文字信息public void getText( ) /返回該標(biāo)簽所顯示的文本字符串 public voi

52、d setBackground(Color bg) / 設(shè)置標(biāo)簽的背景色,默認(rèn)為容器的背景色 public void setForeground(Color fg) / 設(shè)置標(biāo)簽的前景色,即標(biāo)簽上的文字的顏色,默認(rèn)為黑色 按鈕 :命令式按鈕在界面設(shè)計中用于激發(fā)動作事件。命令式按鈕類javax.swing.JButton的構(gòu)造方法:public JButton ( )public JButton ( String text)JButton的成員方法詳見課本92頁。public void addActionListener( ActionListener a )/ 為按鈕注冊由參數(shù)a指定的動作事件

53、監(jiān)視器動作事件監(jiān)視器一般是實現(xiàn)接口java.awt.event.ActionListener的類的實例對象。接口java.awt.event.ActionListener的定義如下: public interface ActionListener extends EventListener public void actionPerformed( ActionEvent e ); 動作事件對象動作事件對象的具體類型為java.awt.event.ActionEvent。類java.awt.event.ActionEvent的常用成員方法包括:public Object getSource( )

54、 / 返回當(dāng)前事件的事件源public String getActionCommand( ) / 返回當(dāng)前動作事件相關(guān)的字符串精選精選.精選.類JButton中定義了成員方法:public void setActionCommand(StringactionCommand) /設(shè)置此按鈕的動作命令 按鈕動作事件處理程序的根本內(nèi)容包括:定義一個類,實現(xiàn)接口ActionListener,即在此類中實現(xiàn)actionPerformed()方法4. 面板 JPanel見課本94-95頁面板是一種常用容器,常被用作中間容器。面板類javax.swing.JPanel的構(gòu)造方法:public JPanel

55、( )public JPanel(LayoutManager layout) /創(chuàng)立具有指定布局管理器的JPanel使用JPanel的兩種途徑:(1) 直接創(chuàng)立JPanel的實例對象,在其中添加組件,再將其放入另一個容器中如JFrame(2)定義JPanel類的子類,在其構(gòu)造方法中向其中添加組件,再通過創(chuàng)立這個子類的實例對象,并將這個對象參加另一個容器中 JPanel的常用成員方法:public void setPreferredSize( Dimension preferredSize )/ 將面板大小設(shè)置為參數(shù)preferredSize所指定的尺寸類java.awt.Dimension的構(gòu)

56、造方法:public Dimension( int width, int height) /參數(shù)width指定寬度,參數(shù)height指定高度public void setBackground( Color bg ) /將面板背景顏色設(shè)置為參數(shù)bg所指定的顏色JScrollPane見課本95-96頁:帶有滾動條的面板,它也是java.awt.container類的子類,但規(guī)定只能向其中添加一個組件。當(dāng)一個容器的顯示區(qū)域缺乏,導(dǎo)致無法同時顯示其中的所有組件時,如果讓容器帶有滾動條,那么通過移動滾動條的滑塊,就可以看到所有位置上的組件。為容器添加滾動條的工作,可以通過將容器添加到一個JScrollP

57、ane中實現(xiàn)。滾動窗格javax.swing.JScrollPane的構(gòu)造方法:public JScrollPane( ) / 可以先創(chuàng)立JScrollPane對象,再用其成員方法setViewportView(Componentview)設(shè)置需要加上滾動條功能的組件public JScrollPane( Component view) / 參數(shù)view指定需要加上滾動條功能的組件,只要組件的內(nèi)容超過視圖大小就會顯示水平和垂直滾動條 設(shè)置JScrollPane滾動條屬性的成員方法:public void setHorizontalScrollBarPolicy(intpolicy) / 確定水

58、平滾動條何時顯示在滾動窗格上。選項有: ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED 水平滾動條需要時才顯現(xiàn) ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER 水平滾動條總是不可見ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS 水平滾動條總是可見public void setVerticalScrollBarPolicy(int policy) / 確定垂直滾動條何時顯示在滾動窗格上。選項有: ScrollPaneConstants.VERTICA

59、L_SCROLLBAR_AS_NEEDED垂直滾動條需要時才顯現(xiàn) ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER 垂直滾動條總是不可見ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS 垂直滾動條總是可見5. 布局設(shè)計課本96-102頁,綜合應(yīng)用FlowLayout布局 流布局管理器java.awt.FlowLayout是 java.awt.Applet、java.awt.Panel 和 javax.swing.JPanel的默認(rèn)布局方式。特點:在容器中,從左到右依次排列組件,當(dāng)組件排滿一行時,那么從下一行開始繼

60、續(xù)排列組件??梢栽O(shè)置每行組件的對齊方式為: 左對齊、中間(默認(rèn)對齊方式)和右對齊。類java.awt.FlowLayout的構(gòu)造方法:public FlowLayout( )public FlowLayout( int align )public FlowLayout( int align, int hgap, int vgap) / 參數(shù)hgapvgap指定同一行相鄰兩組件之間的水平豎直間隙,單位為像素,默認(rèn)值均為5;參數(shù)align指定行對齊方式:java.awt.FlowLayout.LEFT左對齊、java.awt.FlowLayout.CENTER中對齊、java.awt.FlowLa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論