版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
自考語言程序設(shè)計(一)串講筆記
1.1Java語言的特點
Java語言最初的應(yīng)用對象是消費性電子產(chǎn)品。最
初的名字是0ak語言。
Java語言是適用于分布式計算環(huán)境的面向?qū)ο缶幊陶Z
言,它雖類似于C和C++,但比C++簡單,忽略了許多為
提高計算效率但初學(xué)者較難掌握的程序語言特性。
Java語言主要有以下特點:
①強類型。
②編譯和解釋:Java語言是一種高級編程語言,用
Java語言編寫的源程序在計算機上運行需要經(jīng)過編譯
和解釋執(zhí)行兩個嚴(yán)格區(qū)分的階段。Java的編譯程序先
將Java的源程序翻譯成與機器無關(guān)的字節(jié)碼,不是通常
的編譯程序?qū)⒃闯绦蚍g成特定計算機的機器代碼。
運行時,Java的運行系統(tǒng)裝載和鏈接需要執(zhí)行的類,并
作必要的優(yōu)化后,解釋執(zhí)行字節(jié)碼程序。
③自動無用內(nèi)存回收功能,沒有指針,數(shù)組元素都
要檢查下標(biāo)是否越界。
④面向?qū)ο蟆?/p>
?1?第1章Java語言基礎(chǔ)
⑤與平臺無關(guān):在任何平臺上,Java源程序被Java
編譯器譯成虛擬機能夠識別的字節(jié)碼。這樣,只要有
Java虛擬機的平臺,就能解釋執(zhí)行Java字節(jié)碼程序,從
而實現(xiàn)Java程序與平臺無關(guān)。
⑥安全性。
⑦分布式計算。
⑧多線程。
1.2Java應(yīng)用程序和小應(yīng)用程序
Java程序可以是獨立的應(yīng)用程序,也可以是能在瀏
覽器上執(zhí)行的小應(yīng)用程序(App1et)。兩種Java程序都
由一個或多個擴展名為class”的文件組成,而且都需
要Java虛擬機(JVM)載入并翻譯。
兩種程序的主要區(qū)別是:
①小應(yīng)用程序只能在與Java兼容的容器中運行,可
以嵌入在HTML網(wǎng)頁內(nèi),在網(wǎng)絡(luò)上發(fā)布,當(dāng)網(wǎng)頁被瀏覽
時,在瀏覽器中運行,小應(yīng)用程序的運行還受到嚴(yán)格的安
全限制,例如:它不能訪問用戶計算機上的文件。Java應(yīng)
用程序沒有這些限制,也不支持網(wǎng)頁嵌入和下載運行。
②小應(yīng)用程序和應(yīng)用程序在代碼編寫上也有很大
差異。一個小應(yīng)用程序必須定義成一個App1et類的子
類。應(yīng)用程序可以是App1et類的子類,也可以不是。應(yīng)
用程序必須在一個類中定義一個main()方法,該方法代
表應(yīng)用程序的入口。而小應(yīng)用程序不必定義main()方
,2?Java語言程序設(shè)計(一)
法,它的執(zhí)行由App1et類中定義的多個方法控制。
Java源程序命名受到嚴(yán)格的限制:
Java源程序的擴展名必須是java”,而源程序經(jīng)過
編譯后得到的應(yīng)用程序文件名(即字節(jié)碼文件)的主文
件名和源程序中的類名一樣,而擴展名是c1ass"。如
果源文件中多個類,那么最多只能有一個Pub1ic類;如
果源文件中有Pub1ic類,那么源文件的名字必須與這個
類的名字完全相同。如果源文件沒有Pub1ic類,那么源
文件的名字只要和某一個類的名字相同即可。
Java程序中經(jīng)常會出現(xiàn)注釋。注釋是程序中的說
明文字,用于幫助閱讀程序,它不是語句,不會影響程序
的執(zhí)行效率。
Java語言的注釋有三種形式:
①行注釋(//):用于簡短地說明前面代碼的意義或
功能。注釋內(nèi)容到行末,不能跨行。
②塊注釋(/.............../):是多行注釋,用于說
明下面程序段的算法、功能等,塊注釋不可嵌套使用。
③文檔注釋(/................./):能被實用程序(命
令)javad。c接受,由它能自動生成程序的HTML文檔。
1.3Java程序的開發(fā)過程(以下以SUN公司的
JavaJDK為例)
對于Java應(yīng)用程序,先編寫Java源程序,源程序經(jīng)
Java編譯器(javac.exe)編譯后產(chǎn)生字節(jié)碼文件,最后由
Java解釋器(java.exe)解釋執(zhí)行字節(jié)碼文件。
?3?第1章Java語言基礎(chǔ)
對于小應(yīng)用程序,先編寫Java源程序,源程序經(jīng)Ja
va編譯器編譯后產(chǎn)生字節(jié)碼文件,最后由Web瀏覽器
(appletviewer.exe)解釋執(zhí)行字節(jié)碼文件。
編譯器和解釋器的使用格式是:
javac[選項]源文件(其中源文件是java文件)
java[選項]類名[參數(shù)](類名指定的必須是含有
main()方法的類,即是一個Java應(yīng)用程序)
通常情況下用的比較多的開發(fā)環(huán)境有Ec1ipse,
JBui1der等。
1.4標(biāo)識符和關(guān)鍵字
Java語言使用Unicode字符集,共有65535個字符。
Java標(biāo)識符用于命名程序?qū)ο蟆?/p>
Java語言的標(biāo)識符可以按以下規(guī)則任意命名:
①由字母(包括英文字母、下劃線字符、美元字符、
文字字符)和數(shù)字組成。
②限定標(biāo)識符的第一個字符不能是數(shù)字字符。
除了按上述規(guī)則命名標(biāo)識符外,另外還有命名的習(xí)
慣約定(行業(yè)習(xí)慣,不是規(guī)定):一般變量名、方法名用小
寫英文字母開頭,類名首字母用大寫字母,若命名由若
干個單詞組成,后面的每個單詞用大寫開頭;文字和常
數(shù)全用大寫字母命名;包名全部用小寫字母。
Java關(guān)鍵字:關(guān)鍵字是一些英文單詞,在語言中,關(guān)鍵
字已經(jīng)被賦予特定的意義,不能用這些關(guān)鍵字作為標(biāo)識符
,4?Java語言程序設(shè)計(一)
命名程序?qū)ο?。關(guān)鍵字全部由小寫字母組成。每個關(guān)鍵字
在程序中出現(xiàn),均有特定位置和特定使用方法的要求。
1.5基本數(shù)據(jù)類型
Java語言是強類型語言,每個變量和表達式都有確
定的類型,在變量賦值時要進行類型兼容性檢驗。
數(shù)據(jù)類型可分為非基本數(shù)據(jù)類型和基本數(shù)據(jù)類型
兩大類。
非基本類型也稱為復(fù)合數(shù)據(jù)類型,是由基本類型組合
的新類型。非基本數(shù)據(jù)類型分為:數(shù)組、字符串、類、接口。
基本數(shù)據(jù)類型也稱為原始數(shù)據(jù)類型,是系統(tǒng)預(yù)先規(guī)
定的一些常用類型。它們是:整數(shù)類型、浮點數(shù)(實數(shù))
類型、字符(文字)類型、邏輯類型(布爾型)。
①邏輯類型用關(guān)鍵字boo1ean標(biāo)識,所以也稱為布
爾型。邏輯類型只有真(true)和假(false)兩個值。
②字符類型用關(guān)鍵字char標(biāo)識。字符型數(shù)據(jù)是一
個字符,內(nèi)部表示是字符的Unicode代碼,共有65535個
不同的字符。在Java程序中,字符常量有普通字符常量
(用單引號括住一個字符)和轉(zhuǎn)義字符常量(用'開頭后
跟特定字符或字符串)兩種。
③整數(shù)類型是指不帶小數(shù)點和指數(shù)的數(shù)值數(shù)據(jù)。
由于計算機只能表示整數(shù)的一個子集,表達更大范圍內(nèi)
的整數(shù)需要更多的二進制位,Java語言將整數(shù)數(shù)據(jù)按數(shù)
值范圍大小不同分成四種:基本型用關(guān)鍵字int標(biāo)識,4
?5?第1章Java語言基礎(chǔ)
個字節(jié),32位,取值范圍是一231—231—1;短整型用關(guān)鍵
字sh。rt標(biāo)識,2個字節(jié),16位,取值范圍是一215—215—
1;字節(jié)型用關(guān)鍵字bvte標(biāo)識,1個字節(jié),8位,取值范圍
是一27?27—1;長整型用關(guān)鍵字long標(biāo)識(或者在常數(shù)
后加L或1標(biāo)識),8個字節(jié),64位,取值范圍是一263?
263-10每種整數(shù)類型處理不同范圍的整數(shù)值,并且都
是帶符號的。
整型常量有十進制、八進制(以數(shù)字符0開頭)和十
六進制(以0x開頭)三種寫法。
④浮點數(shù)類型也稱為實型,浮點數(shù)是帶小數(shù)點或指數(shù)
的數(shù)值數(shù)據(jù)。Java語言的浮點數(shù)有單精度和雙精度兩種。
單精度型用關(guān)鍵字f1oat標(biāo)識,占4個字節(jié),32位。
F1oat型常量的書寫方法是在實數(shù)之后加上字母F或f。
雙精度用關(guān)鍵字doub1e標(biāo)識,占8個字節(jié),64位。
double型常量的書寫方法有兩種:一種寫法是直接寫一
個實數(shù),或在實數(shù)后加字母D或d。另一種是科學(xué)計數(shù)
法,用10的方幕(用字符e或E表示暴底10)。
,6?Java語言程序設(shè)計(一)
2.1數(shù)據(jù)運算
Java語言的基本運算可分成以下幾類:賦值運算、
算術(shù)運算、自增和自減運算、關(guān)系運算、邏輯運算、條件
運算和字符串連接運算等。
2.1.1賦值運算
在Java語言中符號是賦值運算符不是“相等”運
算符(相等運算符是“=="見關(guān)系運算符的敘述)賦值運
算分為兩類:一是簡單賦值運算;二是復(fù)合賦值運算。
1.簡單賦值運算
簡單賦值運算的一般形式如下:
變量表達式
賦值運算的執(zhí)行過程是:
(1)計算賦值運算符右端的表達式。
(2)當(dāng)賦值運算兩側(cè)的類型不一致時,將表達式值
的類型自動轉(zhuǎn)換成變量的類型。
(3)將表達式的值賦值給變量,即存儲到與變量對
應(yīng)的存儲單元中。
這里的類型轉(zhuǎn)達換是指數(shù)值數(shù)據(jù)的類型自動轉(zhuǎn)換,
這樣的自動轉(zhuǎn)換只能是簡單類型向復(fù)類型轉(zhuǎn)換,不能從
?7?第2章運算和語句
復(fù)雜的轉(zhuǎn)換成簡單的。即如下所示的從左到右轉(zhuǎn)換。
byte-shortint1ong-f1oatdoub1e
Java語言約定賦值運算也有值,它的值就是賦予變
量的值,因此,賦值運算的結(jié)果可以繼續(xù)賦值。
intj;
doub1ey=2.0;
y=j=3;〃j的值為3,y的值為3.0
賦值運算符結(jié)合性“自右至左”當(dāng)連續(xù)有多個賦值
運算時,是從右至左逐個賦值。
2.復(fù)合賦值運算
這類運算的特殊性點是:變量即要參與運算,又要
接受賦值。為避免對同一個變量的地址重復(fù),計算引入
復(fù)合賦值運算符。常用的復(fù)合賦值運算符有:+=、
—=、=、/=、%=。
2.1.2算術(shù)運算
算術(shù)運算要求運算分量的類型是數(shù)值類型的(整數(shù)
類型和浮點數(shù)類型)。運算時,只需一個運算分量的是
單目運算,需兩個運算分量的是雙目運算。特別的:
(1)“/”為除法運算符,當(dāng)除數(shù)和被除數(shù)均為整數(shù)類型
數(shù)據(jù)時,則結(jié)果也是整數(shù)類型數(shù)據(jù)。例如7/4的結(jié)果為1。
(2)“%”為求余數(shù)運算符,求余數(shù)運算所得結(jié)果的符
號與被除數(shù)的符號相同。例如5%3的結(jié)果為2,—5%3的
結(jié)果為的結(jié)果為3。
,8?Java語言程序設(shè)計(一?)
2.1.3自增和自減運算
自增運算符“++”和自減運算符“一一”是單目運
算符,要求運算分量是數(shù)值類型的變量,其作用是使變
量的值增1或減1,這兩個運算符與變量結(jié)合有以下四
種可能形式:
++i前綴形式,表示在引用變量i之前,先使i加
1,以加1后的i值為運算結(jié)果。
-i前綴形式,表示在引用變量i之前,先使i減1,
以減1后的i值為運算結(jié)果。
i++后綴形式,表示在引用變量i之后,才使i加1,
即以增1前的i值為運算結(jié)果。
i——后綴形式,表示在引用變量i之后,才使i減1,
即以減1前的i值為運算結(jié)果。
例如:
i=4;j=++i;〃i結(jié)果為5,j的結(jié)果為5
i=4;j=i++;〃1的結(jié)果為5,j的結(jié)果為4
i=4;j=!!i;〃i結(jié)果為3,j的結(jié)果為3
i=4;j=i!!;//i結(jié)果為3,j的結(jié)果為4
上述例子說明,對變量采用自增(或自減),用前綴
形式或用后綴形式,對變量本身來說,效果是相同的,但
表達式的值不相同。前綴形式是變量運算之后的新值,
后綴形式是變量運算之前的值.
自增自減運算能使程序更為簡潔和高效,但在使用
?9?第2章運算和語句
時需注意“++”和“??!”運算的運算對象只能是變量,
不能是常量或表達式.例如,4++或(i+j)++都是不
合法的.
2.1.4關(guān)系運算
關(guān)系運算對左右兩側(cè)的值進行比較,如果比較運算
的結(jié)果成立,則值為true,不成立為false。
關(guān)系運算符的優(yōu)先級別不完全相同。V、<=、>、
>=的優(yōu)先級高于==、!=o
關(guān)系運算符的優(yōu)先級低于算術(shù)運算符的優(yōu)先級。
2.1.5邏輯運算
邏輯運算用來描述表達式,實現(xiàn)連續(xù)多個條件的邏
輯與、邏輯或、邏輯否定的判定。有3個邏輯運算符:
〃〃(邏輯與)、||(邏輯或)、?。ㄟ壿嫹穸ǎ?/p>
其中:運算符"'和”是雙目運算符,運算符!是
單目運算符。邏輯運算的操作數(shù)必須是布爾型的,結(jié)果
也是布爾型的。
邏輯否定“!”的優(yōu)先級高于算術(shù)運算符的優(yōu)先級。
邏輯與“〃〃”和邏輯或”的優(yōu)先級低于關(guān)系運算符
的優(yōu)先級。
需要特別指出的是,邏輯與和邏輯或運算符有以下
性質(zhì),Java語言利用這些性質(zhì),在進行連續(xù)的邏輯運算
時,不分邏輯與和邏輯或的優(yōu)先級進行計算,而是順序
進行邏輯與和邏輯或的計算,一旦邏輯子表達式或邏輯
,01?Java語言程序設(shè)計(一)
表達式能確定結(jié)果,就不再繼續(xù)計算。
(1)對表達式ab,當(dāng)a為fa1se時,結(jié)果為
false,不必再計算b;僅當(dāng)a為true時,才需計算b。
(2)對表達式a||b,當(dāng)a為true時,結(jié)果為true,不
必再計算b;僅當(dāng)a為fa1se時,才需計算b。
例如:設(shè)有a=b=c=1,計算++a>=lII++b<
++c。從左到右順序計算邏輯或表達式,先計算子表
達式++a>=l,變量a的值變?yōu)?,++a>=l為
true,整個邏輯表達式的值已經(jīng)為true,不再計算右邊的
子表達式++bV++c。因而,變量b和變量c的值不
變,仍為1。
2.1.6條件運算(?:)
條件運算是一個三目運算符,一般形式為:邏輯表
達式?表達式1:表達式2
2.1.7其他運算
1.位運算
位運算的運算分量只能是整型數(shù)據(jù),位運算把運算
對象看作是由二進制位組成的位串,逐位完成指定的運
算,得到一個新的位串。
位運算符有4個,按優(yōu)先級從高到低順序,依次為:
~(位反)、&(位與)、"(位異或)、I(位或)
用位運算的組合可以用來描述各種特殊的位串運
算。例如,位運算表達式
?11?第2章運算和語句
((k-1)-)&k
能取下非0的整型變量k的最右邊為1的那一位。
2.移位運算
移位運算是將整數(shù)作為二進制位的位串向左或向
右移動。移位運算符有三個,它們是:
左移運算符(<V)、算術(shù)右移運算符(>>)、邏輯
右移運算符(>>>)
移位運算有兩個運算分量,左運算分量為移位的數(shù)
據(jù)對象,右運算分量的值為移位位數(shù)。移位運算符的優(yōu)
先級低于算術(shù)算符,高于關(guān)系運算符,它們的結(jié)合方向
是自左至右。
Java語言允許數(shù)值型數(shù)據(jù)混合運算,不同類型的數(shù)
值數(shù)據(jù)混合運算時需要類型轉(zhuǎn)換。對于數(shù)據(jù)表示字節(jié)
數(shù)少的類型數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)表示字節(jié)數(shù)較多的類型數(shù)
據(jù),系統(tǒng)能自動實現(xiàn)轉(zhuǎn)換。反之,例如,將一個1。ng類數(shù)
據(jù)轉(zhuǎn)換成int型數(shù)型,這種數(shù)據(jù)類型轉(zhuǎn)換必須采用類型
強制轉(zhuǎn)換。類型強制轉(zhuǎn)換稱作造型(cast),書寫格式為:
(類型)表達式
2.2語句
在Java語言中,語句分為基本語句、控制結(jié)構(gòu)語句
以與package語句和import語句等。其中控制結(jié)構(gòu)語
句包括復(fù)合語句、if語句、switch語句、循環(huán)語句和
try...catch語句。其中循環(huán)語句有while語句、d
0...
?21?JaVa語言程序設(shè)計(一)
whi1e語句、for語句三種。
2.2.1基本語句
基本語句主要有表達式語句、空語句、break語句、
continue語句、return語句等。
1.表達式語句
在賦值表達式、自增自減表達式和方法調(diào)用表達式
之后加上分號即變成語句,稱它們是表達式語句。
另一個典型的表達式語句是方法調(diào)用表達式之后
接上分號。
2.空語句
空語句是只有一個分號的語句,其形式為
爰際上,空語句是什么也不做的語句。語言引入空
語句是出于以下實用上的考慮。例如,循環(huán)控制結(jié)構(gòu)的
句法需要一個語句作為循環(huán)體,當(dāng)要循環(huán)執(zhí)行的動作由
循環(huán)控制部分完成時,就不需要有一個實際意義的循環(huán)
體,這時就需要用一個空語句作為循環(huán)體。另外,語言引
入空語句使序列中連續(xù)出現(xiàn)多個分號不再是一種錯誤,
編譯系統(tǒng)遇到這種情況,就認(rèn)為單獨的分號是空語句。
3.break語句
break語句必須出現(xiàn)在多路按值選擇結(jié)構(gòu)或循環(huán)結(jié)
構(gòu)中。break語句的執(zhí)行強制結(jié)束它所在的控制結(jié)構(gòu),
讓程序從這個控制結(jié)構(gòu)的后繼語句繼續(xù)執(zhí)行。
?31?第2章運算和語句
4.continue語句
continue語句只能出現(xiàn)在循環(huán)結(jié)構(gòu)中,continue語
句的執(zhí)行將忽略它所在的循環(huán)體中在它之后的語句。
簡單地說,continue語句提早結(jié)束當(dāng)前輪次循環(huán),進入下
一輪次循環(huán)。
222復(fù)合語句
在Java語言中,用花括號括住一個順序執(zhí)行的計算
步驟序列描述順序結(jié)構(gòu),這樣的順序結(jié)構(gòu)稱作復(fù)合語
句。復(fù)合語句中的每個計算步驟可以是單個語句,也可
以是一個控制結(jié)構(gòu),特別情況也可以為空。
2.2.3if語句
有兩種選擇控制結(jié)構(gòu):兩路條件選擇結(jié)構(gòu)(用計語
句描述)和多路按值選擇結(jié)構(gòu)。
2.2.4switch語句
在Java語言中,用switch語句描述多路按值選擇結(jié)
構(gòu)。switch語句包含一個表達式,用于按表達式值的不
同作相應(yīng)選擇。另外,還有一系列由case開頭的子句和
一個可選用的defau1t開頭的子句,每個子句有一個可能
為空的語句序列。
正確編寫switch語句有以下幾個要求:
(1)switch后面括號內(nèi)的表達式的類型只限于
char、int、short和byte。
(2)所有case后的常量表達式的值互不相同,類型
,41?Java語言程序設(shè)計(一)
與switch后括號內(nèi)的表達式類型一致。
(3)語句序列由任意條合法的JaVa語句構(gòu)成,也可
以沒有語句。
(4)defau1t子句可以缺省,但至多出現(xiàn)一次,習(xí)慣總
是將它寫在所有case子句之后,如有必要也可寫在某個
case子句之前。
(5)如果要使各種情況互相排斥,僅執(zhí)行一個子句
的語句序列,每個子句都需要以break語句結(jié)束。
2.2.5try...catch語句
Java語言提供了一種稱為異常的機制協(xié)助程序報
告和處理錯誤。程序不必用特別的語句對異常預(yù)先進
行檢測,而是當(dāng)異常真的發(fā)生時,系統(tǒng)會拋出一個異常。
這時,程序的正常流程被中斷,系統(tǒng)會自動進入程序預(yù)
先設(shè)定的異常處理代碼塊執(zhí)行。這個代碼塊或者能嘗
試從錯誤中恢復(fù),或者輸出必要的信息后終止程序,防
止異常錯誤的影響進一步擴大。
要使程序能完成異常處理,需要給出可能會產(chǎn)生異
常的代碼塊,以與異常發(fā)生時處理這個異常的代碼塊。
在Java語言中,用try...catch語句指定可能會發(fā)生異
常的代碼塊和錯誤處理代碼塊。try...catch語句由try
引導(dǎo),由try標(biāo)識一個可能會發(fā)生異常的語句塊,用
cateh標(biāo)識一個處理某種異常的語句塊,如果發(fā)生這異
常,中斷程序正常的執(zhí)行流程,直接執(zhí)行處理異常的語
?51?第2章運算和語句
句塊。最后,為了適應(yīng)各種可能,另用fina11y標(biāo)識一個
無論try塊中語句異常是否發(fā)生都會執(zhí)行的語句塊。下
面是try...catch語句的一般形式:
try(
語句塊//執(zhí)行該語句塊,可能會發(fā)生異常
}catch(異常類型e){
異常發(fā)生時要執(zhí)行的語句塊
}fina11y{
無論異常發(fā)生與否,都要執(zhí)行的語句塊
)
2.2.6while語句
whi1e語句用于描述whi1e循環(huán),whi1e循環(huán)結(jié)構(gòu)由
一個循環(huán)條件和一個作為循環(huán)體的語句組成,whi1e循
環(huán)的語義是當(dāng)條件成立時重復(fù)執(zhí)行指定的循環(huán)體。
2.2.7do...whi1e語句
do...whi1e語句用于描述do...whi1e循環(huán)。d
o...
whi1e循環(huán)也由一個循環(huán)條件和一個循環(huán)體組成。
d0...whi1e循環(huán)的語義是重復(fù)執(zhí)行指定的循環(huán)體,直至
條件不成立結(jié)束循環(huán)。
注意,最后的分號是do...whi1e循環(huán)結(jié)構(gòu)的結(jié)束
符,不能省略。
2.2.8for語句
循環(huán)之前要為變量置初值,在循環(huán)過程中循環(huán)變量
,61?Java語言程序設(shè)計(一)
逐一變化的循環(huán)計算結(jié)構(gòu),稱為for循環(huán)。for循環(huán)包含
四部分,為循環(huán)有關(guān)變量賦初值的表達式1、控制循環(huán)條
件的表達式2、實現(xiàn)循環(huán)計算的語句,稱作循環(huán)體,以與
循環(huán)體執(zhí)行后為有關(guān)變量更新的表達式3,
for循環(huán)控制結(jié)構(gòu)用for語句描述,foI■語句的一般
形式為
for(表達式1;表達式2;表達式3)
2.2.9嵌套的循環(huán)結(jié)構(gòu)
當(dāng)循環(huán)結(jié)構(gòu)的循環(huán)體中又包含循環(huán)結(jié)構(gòu)時,循環(huán)結(jié)
構(gòu)就呈嵌套的形式。
2.2.10循環(huán)體中的continue語句和break語句
循環(huán)體中的continue語句和break語句用于改變循
環(huán)原有語句執(zhí)行流程。其中c。ntinue語句的作用是結(jié)束
當(dāng)前一輪循環(huán)(跳過本輪循環(huán)的剩余語句),直接進入下一
輪循環(huán)。continue語句出現(xiàn)在for循環(huán)中,跳至表達式3
的計算,更新循環(huán)變量。continue語句出現(xiàn)在whi1e和do
-whi1e循環(huán)中,跳至循環(huán)條件的計算和測試。
break語句的作用是從循環(huán)體內(nèi)跳出至循環(huán)的后繼
語句,即強行中斷當(dāng)前循環(huán)。
2.2.11package語句
在Java語言中,程序包相當(dāng)于其他語言的函數(shù)庫。
除了系統(tǒng)提供大量程序包外,程序員也可將自己編寫的
類組成程序包,以便以后像使用系統(tǒng)程序包一樣使用它
?71?第2章運算和語句
們。程序包聲明稱為Package語句,格式如下:
package包名;
Package語句必須出現(xiàn)在源程序文件的起始行,表示
出現(xiàn)在該文件中的所有類都屬于這個程序包。如果有多
個源程序的程序包聲明使用相同的包名,則表示這些源
程序文件中的全部類都屬于這個程序包。包名是一個目
錄名,其中也可以有路徑。如果源程序文件的首行沒有
Package語句,則被默認(rèn)為是無名包,存于當(dāng)前目錄中。
2.2.12import語句
import語句用來引入所需要的類。import語句的
格式為:
import包名.類名;
importjava.uti1.Date;//只是引入Date類
如果要從一個包中引入多個類,則可以用通配符
“"。例如,以下代碼從java.awt包中引入awt目錄層
次的所有類。
importjava.awt.;//從java,awt包中引入所
有的類
在一個Java源程序中可以有多個import語句,它
們必須出現(xiàn)在Package語句之后,類的定義之前。
JavaAPI的類被組織成多個包,它們常被Java程序
引入使用:
java.applet包含所有支持Javaapp1et的類
java.awt包含抽象窗口工具集中的圖形、文本、窗
,81?Java語言程序設(shè)計(一)
口GUI類
javax.wing是java.awt包的擴充,包含更豐富的
抽象窗口工具集
java.awt.image包含抽象窗口工具集中的圖像處理類
java,lang包含所有的基本語言類
java,io包含所有的輸入輸出類
java.net包含所有實現(xiàn)網(wǎng)絡(luò)功能的類
java,util包含有用的實用庫程序類
java.awt.peer平臺無關(guān)的GUI工具集界面
3.1面向?qū)ο蟮幕靖拍?/p>
1.抽象
抽象(Abstraction)是程序設(shè)計中最經(jīng)常使用的技
術(shù)之一,因為抽象是有效控制程序復(fù)雜性的重要手段。
程序設(shè)計中利用抽象,在面向過程階段,系統(tǒng)按函數(shù)和
模塊進行設(shè)計。在面向?qū)ο箅A段,利用抽象按類設(shè)計。
類是目前支持抽象的最好工具。
2.對象
在面向?qū)ο笳Z言中,對象的名稱用于程序引用對
象,對象的成員變量,用于存儲對象的狀態(tài)信息,對象的
?91?第3章面向?qū)ο缶幊袒A(chǔ)
方法用于描述對象的行為。
3.消息
在程序系統(tǒng)中,對象之間的交互通過相互發(fā)送消息
(Message)實現(xiàn)。
4.類
統(tǒng)一給出同類對象的各項屬性和能提供的所有行
為,避免程序逐一描述同類中的每個對象的所有屬性與
詳細(xì)給出對象的每個方法的描述,把同一類對象的所有
共同的屬性和行為放在一起描述。這種聲明對象共有
屬性和行為的機制稱為類。類的聲明定義了類的所有
對象的共有屬性和方法。類是對一組相同對象的描述,
類概括了同類對象的共有性質(zhì):數(shù)據(jù)和方法。類的每個
對象都有自己的標(biāo)識,但它們具有相同的一組屬性和提
供相同的一組方法。
5.繼承
除對象按類劃分外,不是同一類的對象可能會在某
些相似性。繼承(Inheritance)就是在已有類的基礎(chǔ)上,
擴充屬性,或擴充與改寫其某些方法,生成新的類,這個
方式稱為繼承。繼承定義的類稱為子類,被繼承的類稱
為超類(父類),子類自動含有父類具有的屬性和方法。
繼承具有傳遞性。超類聲明定義共同的特征,子類繼承
超類的共有特性,還可增加某些特殊性,并可擴充和修
正部分行為。采用繼承聲明定義的子類可以有父類的
屬性和方法,也可以增加新的屬性和方法,并可以對父
,02?Java語言程序設(shè)計(一)
類的某些方法給出新年的定義。繼承的最大好處是對
象能按層次劃分,并在子類中,與父類相同的屬性和方
法可以不再重復(fù)聲明。繼承體現(xiàn)了面向?qū)ο蠓椒ㄅc現(xiàn)
實世界中人們的抽象思維方式保持一致。
6.多態(tài)性
多態(tài)性(Polymorphism)有多種表現(xiàn)形式,這里所說
的多態(tài)性是指類型適應(yīng)性多態(tài)性,這來自繼承,不同繼
承層次的對象同樣的方法有不同的實現(xiàn)。類型適應(yīng)性
多態(tài)要求能自動按對象的實際類型正確調(diào)用它的方法。
類型適應(yīng)性的多態(tài)性需要采用動態(tài)聯(lián)編(DynamicBind
ing)技術(shù)實現(xiàn)。
聯(lián)編是將發(fā)送給對象的消息與含執(zhí)行該消息方法的
對象連接起來。當(dāng)聯(lián)編在編譯和連接階段實現(xiàn)時,這樣
的聯(lián)編過程稱為靜態(tài)聯(lián)編;當(dāng)聯(lián)編推遲至運行時間實現(xiàn)
時,該聯(lián)編過程稱為動態(tài)聯(lián)編。動態(tài)聯(lián)編是面向?qū)ο笳Z
言必須具有的一種能力,是實現(xiàn)上述多態(tài)性的技術(shù)基礎(chǔ)。
3.2Java的類和對象
3.2.1類
類是一種類型,類封裝對象的屬性和方法,是同一
類對象的模板。Java程序的主要部分是描述類。
1.類的聲明
聲明一個新類的基本格式如下:
c1ass類名//聲明新類的基本格式
?12?第3章面向?qū)ο缶幊袒A(chǔ)
類體
}
其中關(guān)鍵字C1ass引導(dǎo)一個類的聲明,類名是一個
標(biāo)識符。類體給出類的成員變量定義和方法定義,類體
中不能有獨立的執(zhí)行代碼,所有的執(zhí)行代碼只能出現(xiàn)在
方法中。
2.成員變量
成員變量定義的一般形式為:[修飾字]類型變
量名;
其中;修飾字可以空缺,修飾字用于對成員變量限
制其訪問權(quán)限,成員的訪問權(quán)限有4種,private,protec
ted、pub1ic和友好的,變量的類型可以是任何數(shù)據(jù)類型,
變量的名字是一個標(biāo)識符。Java中成員變量的名字可
以與類的方法的名字相同。
成員變量對類內(nèi)定義的方法都有效。類的方法也
可定義變量,這種變量稱為局部變量,局部變量只在定
義它的方法中有效。
3.方法
方法給出對象的行為,方法聲明的一般形式如下:
返回值類型方法名(類型參數(shù)名,...,類型參數(shù)名)
{
方法體
)
?22?Java語言程序設(shè)計(一)
返回值類型聲明方法返回值的數(shù)據(jù)類型。如果方
法無返回值,就用V0id關(guān)鍵字。方法可以沒有參數(shù),多
個參數(shù)用逗號分隔,參數(shù)類型可以是任何數(shù)據(jù)類型。
如果某方法中的參數(shù)名或局部變量名與類的成員
變量名相同,則成員變量在這個方法內(nèi)暫時被隱藏。
如果成員變量在方法內(nèi)被隱藏,又在方法中要引用成
員變量,必須使用this,thiS表示調(diào)用該方法的當(dāng)前對象。
在JaVa程序中,類的方法可以重載。方法重載是指
在一個類中定義多個有相同名字的方法,但這些方法或
者參數(shù)個數(shù)不同或者按順序參數(shù)的類型不同。
4.構(gòu)造方法
構(gòu)造方法是一種特殊的方法,這種方法的名與它的
類名相同,并且不返回結(jié)果,也不寫上void關(guān)鍵字。構(gòu)
造方法的作用是創(chuàng)建類的對象,并給對象初始化。構(gòu)造
方法是公共方法,但程序不能顯式調(diào)用構(gòu)造方法。程序
運行時,當(dāng)有對象要創(chuàng)建時,由系統(tǒng)自動調(diào)用構(gòu)造方法。
如果類的聲明沒有定義構(gòu)造方法,系統(tǒng)就增補一個
沒有參數(shù)的默認(rèn)構(gòu)造方法。
3.2.2對象
類被聲明后,就可用類創(chuàng)建對象,被創(chuàng)建的對象稱
為類的實例。程序使用對象需依次經(jīng)歷4個步驟:聲明
對象、創(chuàng)建對象、使用對象和撤銷對象。
1.聲明對象
?32?第3章面向?qū)ο缶幊袒A(chǔ)
由于類是一種引用類型,聲明對象只是命名一個變
量,這個變量能引用類的對象。由于對象還沒有創(chuàng)建,
所以也暫不要為對象分配內(nèi)存。
2.創(chuàng)建對象
創(chuàng)建對象就是為對象分配內(nèi)存,為對象分配內(nèi)存也
稱類的實例化。一般形式為:
new構(gòu)造方法([參數(shù)表])
對象創(chuàng)建的兩個步驟也可一起完成,一般格式為:
類名對象名=new構(gòu)造方法([參數(shù)表])
3.對象的內(nèi)存模型
Java語言將類型分成基本類型和引用類型兩種。
第2章介紹的整型、浮點型、字符型等是基本類型,程序
引用這種類型的變量,采用直接訪問形式。
在Java語言中,數(shù)組類型和類類型是引用類型。程
序訪問引用類型的變量采用間接訪問方式。
程序使用對象有多種情況:或為對象設(shè)置狀態(tài)、或
獲取對象的狀態(tài)、或改變對象的狀態(tài)、或應(yīng)用對象的某
種方法。前三種需要訪問對象的成員變量,最后一種要
調(diào)用對象的方法。程序通過操作符“.”對某對象的成員
變量進行訪問和方法調(diào)用。一般形式為:
對象名.成員變量
對象名.方法([參數(shù)表])
3.2.3實例變量和類變量
類的成員變量又分為實例變量和類變量。在定義
?42?Java語言程序設(shè)計(一)
成員變時,用關(guān)鍵字Static修飾的是類變量,定義時未用
static修飾的是實例變量。
類變量是類的所有對象共享的成員變量,一個類變
量在類中只有一個,它屬于整個類,而不屬于類的某個
對象。引用類變量途徑有兩條,或通過類,或通過對象,
格式如下:
類名.類變量名或?qū)ο竺?類變量名
不同對象的實例變量將被分配不同的內(nèi)存空間。
改變類的某一個對象的實例變量值不會影響其他對象
的實例變量。
類變量的內(nèi)存只有一處,讓類的所有對象共享。從類
的任一對象改變類變量,類的其他對象都能發(fā)現(xiàn)這個改變。
3.2.4實例方法和類方法
如同類的成員變量有實例變量和類變量兩種一樣,
類的方法也有兩種:實例方法和類方法。在方法定義
時,冠以修飾字static的方法稱為類方法,沒有冠以stat
ic修飾字的方法是實例方法。
類中的實例方法可以互相調(diào)用,并可調(diào)用類方法。
類方法也能相互調(diào)用。但不能直接調(diào)用實例方法,除非
類方法引入局部對象,然后通過局部對象調(diào)用實例方
法。另外,類方法能直接引用類變量,不能引用實例變
量。實例方法可引用實例變量,也可引用類變量。
實例方法可以訪問類變量和當(dāng)前對象的實例變量。
?52?第3章面向?qū)ο缶幊袒A(chǔ)
實例方法必須通過對象調(diào)用,不能通過類名調(diào)用。類方
法只能訪問類變量,不能夠訪問實例變量。類方法除了
可以通過實例對象調(diào)用之外,還可以通過類名調(diào)用。
3.2.5訪問權(quán)限
訪問權(quán)限實現(xiàn)訪問控制。在類的成員中引入訪問
權(quán)限控制,保護類的成員不在非期望的情況下被引用。
在類的聲明中,除了類中方法總能訪問類的成員變量
外,Java語言為其他類的方法訪問本類成員變量和方
法,提供以下4種訪問權(quán)限:
public:設(shè)置沒有限制的訪問權(quán)限,其他類的方法都
能訪問。
private:設(shè)置最強的訪問權(quán)限,其他類的方法都不
能訪問。
protected:只限子類或者同一包中的類的方法能
訪問。
<defau1t>:(無修飾,友好的)只允許同一包中的
類的方法訪問。
1.pub1ic(共有)
類的成員變量被設(shè)置成Pub1iC訪問權(quán)限,則類外的
任何方法都能訪問它。
2.private(私有)
類的成員變量被設(shè)置成Private訪問權(quán)限,則類外的
任何方法都不能訪問它。
?62?Java語言程序設(shè)計(一)
3.protected(受保護)
受保護訪問權(quán)限是一種公有權(quán)限和私有權(quán)限之間的
訪問權(quán)限。若在類A的聲明中,成員x被定義成是受保
護的,則類A的子類和與類A同一包中的別的類可以訪
問類A的受保護成員X;但對于不是類A的子類且與類A
不在同一包中別的類來說,不可訪問受保護成員X。
4.友好變量和友好方法
沒有修飾的成員變量和方法稱為友好變量和友好
方法。與保護訪問權(quán)限比較,如果只允許同一包中的相
關(guān)類的方法訪問,不讓類的子類和其他類的方法訪問
時,可設(shè)置成友好變量和友好方法。
3.2.6繼承
繼承是面向?qū)ο笳Z言的重要機制。借助繼承,可以
擴展原有的代碼,應(yīng)用到其他程序中,而不必重新編寫
這些代碼。在Java語言中,繼承是通過擴展原有的類,
聲明新類來實現(xiàn)的。擴展聲明的新類稱為子類,原有的
類稱為超類(父類)。繼承機制規(guī)定,子類可以擁有超類
的所有屬性和方法,也可以擴展定義自己特有的屬性,
增加新方法和重新定義超類的方法。
Java語言不支持多重繼承,限定一個類只能有一個
超類。在子類聲明中加入extends子句來指定超類。
類聲明時,如果缺省extends子句,未指定超類,則
該類的超類是系統(tǒng)聲明的類java.lang.Object。
?72?第3章面向?qū)ο缶幊袒A(chǔ)
子類對父類的繼承性,Java語言作以下規(guī)定:
子類自然地繼承其父類中不是Private的成員變量
作為自己的成員變量,并且自然地繼承父類中不是Pri
vate的方法作為自己的方法。
超類方法在子類中隱藏稱為重寫,或置換。當(dāng)子類
中定義的成員變量和超類中的成員變量同名時,超類的
成員變量同樣會在子類中被隱藏。子類對成員變量的隱
藏和方法的重寫可以把超類的狀態(tài)和行為改變?yōu)樽陨淼?/p>
狀態(tài)和行為。對于子類對象,如果子類重寫了超類的方
法,則子類對象調(diào)用這個方法時,調(diào)用子類方法。如果子
類繼承了超類的方法(未重寫),則會調(diào)用超類方法。
1.多態(tài)性
面向?qū)ο笳Z言規(guī)定,子類對象也是超類對象,凡超
類對象可以應(yīng)用的地方,子類對象也適用。
編譯時暫不綁定調(diào)用哪個方法,必須在運行時才綁
定調(diào)用方法的技術(shù)稱為動態(tài)聯(lián)編。而代碼根據(jù)執(zhí)行時
實際對象的類型不同,調(diào)用同名的不同方法,是面向?qū)?/p>
象語言的一種多態(tài)性。解決這種多態(tài)性必須采用動態(tài)
聯(lián)編技術(shù)。
重載能由調(diào)用時提供的參數(shù)個數(shù)和參數(shù)的類型順
序,在編譯時就能確定被調(diào)用的方法,這種多態(tài)性不需
要動態(tài)聯(lián)編技術(shù)的支持。
2.多層繼承
繼承聲明的新類,又可被其他類再繼承,從而構(gòu)成
?82?Java語言程序設(shè)計(一)
多層繼承。
3.多層繼承中構(gòu)造方法的調(diào)用順序
構(gòu)造方法的調(diào)用順序與類的繼承順序一致,從最高
層次的超類開始,按繼承順序調(diào)用各類的構(gòu)造方法。如
果子類的構(gòu)造方法要調(diào)用超類的構(gòu)造方法,給從超類繼
承的成員變量初始化,用代碼super(參數(shù))
3.2.7Java面向?qū)ο蟮钠渌麢C制
1.final類、final方法和final變量
final的意義是最終的,用于修飾類、方法和變量,其
意思是“不能改變”。禁止改變可能是考慮到“設(shè)計”和
“效率”兩個方面。
在類聲明之前用final修飾,聲明類是fina1類,fina
類是不能被再繼承的類,即它不能再有子類。
用fina1修飾方法,聲明該方法不能被子類的方法覆
蓋?;蚴菫榱私o方法“上鎖”,防止任何子類改變它的本
來含義;或是為了提高執(zhí)行效率,編譯器可以將這個方
法的所有調(diào)用都能用“嵌入代碼”實現(xiàn),即用方法體代碼
的副本來替換方法調(diào)用。
用fina1修飾變量,聲明該變量的值不能被改變。不
能被改變的變量相當(dāng)于一個常量。final變量主要用于
以下兩個方面:或是一個編譯期的常數(shù),它永遠(yuǎn)不會改
變;或在初始化后,不希望它現(xiàn)改變。
final局部變量在定義時可以暫不設(shè)定初值,但是一
?92?第3章面向?qū)ο缶幊袒A(chǔ)
經(jīng)初始化,以后就不能再改變。
常用fina1聲明常量,常量名習(xí)慣全部用大寫字母命名。
2.abstract類和abstract方法
abstract類稱為抽象類。抽象類只聲明一種模板,
沒有具體實現(xiàn)代碼的類。只有它的子類才可能是有實
際意義的類。所以,抽象類不可能有實例。
abstract方法稱為抽象方法。抽象方法只能出現(xiàn)在
抽象類,抽象方法沒有實現(xiàn)的代碼。如果一個類是抽象
類的子類,則必須具體實現(xiàn)超類的抽象方法。抽象類可
以沒有抽象方法但有抽象方法的類一定是抽象類。
3.關(guān)鍵字super
子類隱藏了超類的成員變量或者覆蓋了超類方法
后,利用關(guān)鍵字super,子類方法可以引用超類的成員變
量和被覆蓋的方法。使用super有3種情況:使用super
調(diào)用超類的構(gòu)造方法,使用super調(diào)用超類被子類覆蓋
的方法;使用super訪問超類被子類隱藏的成員變量。
4.關(guān)鍵字this
關(guān)鍵字this用來指對象自己。this的作用有多種,
例如,將對象自己作為參數(shù),調(diào)用別的方法;當(dāng)方法的局
部變量隱藏成員變量時,利用this引用成員變量;構(gòu)成
函數(shù)內(nèi)調(diào)用另一構(gòu)造函數(shù)等。
5.類之間的is—a和has-a關(guān)系
在兩個相關(guān)的類之間,例如,類A和類B,可能會有
is—a和has—a關(guān)系。類A是繼承擴展類B,則子類A
?03?Java語言程序設(shè)計(一)
和超類B之間是is—a關(guān)系,類B的所有成員類A也有,
類A也是一個類B。
如果類A的某個成員變量的類型是B,則類A和類
B之間是has-a關(guān)系,即類A包含有類B。類A中成員
變量b的類型是B。
6.內(nèi)部類(innerclass)
Java語言也允許在類聲明內(nèi)部嵌套類聲明。嵌套
的類可以是靜態(tài)的或者是非靜態(tài)的。靜態(tài)類不能直接
引用其包含類的成員,必須實例化,所以不經(jīng)常使用。
非靜態(tài)的嵌套類,需要進行事件處理,非常流行。
3.3接口
Java程序中的類只能繼承一個類,這種繼承稱為單
繼承。Java語言雖不允許一個類繼承多個類,但允許一
個類實現(xiàn)多個接口。接口(Interface)有與類相似的基本
形式。接口有常量定義和方法定義,但沒有方法的實現(xiàn)
代碼??梢詫⒔涌谙胂鬄橐粋€“純”抽象類。接口給出
每個方法的規(guī)范:方法的名稱、返回值類型、參數(shù)個數(shù)與
參數(shù)類型。
類除了能繼承一個類之外,還可實現(xiàn)多個接口。這
樣,對有繼承并實現(xiàn)接口的類來說,實際上有了多個超
類,實現(xiàn)有控制的多重繼承。
接口是一種只由常量定義和抽象方法組成的特殊
類。用pub1ic修飾的接口是公共接口,可被所有的類和
?13?第3章面向?qū)ο缶幊袒A(chǔ)
接口使用;而沒有Pub1iC修飾的接口只能被同一個包中
的其他類和接口使用。
接口體中的內(nèi)容是一系列常量定義和方法定義。
其中方法定義是一種方法聲明,不提供方法的實現(xiàn)(沒
有方法體),用分號“;”結(jié)尾。方法的實現(xiàn)在“使用”這個
接口的各個類中,故稱使用接口的類為接口的實現(xiàn)。
接口的所有變量都默認(rèn)為是fina1static屬性;所有
的方法都默認(rèn)為是pub1icabstract屬性。
一個類通過使用關(guān)鍵字imp1ements聲明自己使用一個
或多個接口。實現(xiàn)多個接口時,接口名之間用逗號隔開。
如果一個類要實現(xiàn)某個接口,那么這個類必須實現(xiàn)
該接口的所有方法,為這些方法提供實現(xiàn)的方法體。在
實現(xiàn)接口的方法時,方法的名字、返回值類型、參數(shù)個數(shù)
與類型必須與接口中定義的方法完全一致,并一定要用
pub1ic修飾。
3.4基本類
Java語言為一些基本類型設(shè)有對應(yīng)的基本類,如下
表所示。
基本類型對應(yīng)的基本類基本類型對應(yīng)的基本類
booleanBooleanintlnteger
charCharacter1ongLong
byteBytefloatFloat
shortShortdoubleDoub1e
?23?Java語言程序設(shè)計(一)
基本類型值與對應(yīng)基本類對象能相互轉(zhuǎn)換??梢岳?/p>
以下形式的基本類構(gòu)造方法,由基本類型值得到對應(yīng)基
本類對象:
pub1ic基本類(基本類型V)
例如,以下代碼得到一個Integer對象,其值是123。
Integern=newlnteger(123);
也可以由基本類對象得到基本類型值。實現(xiàn)方法
如以下例子所示:
設(shè)有Double類對象d0bj,Boolean類對象b0bj,
代碼:
doub1ed=dObj.doubleValue()
使得d。bj對象的值賦值給double類型變量do
代碼:
boo1eanb=bObj.booleanValue()
b0bj對象的值賦值給boo1ean類型變量b。類似的
代碼可以用于其他基本類對象與對應(yīng)的基本類型變量。
3.5Java小應(yīng)用程序基礎(chǔ)
Java小應(yīng)用程序即JavaApplet,是嵌入在Web頁
上供瀏覽器運行的程序,可放在服務(wù)器上供客戶端下載
使用。小應(yīng)用程序的主要功能是顯示圖形、動畫、播放
聲音、響應(yīng)用戶事件等。每個小應(yīng)用程序都得繼承java.
applet.Applet類。
為了系統(tǒng)的安全,對小應(yīng)用程序有一定限制:不能
?33?第3章面向?qū)ο缶幊袒A(chǔ)
調(diào)用本地的應(yīng)用程序和運行時的動態(tài)連接庫;不能訪問
本地文件,如讀、寫文件;除原小應(yīng)用程序所在的位置
(站點)外,不能再做網(wǎng)絡(luò)連接與WWW建立聯(lián)系,不能
獲得任何有關(guān)系統(tǒng)設(shè)置的信息。
1.小應(yīng)用程序的建立和運行
一個小應(yīng)用程序從建立到運行需經(jīng)歷4個步驟:
(1)用Java語言編寫小應(yīng)用程序的源程序。
小應(yīng)用程序由若干類組成,在源程序中必須有一個
類繼承java.applet.Applet類,這個類是小應(yīng)用程序的
主類。小應(yīng)用程序的主類,用pub1ic關(guān)鍵字修飾。小應(yīng)
用程序的源文件名必須與它的主類名完全相同。
(2)把小應(yīng)用程序的源程序編譯成字節(jié)碼.class
文件。
如果源文件有多個類,那么經(jīng)編譯后將生成多個
.class文件。
(3)將小應(yīng)用程序的字節(jié)碼文件嵌入在Web頁中,
設(shè)計一個指定小應(yīng)用程序的HTML文件.htm1o
(4)在支持Java的瀏覽器上運行。
或用觀察器appletviewer,或用瀏覽器Netscape.
Hotjava、IE等。如果采用某個Java開發(fā)環(huán)境,也可在開
發(fā)環(huán)境下執(zhí)行小應(yīng)用程序。
2.Applet類的基本方法
(1)init()方法
初始化,由瀏覽器載入內(nèi)存時調(diào)用init()方法,該方
?43?Java語言程序設(shè)計(一)
法只運行一次。其用途是創(chuàng)建所需要的對象、設(shè)置初始
狀態(tài)、裝載圖像、設(shè)置參數(shù)等。
(2)start()方法
初始化后,緊接著調(diào)用start()方法,啟動小應(yīng)用程
序主線程,或當(dāng)用戶從小應(yīng)用程序所在的Web頁面轉(zhuǎn)到
其他頁面,然后又返回時,start()方法將再次被調(diào)用。
(3)stop()方法
當(dāng)瀏覽器離開小應(yīng)用程序所在的頁面轉(zhuǎn)到其他頁
面時,調(diào)用stop()方法,掛起小應(yīng)用程序的執(zhí)行。
(4)destroy()方法
當(dāng)關(guān)閉瀏覽器時,系統(tǒng)調(diào)用destroy()方法,結(jié)束小
應(yīng)用程序的生命,關(guān)閉線程序釋放對象資源。
(5)paint(Graphicsg)方法
該方法用于在屏幕窗口上顯示某些信息。如文字、
色彩、背景和圖像等。當(dāng)小應(yīng)用程序啟動時,瀏覽器產(chǎn)
生一個Graphics類的對象,供小應(yīng)用程序使用,并以參
數(shù)g傳遞給方法Paint()。小應(yīng)用程序可以把g理解為
一支畫筆。
(6)repaint()方法
為在java頁面上顯示動態(tài)效果,需要repaint()方
法,該方法先清除Paint()方法以前所畫的內(nèi)容,然后再
調(diào)用paint()方法。
(7)update()方法
調(diào)用repaint()方法時,系統(tǒng)會自動調(diào)用update()方
?53?第3章面向?qū)ο缶幊袒A(chǔ)
法。update(Graphicsg)方法是從父類App1et繼
承來
的,該方法的功能是清除Paint()方法以前所畫的內(nèi)容,
然后再調(diào)用Paint()方法。小應(yīng)用程序重寫update()方
法,可以達到特定的要求。
3.小應(yīng)用程序的生命周期(執(zhí)行過程)
(1)下載并實例化小應(yīng)用程序,系統(tǒng)調(diào)用init()方法。
(2)啟動,系統(tǒng)調(diào)用start()方法。
(3)小應(yīng)用程序暫停執(zhí)行,或因Browser轉(zhuǎn)向其他
網(wǎng)面,或小應(yīng)用程序調(diào)用stop()方法,或小應(yīng)用程序執(zhí)
行paint(Graphicsg)方法。
(4)重新啟動,或重新進入小應(yīng)用程序所在頁面,重
新激活小應(yīng)用程序,或小應(yīng)用程序執(zhí)行Paint(Graphics
g)方法完成。
(5)終止,或退出瀏覽器,或執(zhí)行destroy()消亡方法。
4.小應(yīng)用程序數(shù)據(jù)輸入輸出
小應(yīng)用程序的數(shù)據(jù)輸入有多種方式。從圖形界面
的文本框、文本區(qū)中輸入;也可以采用系統(tǒng)標(biāo)準(zhǔn)輸入;還
可以由HTML文件中的參數(shù)導(dǎo)入。
,63?Java語言程序設(shè)計(一)
4.1數(shù)組
數(shù)組是將一組相同類型的數(shù)據(jù)順序存儲,組成一種
復(fù)合數(shù)據(jù)類型。數(shù)組的特點主要是:一個數(shù)組中的所有
元素的數(shù)據(jù)類型相同,數(shù)組中的元素連續(xù)順序存儲,數(shù)
組中每個元素按存儲順序?qū)?yīng)一個下標(biāo),下標(biāo)從()開始
順序編號,引用數(shù)組元素通過數(shù)組名和它的下標(biāo)確定。
數(shù)組有一維數(shù)組和多維數(shù)組之分,數(shù)組元素的下標(biāo)個數(shù)
確定數(shù)組的維數(shù)。
4.1.1一維數(shù)組
數(shù)組元素只有一個下標(biāo)的數(shù)組是一維數(shù)組。
1.聲明一維數(shù)組
在Java語言中,數(shù)組是一種引用類型,數(shù)組名如同
對象名一樣,是一種引用。聲明數(shù)組是聲明一個標(biāo)識符
能引用數(shù)組,只要指定數(shù)組元素的類型。聲明一維數(shù)組
有兩種格式:
數(shù)組元素類型數(shù)組名口;或者數(shù)組元素類型
口數(shù)組名;
其中數(shù)組元素類型可以是任意的Java數(shù)據(jù)類型(包
括類)。
?73?第4章數(shù)組和字符串
2.創(chuàng)建一維數(shù)組
創(chuàng)建數(shù)組就是為數(shù)組分配存儲空間,需指定數(shù)組長
度。數(shù)組創(chuàng)建后,數(shù)組名就標(biāo)識用于存儲數(shù)組元素的存
儲空間。創(chuàng)建一維數(shù)組的方法有3種:
(1)先聲明后創(chuàng)建
創(chuàng)建數(shù)組代碼的一般形式為
數(shù)組名字=new數(shù)組元素類型[元素個數(shù)];
例如,代碼:
intintArray[];//聲明數(shù)組intArray
intArray=newint[5];//創(chuàng)建數(shù)組intArray
有5
個元素,元素下標(biāo)自。?4
(2)在聲明時創(chuàng)建
把聲明數(shù)組和創(chuàng)建數(shù)組的代碼結(jié)合在一起。例如,
代碼:
intintArry[]=newint[5];
(3)直接賦值創(chuàng)建
在聲明數(shù)組時,直接給出數(shù)組的初值。例如代碼:
int[]intArray={l,2,3,4,5};
直接賦值創(chuàng)建數(shù)組的方法也稱為數(shù)組初始化。
前兩種方法創(chuàng)建數(shù)組時,系統(tǒng)會給數(shù)組元素提供默
認(rèn)初始值:數(shù)值型數(shù)組元素的默認(rèn)初值是0;char類型數(shù)
組元素的默認(rèn)初值是全0代碼字符;布爾類型數(shù)組元素
的默認(rèn)初值是fa
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度光伏發(fā)電設(shè)備安裝合作合同3篇
- 二零二五年度APP產(chǎn)品推廣及市場拓展協(xié)議3篇
- 2025年度智慧城市安防系統(tǒng)軟件升級服務(wù)合同3篇
- 2024年特色果樹種植基地承包合同書3篇
- 上級領(lǐng)導(dǎo)調(diào)研接待方案例文(3篇)
- 企業(yè)投資項目評核工作方案例文(3篇)
- 二零二五年農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用開發(fā)合同3篇
- 2025版開荒土地評估與土地復(fù)耕合同3篇
- 2024年租金支付延期合同
- 2025年度攝影器材研發(fā)合作合同3篇
- 做賬實操-科學(xué)研究和技術(shù)服務(wù)業(yè)的賬務(wù)處理示例
- 2025年人教版歷史八上期末復(fù)習(xí)-全冊重難點知識
- 山東省濱州市2023-2024學(xué)年高一上學(xué)期1月期末考試 政治 含答案
- 儀控技術(shù)手冊-自控專業(yè)工程設(shè)計用典型條件表
- 廣東省深圳市南山區(qū)2023-2024學(xué)年六年級上學(xué)期期末科學(xué)試卷
- 2023北京東城區(qū)初二上期末考?xì)v史試卷及答案
- 大潤發(fā)的企業(yè)文化
- 兒童劇劇本─三只小豬
- 標(biāo)書密封條格式模板大全(共33頁)
- TROXLER3440核子密度儀
- 2流動人員人事檔案轉(zhuǎn)遞通知單存根
評論
0/150
提交評論