版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、01 Java標(biāo)識(shí)符Java對(duì)各種變量、方法和類等要素命名時(shí)使用的字符序列稱為標(biāo)識(shí)符。Ø 凡是可以自己取名字的地方都叫標(biāo)識(shí)符,都要遵守標(biāo)識(shí)符的命名規(guī)則。Java標(biāo)識(shí)符的命名規(guī)則Ø 標(biāo)識(shí)符由字母、下劃線“_”、美元符號(hào)”$”或數(shù)字組成。Ø 標(biāo)識(shí)符應(yīng)以字符、下劃線或美元符號(hào)開(kāi)頭。Ø Java標(biāo)識(shí)符區(qū)分大小寫(xiě),長(zhǎng)度無(wú)限制。約定俗成:Java標(biāo)識(shí)符應(yīng)做到見(jiàn)文知意,且不能與java 語(yǔ)言關(guān)鍵字重復(fù)。Java關(guān)鍵字:02 Java常量Ø Java常量值用字符串表示,區(qū)分為不同的數(shù)據(jù)類型。如整型常量123 實(shí)型常量 3.13 字符常量 ”a” 邏輯常量 tr
2、ue false 字符串常量 “hello world”Ø 注意:區(qū)分字符常量和字符串常量。Ø 參見(jiàn)final關(guān)鍵字。Ø 常量指示的是值是不能改變的變量。03 Java變量Ø Java變量是程序中最基本的存儲(chǔ)單元, 其要素包括變量名,變量類型和作用域。Ø Java程序中每一個(gè)變量都屬于特定的數(shù)據(jù)類型,在使用前必須對(duì)其聲明,聲明格式為:Type varname=value;如 int a=123;Ø 從本質(zhì)上講,變量其實(shí)是內(nèi)存中的一小快區(qū)域,使用變量名來(lái)訪問(wèn)這塊區(qū)域。因此,每一個(gè)變量使用前必須要先聲明(申請(qǐng)),然后必須進(jìn)行賦值(填充內(nèi)容
3、),才能使用。04 程序執(zhí)行過(guò)程1程序從硬盤(pán)加載到內(nèi)存區(qū)2找到main函數(shù)開(kāi)始執(zhí)行3 執(zhí)行過(guò)程中的內(nèi)存管理 heap 堆 stack 棧05 Java變量的分類Ø 按其聲明的位置劃分局部變量:方法或語(yǔ)句塊內(nèi)部定義的變量。方法體內(nèi)部聲明的變量(包括形參)稱為局部變量。方法體內(nèi)部是指與方法對(duì)應(yīng)的大括號(hào)內(nèi)部。成員變量:方法外部、類的內(nèi)部定義的變量。方法體外,類體內(nèi)聲明的變量稱為成員變量。注意:類外面不能有變量的聲明。局部變量和成員變量在內(nèi)存中屬于不同的區(qū)域。Ø 按所屬的數(shù)據(jù)類型劃分:基本數(shù)據(jù)類型變量引用數(shù)據(jù)類型變量Java基本數(shù)據(jù)類型(4種8類)不同的是數(shù)據(jù)在內(nèi)存中所占的長(zhǎng)度大小
4、以及0,1在內(nèi)存中的排列。數(shù)值型:整型(byte 字節(jié)型,int 整型,short 短整型,long 長(zhǎng)整型)Java各整數(shù)類型有固定的表數(shù)范圍和字段長(zhǎng)度。一個(gè)字節(jié)為8位。三種整型常量表示方式:十進(jìn)制:12八進(jìn)制:012十六進(jìn)制:0x12Java語(yǔ)言的整型常量默認(rèn)為int型,聲明long型常量可以后在l或L。浮點(diǎn)型:(float 單精度 double雙精度)有固定的表數(shù)范圍和字段長(zhǎng)度,不受平臺(tái)的影響。兩種表示方式:十進(jìn)制法:12.32科學(xué)計(jì)數(shù)法方式:12e3Java 浮點(diǎn)數(shù)默認(rèn)為double類型,如要聲明一個(gè)常量為float類型,則需在數(shù)字后面加f或F。如double e=122.323; f
5、loat f=343.34f;字符型(文本型):char。字符常量為單引號(hào)括起來(lái)的單個(gè)字符。Java字符采用Unicode編碼,每個(gè)字符占兩個(gè)字節(jié)。注意:二進(jìn)制,八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換。布爾型:boolean。適用于邏輯運(yùn)算,一般用于程序流程控制。只允許取值true或false,不可以用0或非0替代true和false,這點(diǎn)和C語(yǔ)言不同。06 基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換l Boolean類型不可以轉(zhuǎn)換為其他的數(shù)據(jù)類型。l 整型、字符型、浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算中相互轉(zhuǎn)換,轉(zhuǎn)化時(shí)遵循以下原則:Ø 容量小的類型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型;數(shù)據(jù)類型按容量大小排序?yàn)椋篵yte,short,charin
6、tlongfloatdoublebyte,short,char之間不會(huì)相互轉(zhuǎn)換,他們?nèi)咴谟?jì)算時(shí)首先會(huì)轉(zhuǎn)換為int類型。Ø 容量大的類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型時(shí),要加上強(qiáng)制符,但可能造成精度降低或溢出,使用時(shí)要格外注意。Ø 有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動(dòng)的將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的那一種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。實(shí)數(shù)常量默認(rèn)為double。整數(shù)常量默認(rèn)為int.07 程序格式比算法還重要。格式應(yīng)該注意的問(wèn)題。Ø 大括號(hào)對(duì)齊Ø 遇到縮進(jìn),Tab/Shift+TabØ 程序塊之間加空行Ø 并排語(yǔ)句之間加空行Ø 運(yùn)算符兩
7、側(cè)加空格1、 有特定條件Ø 前面有空格Ø 成對(duì)編程程序格式的原則Ø 要讓別人看得清楚Ø 要讓別人看得舒服Ø08 運(yùn)算符Java語(yǔ)言支持如下運(yùn)算符:Ø 算法運(yùn)算符 +, - ,* ,/ ,%, + ,-Ø 關(guān)系運(yùn)算符 >,<,>=, <=, = ,!=Ø 邏輯運(yùn)算符:!,&,| , ,&&, |Ø 位運(yùn)算符:&,|,>>,<<,>>>Ø 賦值運(yùn)算符:=,當(dāng)兩側(cè)數(shù)據(jù)類型不一致時(shí),可以適用默認(rèn)類型轉(zhuǎn)換或使
8、用強(qiáng)制類型轉(zhuǎn)換原則進(jìn)行處理。對(duì)于byte,short,char等類型變量,只要不超出其表數(shù)范圍,則不需要強(qiáng)制類型轉(zhuǎn)換。Ø 擴(kuò)展賦值運(yùn)算符:+=,-=,*=,/=,Ø 字符串連接運(yùn)算符:+。+運(yùn)算符兩側(cè)的操作數(shù)中只要一個(gè)是字符串類型,系統(tǒng)會(huì)自動(dòng)將另一個(gè)操作數(shù)轉(zhuǎn)換為字符串然后再進(jìn)行連接。+放在后面,先取值后運(yùn)算+放在前面,先運(yùn)算再取值。當(dāng)進(jìn)行打印的時(shí)候,無(wú)論任何類型都自動(dòng)轉(zhuǎn)換為字符串進(jìn)行打印。09 表達(dá)式符合一定語(yǔ)法規(guī)則的運(yùn)算符和操作數(shù)的序列。表達(dá)式的值和類型:對(duì)表達(dá)式中的操作數(shù)進(jìn)行運(yùn)算得到的結(jié)果稱為表達(dá)式的值。表達(dá)式的值的類型即為表達(dá)式的類型。表達(dá)式的運(yùn)算順序應(yīng)按照運(yùn)算符的優(yōu)
9、先級(jí)從高到低的順序進(jìn)行。優(yōu)先級(jí)相同的運(yùn)算符按照事先約定好的結(jié)合方向進(jìn)行。運(yùn)算符優(yōu)先級(jí),結(jié)合方向。三目條件運(yùn)算符X?Y:Z其中X為boolean類型表達(dá)式,先計(jì)算X的值,若為true,則整個(gè)三目運(yùn)算的結(jié)果為Y的表達(dá)式的值,否則整個(gè)運(yùn)算結(jié)果為表達(dá)式Z的值。默認(rèn)情況下,實(shí)例變量和類變量的初始值取決于其數(shù)據(jù)類型。l 數(shù)值變量:0l 字符變量:0l 布爾變量:falsel 對(duì)象:null字符串的運(yùn)算運(yùn)算符+拼接運(yùn)算10 對(duì)象創(chuàng)建對(duì)象使用newVolcanoRobot robbie = new VolcanoRobot();圓括號(hào)很重要,不能省略。括號(hào)可以為空,在這種情況下,創(chuàng)建的將是最簡(jiǎn)單最基本的對(duì)象;
10、也可以包含參數(shù),這些參數(shù)決定了對(duì)象的實(shí)例變量的初始值和其他初始量。測(cè)試和修改對(duì)象的類變量獲取值要獲取實(shí)例變量的值,可以使用句點(diǎn)表示法。實(shí)例變量和類變量由兩部分組成,.句點(diǎn)運(yùn)算符左邊為對(duì)象和類的引用;.句點(diǎn)運(yùn)算符右邊為變量名句點(diǎn)表示法是一種引用對(duì)象的實(shí)例變量和方法的方式。類變量是在類中定義和存儲(chǔ)的,它們的值適用于類及其所有的實(shí)例。定義類變量的方法是,在前面加上關(guān)鍵字static.修改類變量的值將影響所有的實(shí)例。調(diào)用對(duì)象的方法調(diào)用對(duì)象的方法時(shí)也使用句點(diǎn)表示法。被調(diào)用的對(duì)象位于句點(diǎn)的左邊,方法名及其參數(shù)位于句點(diǎn)的右邊。如:將對(duì)象從一個(gè)類轉(zhuǎn)換為另一個(gè)類類的對(duì)象也可被轉(zhuǎn)換為其他類的對(duì)象,但必須滿足如下條
11、件:源類和目標(biāo)類之間存在繼承關(guān)系,即其中一個(gè)類是另一個(gè)類的子類。比較對(duì)象、判斷對(duì)象所屬的類、判斷對(duì)象是否是特定類的實(shí)例比較對(duì)象= 比較對(duì)象是否相同(即引用(地址)equals 比較對(duì)象的值是否相同判斷對(duì)象所屬的類想確定對(duì)象所屬的類,可以采用下述方法,這里判斷的是賦給key的對(duì)象所屬的類:String name = key.getClass().getName();另一種檢測(cè)方式是instanceof 運(yùn)算符,它使用兩個(gè)操作數(shù),左邊為對(duì)象的引用,右邊為類名,該表達(dá)式返回一個(gè)布爾值,如果該對(duì)象是這種類或子類的實(shí)例,為true,否則為false。11 數(shù)組、邏輯和循環(huán)創(chuàng)建數(shù)組 new 系統(tǒng)自動(dòng)初始化
12、訪問(wèn)、修改數(shù)組,數(shù)組名加索引訪問(wèn)和修改數(shù)組元素。如: int a = new int 99; 自動(dòng)初始化為0;a23訪問(wèn),a23 = 23;對(duì)數(shù)組元素進(jìn)行修改。多維數(shù)組:數(shù)組可以是多維的,包含多個(gè)下標(biāo),以多維方式存儲(chǔ)信息。塊語(yǔ)句Java中的語(yǔ)句被組織為塊,塊以花括號(hào)表示開(kāi)始,表示結(jié)束。它為塊中聲明的局部變量創(chuàng)建了作用域,在其中變量存在并可使用,如果在變量的作用域外使用它,將發(fā)生錯(cuò)誤。if語(yǔ)句條件語(yǔ)句僅在指定條件滿足時(shí)才執(zhí)行。if 條件語(yǔ)句使用布爾表達(dá)式來(lái)判斷是否執(zhí)行語(yǔ)句。如果表達(dá)式返回true,則執(zhí)行語(yǔ)句。也可以在條件為false的時(shí)候執(zhí)行其他語(yǔ)句,else。switch 條件語(yǔ)句如果要與多個(gè)
13、值進(jìn)行比較,用switch語(yǔ)句更佳。如:在每個(gè)case之后,可以有任何數(shù)目的語(yǔ)句,每個(gè)case中都有一個(gè)break 語(yǔ)句,用于指出何時(shí)停止執(zhí)行語(yǔ)句,如果case中沒(méi)有break語(yǔ)句,則找到匹配的情況后,該case中的語(yǔ)句及其后到break或switch末尾的所有語(yǔ)句都執(zhí)行。for循環(huán)for循環(huán)用于重復(fù)執(zhí)行語(yǔ)句,直到條件得到滿足。在Java中,for循環(huán)的格式如下:initialization 是一個(gè)表達(dá)式,用來(lái)初始化循環(huán)的起始狀態(tài),test是每次迭代前都要進(jìn)行的檢測(cè),它必須是布爾表達(dá)式或返回值為布爾值的函數(shù),increment 用于修改循環(huán)變量的值,從而將循環(huán)狀態(tài)引向返回false的狀態(tài),最終
14、結(jié)束循環(huán)。while和dowhile循環(huán)while循環(huán)用于重復(fù)執(zhí)行一條語(yǔ)句,直到特定條件不為true為止。先判斷條件,再執(zhí)行。dowhile 循環(huán)do 循環(huán)與while循環(huán)非常類似,主要區(qū)別在于檢測(cè)條件的位置。while循環(huán)在循環(huán)執(zhí)行前檢測(cè)條件,因此如果首次檢測(cè)條件為false,則循環(huán)體一次也不會(huì)執(zhí)行。do 循環(huán)在檢測(cè)條件之前,至少執(zhí)行循環(huán)體一次,因此如果首次檢測(cè)條件為false,則循環(huán)體已經(jīng)執(zhí)行一次了。跳出循環(huán)在所有循環(huán)中,當(dāng)測(cè)試條件滿足時(shí)循環(huán)將結(jié)束,有時(shí),在循環(huán)執(zhí)行過(guò)程中,當(dāng)發(fā)生了某種情況后,需要提前結(jié)束循環(huán),在這種情況下,可以使用關(guān)鍵字break 和continue。break 立即結(jié)束
15、當(dāng)前循環(huán),如果在循環(huán)中嵌套了循環(huán),將跳到外層循環(huán)中。continue 關(guān)鍵字直接進(jìn)入循環(huán)的下一次迭代。對(duì)于do 和while 循環(huán)這就意味著重新回到塊語(yǔ)句從頭執(zhí)行,對(duì)于for循環(huán),則計(jì)算增量表達(dá)式,然后執(zhí)行塊語(yǔ)句。注意:break和continue的區(qū)別12 創(chuàng)建類和方法在Java中,程序由main 主類以及用于支持主類的其他類組成。支持類包括你可能需要的Java2類庫(kù)中的類(如String 、Math).類定義的組成部分class Ticker/the body of the classextends 關(guān)鍵字用于指定超類創(chuàng)建和使用實(shí)例變量每當(dāng)創(chuàng)建類時(shí),都需要定義新類不同于其超類的行為。行為是
16、通過(guò)指定新類的變量和方法定義的。Java中有3中常用的變量:類變量、實(shí)例變量和局部變量。實(shí)例變量:在方法定義外聲明且沒(méi)有使用關(guān)鍵字static修飾的變量都是實(shí)例變量。類變量適用于整個(gè)類,而不是類的各個(gè)對(duì)象,適合用于在同一種類的不同對(duì)象之間共享信息或記錄類級(jí)信息。在類定義中使用關(guān)鍵字static來(lái)聲明類變量。創(chuàng)建和使用方法方法定義了對(duì)象的行為,即在對(duì)象被創(chuàng)建時(shí)發(fā)生的事情或?qū)ο笤谄渖嫫趦?nèi)能夠執(zhí)行的各個(gè)任務(wù)。定義方法:在Java中,方法定義有4個(gè)基本的部分:l 方法名;l 參數(shù)列表;l 方法返回的對(duì)象類型或基本數(shù)據(jù)類型l 方法體。方法定義的前面2個(gè)部分構(gòu)成了方法的特征標(biāo)?;镜姆椒ǘx:方法的參數(shù)
17、列表是一組變量聲明,它們被放在圓括號(hào)內(nèi),并用逗號(hào)分隔。這些參數(shù)是方法體內(nèi)的局部變量,當(dāng)方法調(diào)用時(shí),將獲得它們的值。方法體內(nèi)可以包含語(yǔ)句、表達(dá)式、對(duì)其他對(duì)象的方法調(diào)用、條件語(yǔ)句、循環(huán)等。除非返回類型被聲明為void ,否則方法執(zhí)行完畢時(shí),將返回某種類型的值,必須在方法的出口點(diǎn)使用關(guān)鍵字return 顯式地返回這個(gè)值。關(guān)鍵字this有時(shí)候,你可能想在方法體中引用當(dāng)前對(duì)象,即其方法被調(diào)用的對(duì)象,以便將當(dāng)前對(duì)象的實(shí)例變量或當(dāng)前對(duì)象作為參數(shù)傳遞給其他方法。在這種情況下,要引用當(dāng)前對(duì)象,可以使用關(guān)鍵字this。關(guān)鍵字this指向當(dāng)前對(duì)象,可用于任何可使用對(duì)象引用的地方,在句點(diǎn)表示法中,作為方法的參數(shù),作為
18、當(dāng)前方法的返回值等。用于this是指向當(dāng)前實(shí)例的引用,因此只能在實(shí)例方法的定義體內(nèi)使用它。在類方法中(用關(guān)鍵字static聲明的方法)中,不能使用this。變量的作用域和方法的定義要使用變量,必須知道其作用域。作用域是程序的一部分,在其中可以使用某個(gè)變量或其他類型的信息,超出作用域后,該變量將不復(fù)存在。在java中聲明變量時(shí),便限定了該變量的作用域。如,局部變量只能在定義它的語(yǔ)句塊中使用,實(shí)例變量的作用域是整個(gè)類,因此可以被類中的任何實(shí)例方法使用。當(dāng)引用變量時(shí),java從最里面的作用域向外查找其定義。在這個(gè)類中,有兩個(gè)名稱皆為test的變量。前者是實(shí)例變量,被初始化為10;后者是局部變量,值為
19、20.方法printTest()中的局部變量隱藏了實(shí)例變量test。在方法main()中調(diào)用printTest()時(shí),它顯示的值為20,雖然有一個(gè)值為10的實(shí)例變量test。為了避免這種問(wèn)題,可以使用this.test 來(lái)引用實(shí)例變量,使用test來(lái)引用局部變量,但更好的方法是盡量避免使用相同的變量名和定義。將參數(shù)傳遞給方法調(diào)用接收對(duì)象參數(shù)的方法時(shí),對(duì)象是按引用傳遞的。類方法類變量和實(shí)例變量之間的關(guān)系與類方法和實(shí)例方法的關(guān)系相同。類方法可以被類的任何實(shí)例使用,也可被其他類使用,此外,與實(shí)例方法不同,調(diào)用類方法時(shí),不需要有類的對(duì)象。定義類方法時(shí),需要在方法定義前加上關(guān)鍵字static。如果方法前
20、沒(méi)有關(guān)鍵字static,則該方法是實(shí)例方法,實(shí)例方法只能在對(duì)象中運(yùn)行,而不能在類中運(yùn)行。大多數(shù)操作或影響特定對(duì)象的方法都應(yīng)定義為實(shí)例方法,哪些提供通用功能,但不直接影響特定對(duì)象的方法應(yīng)聲明為類方法。不同于實(shí)例方法,類方法不能被繼承,因此在子類中不能覆蓋超類中的類方法。Java應(yīng)用程序中的main()方法應(yīng)用程序的入口類,是程序的入口。應(yīng)用程序運(yùn)行時(shí),Java虛擬機(jī)將調(diào)用該方法。創(chuàng)建重載方法,名稱相同但定義和特征標(biāo)不同創(chuàng)建同名方法:使用java類庫(kù)時(shí),通常會(huì)遇到很多同名方法的類。名稱相同的方法是通過(guò)下述兩個(gè)因素區(qū)分的:l 參數(shù)個(gè)數(shù)l 參數(shù)的數(shù)據(jù)類型或?qū)ο筮@兩個(gè)因素都是方法特征標(biāo)的一部分,使用多個(gè)
21、名稱相同但特征標(biāo)不同的方法被稱為重載。方法重載可以避免使用完全不同的方法來(lái)完成幾乎相同的任務(wù)。重載也使得方法能夠根據(jù)收到的參數(shù)進(jìn)行不同的操作。當(dāng)調(diào)用對(duì)象的方法時(shí),Java將對(duì)方法名和參數(shù)進(jìn)行匹配,以確定應(yīng)執(zhí)行哪個(gè)方法定義。要?jiǎng)?chuàng)建重載方法,可在同一類中創(chuàng)建多個(gè)不同的方法定義,它們的名稱相同,但參數(shù)列表不同。不同之處可以是參數(shù)數(shù)目、參數(shù)類型,也可以兩者都不同。只要參數(shù)列表是獨(dú)特的,Java允許對(duì)方法進(jìn)行重載。創(chuàng)建構(gòu)造函數(shù)在類定義中,還可以定義構(gòu)造函數(shù),這些方法在對(duì)象被創(chuàng)建時(shí)自動(dòng)被調(diào)用。構(gòu)造函數(shù)是在對(duì)象被創(chuàng)建(被構(gòu)造)時(shí)調(diào)用的方法。與其他方法不同,構(gòu)造函數(shù)不能被直接調(diào)用。使用new來(lái)創(chuàng)建類的實(shí)例時(shí),
22、Java完成下述3項(xiàng)工作:l 為對(duì)象分配內(nèi)存l 初始化對(duì)象的實(shí)例變量,賦予初值或設(shè)置為默認(rèn)值(數(shù)值為0,對(duì)象為null,布爾值為false、字符值為0)調(diào)用類的構(gòu)造函數(shù)如果類沒(méi)有構(gòu)造函數(shù),則結(jié)合使用new和該類的名稱時(shí),仍將創(chuàng)建一個(gè)對(duì)象。通過(guò)在類中定義構(gòu)造函數(shù),可以為實(shí)例變量設(shè)置初值,調(diào)用基于這些變量的方法,調(diào)用其他對(duì)象的方法以及設(shè)置對(duì)象的初始屬性。如果類包含接收一個(gè)或多個(gè)參數(shù)的構(gòu)造函數(shù),則僅當(dāng)這個(gè)類有不接受任何參數(shù)的構(gòu)造函數(shù)時(shí),才能調(diào)用這樣的構(gòu)造函數(shù)。基本的構(gòu)造函數(shù)構(gòu)造函數(shù)與常規(guī)方法類似,但有3個(gè)基本區(qū)別:l 名稱與類名相同l 沒(méi)有返回類型l 不能使用return 語(yǔ)句來(lái)返回一個(gè)值調(diào)用另外一
23、個(gè)構(gòu)造函數(shù)構(gòu)造函數(shù)的重載與常規(guī)方法一樣,構(gòu)造函數(shù)也能接受不同數(shù)目和不同類型的參數(shù)。覆蓋方法創(chuàng)建覆蓋現(xiàn)有方法的方法要覆蓋方法,只需在子類中創(chuàng)建一個(gè)特征標(biāo)(名稱、返回值和參數(shù)列表)與超類相同的方法即可。可在SubPrinter類中覆蓋printMe()方法,并在其中添加一條顯示實(shí)例變量z的語(yǔ)句:調(diào)用原來(lái)的方法例子:13 包、接口和其他類特性類是用于創(chuàng)建對(duì)象的模板,對(duì)象能夠存儲(chǔ)數(shù)據(jù)和完成任務(wù)。控制對(duì)方法和變量的訪問(wèn)將類、方法和變量固定下來(lái),禁止在子類中覆蓋其定義或值創(chuàng)建抽象的類和方法,將通用行為放到超類中將多個(gè)類組合成包使用接口填補(bǔ)類層次結(jié)構(gòu)中的空白限定符Java語(yǔ)言提供了4種級(jí)別的訪問(wèn)控制:公有、
24、私有、受保護(hù)和默認(rèn)(不使用訪問(wèn)控制限定符)默認(rèn):聲明變量和方法時(shí),如果沒(méi)有使用任何訪問(wèn)控制限定符,則它們對(duì)同一個(gè)包中的其他任何類都是可用的。私有:要完全將方法或變量隱藏起來(lái),不被其他類使用,可使用private限定符,這種變量?jī)H在其所在的類中是可見(jiàn)的。私有實(shí)例變量可被其所屬類中的方法使用,但不能被其他任何類的對(duì)象調(diào)用,私有方法也可被其所屬類中的其他方法調(diào)用,但不能被其他任何方法調(diào)用。這種限制也會(huì)影響繼承:任何私有變量和私有方法都不能被子類繼承。公有:類中的方法或變量可供任何類使用。保護(hù):使方法和變量?jī)H供以下類使用(子類和同一包中的其他類)比較各種訪問(wèn)控制級(jí)別繼承方法的法則l 在超類中被聲明為公
25、有的方法在子類中必須也是公有的;l 在超類中被聲明為保護(hù)的方法在子類中可以是保護(hù)的或公有的,但不能是私有的;l 對(duì)于沒(méi)有訪問(wèn)控制的方法(沒(méi)有指定限制符),在子類中其訪問(wèn)控制可以更嚴(yán)格。被聲明為私有的方法根本不能繼承,因此上述規(guī)則不適用。final類、方法和變量限定符final用于類、方法和變量,指出它們將不會(huì)被修改。final類不能被繼承final方法不能被子類覆蓋final變量的值不能被修改抽象類抽象類可以包含常規(guī)類能夠包含的任何東西,包含構(gòu)造函數(shù),因?yàn)樽宇惪赡苄枰^承這種方法,抽象類也可以包含抽象方法,這時(shí)只有方法特征標(biāo),而沒(méi)有實(shí)現(xiàn)方法,這些方法將在抽象類的子類中被實(shí)現(xiàn)。抽象類用限定符ab
26、stract來(lái)聲明,不能在非抽象類中聲明抽象方法,如果一個(gè)抽象類除抽象方法外什么都沒(méi)有,則使用接口更合適。包包是一種組織類的方式。包中可以包含任意數(shù)量的類,這些類的用途相關(guān)或有繼承關(guān)系。包的用途l 包能夠?qū)㈩惤M織成單元l 包減少了名稱沖突帶來(lái)的問(wèn)題。l 包能夠大面積地保護(hù)類、變量和方法而不是分別對(duì)每個(gè)類進(jìn)行保護(hù)。l 包可以用于唯一地標(biāo)識(shí)類。14 異常和線程(線程是重點(diǎn),重新看)Java中兩個(gè)功能最強(qiáng)大的元素,線程和異常。線程是實(shí)現(xiàn)了Runnable接口或繼承了Thread類的對(duì)象,能與Java程序的其他部分同時(shí)運(yùn)行;異常是表示Java運(yùn)行階段可能發(fā)生的錯(cuò)誤的對(duì)象。線程讓程序能夠更高效地利用其資
27、源,這是通過(guò)將程序的計(jì)算密集型部分分離開(kāi)來(lái),避免其降低程序其他部分的速度來(lái)實(shí)現(xiàn)的;異常讓程序能夠識(shí)別錯(cuò)誤并作出響應(yīng),異常甚至可以幫助程序校正狀態(tài),并在可能的情況下繼續(xù)運(yùn)行。異常線程使用Java進(jìn)行編程時(shí),需要考慮的問(wèn)題之一是如何使用系統(tǒng)資源。圖形、復(fù)雜的數(shù)學(xué)計(jì)算和其他密集型任何可能占用大量的處理器時(shí)間。使用圖形用戶界面的程序尤其如此。如果你編寫(xiě)的圖形Java程序需要完成某種占用大量計(jì)算機(jī)時(shí)間的任務(wù),將發(fā)現(xiàn)該程序的圖形用戶界面的響應(yīng)速度非常慢。為解決這種問(wèn)題,可將Java程序中占用大量處理器時(shí)間的函數(shù)分離開(kāi)來(lái),讓它們同程序的其他部分分開(kāi)運(yùn)行。這時(shí)通過(guò)線程的特性來(lái)實(shí)現(xiàn)的。線程是程序的一部分,它們?cè)?/p>
28、程序的其他代碼執(zhí)行其他工作時(shí)獨(dú)立運(yùn)行,這也被稱為多任務(wù),因?yàn)槌绦蚩梢酝瑫r(shí)處理多項(xiàng)任務(wù)。線程適合用于完成占用大量處理時(shí)間且連續(xù)運(yùn)行的任務(wù)。通過(guò)將程序的工作負(fù)荷放到線程中,可以讓程序的其他部分處理其他任務(wù)。這也使虛擬機(jī)能夠更容易地對(duì)程序進(jìn)行處理,因?yàn)樗械奶幚砥髅芗凸ぷ鞫急环诺姜?dú)立的線程中。15 Java類庫(kù)數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)的類,包括如下所述的數(shù)據(jù)結(jié)構(gòu)l 位組(bit set):用于存儲(chǔ)布爾值l 鏈表(array list):可調(diào)整長(zhǎng)度的數(shù)組l 堆棧(stack):后進(jìn)先出(LIFO)型結(jié)構(gòu)l 散列映射(hash map):使用鍵存儲(chǔ)數(shù)據(jù)項(xiàng)iterator 接口接口iterator 提供了一種以定義好的順序遍歷一系列元素的標(biāo)準(zhǔn)方式。方法hasNext() 定義了結(jié)構(gòu)是否還包含其他元素方法next()獲得結(jié)構(gòu)中的下一個(gè)元素?cái)?shù)據(jù)結(jié)構(gòu)的遍歷堆棧數(shù)據(jù)結(jié)構(gòu)堆棧用于模擬以特定順序進(jìn)行訪問(wèn)的信息。在Java中,Stack類被實(shí)現(xiàn)成一個(gè)后進(jìn)先出的堆棧,這
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銷售領(lǐng)域信譽(yù)擔(dān)保協(xié)議樣本一
- 2024年輪胎買(mǎi)賣(mài)協(xié)議范本版
- 2022-2024年三年高考1年模擬生物試題分類:生物的變異、育種與進(jìn)化(解析版)
- 2024年線上線下產(chǎn)品推廣合作協(xié)議
- 2024年貨物押運(yùn)服務(wù)合同
- 2024宅基地施工期間施工用水用電合同3篇
- 勞務(wù)派遣市場(chǎng)調(diào)研協(xié)議書(shū)
- 勞務(wù)派遣服務(wù)過(guò)程協(xié)議書(shū)
- 加油站租賃交接協(xié)議書(shū)(2篇)
- 2024消防安全隱患排查及治理咨詢合同范本3篇
- 品質(zhì)黃燜雞加盟活動(dòng)策劃
- DLT 754-2013 母線焊接技術(shù)規(guī)程
- 設(shè)立數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)園公司商業(yè)計(jì)劃書(shū)
- 部編版小學(xué)道德與法治五年級(jí)上冊(cè)單元復(fù)習(xí)課件(全冊(cè))
- 仙桃市仙桃市2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)檢測(cè)卷(含答案)
- 智慧農(nóng)場(chǎng)整體建設(shè)實(shí)施方案
- 航空公司個(gè)人年終總結(jié)(共12篇)
- 產(chǎn)品供貨方案、售后服務(wù)方案
- 蘇教版小學(xué)數(shù)學(xué)六年級(jí)上冊(cè)第4單元解決問(wèn)題的策略重難點(diǎn)練習(xí)【含答案】
- 安徽省池州市貴池區(qū)2023-2024學(xué)年高二數(shù)學(xué)第一學(xué)期期末綜合測(cè)試模擬試題含解析
- 干濕球溫度濕度換算表
評(píng)論
0/150
提交評(píng)論