版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java程序設(shè)計(jì)基礎(chǔ)包和訪問控制包和訪問控制主要內(nèi)容17.1Java包概述7.2引用包(重點(diǎn))7.3訪問控制(重點(diǎn))7.4static關(guān)鍵字教學(xué)目標(biāo)2能理解包概念能正確使用包避免類重名問題能正確使用包對(duì)多個(gè)類進(jìn)行歸類能描述包的命名規(guī)則能理解引用包的作用和場(chǎng)景能正確的在程序中打包并導(dǎo)入包能區(qū)分四種訪問修飾符能準(zhǔn)確使用四種訪問修飾符能理解static關(guān)鍵字的作用能正確使用static關(guān)鍵字修飾類的成員能理解Java靜態(tài)塊能正確使用初始化塊和靜態(tài)初始化塊初始化程序能理解并編寫單例設(shè)計(jì)模式包的簡(jiǎn)介3計(jì)算機(jī)中存放了若干類型的文檔,為了管理方便,操作系統(tǒng)采用了樹形結(jié)構(gòu)的文件夾形式存放這些文檔,并對(duì)文檔進(jìn)行管理。類似的,為了更好地組織類,Java提供了包機(jī)制。包是類的容器,用于分隔類名空間。如果沒有指定包名,所有的類都屬于一個(gè)默認(rèn)的無名包。Java中將實(shí)現(xiàn)相關(guān)功能的類組織到一個(gè)包中。例如,Java中通用的工具類,一般都放在java.util包中??偟膩碚f,包有以下三個(gè)方面的作用:提供了類似于操作系統(tǒng)樹形文件夾的組織形式,能分門別類地存儲(chǔ)、管理類,易于查找并使用類。解決了同名類的命名沖突問題。包允許在更廣的范圍內(nèi)保護(hù)類、屬性和方法。包的語法4程序員可以使用package關(guān)鍵字指明源文件中的類屬于哪個(gè)具體的包,包的語法形式如下。 packagepkg1[.pkg2[.pkg3…]];程序中如果有package語句,該語句一定是源文件中的第一條可執(zhí)行語句,它的前面只能有注釋或空行。一個(gè)文件中最多只能有一條package語句,即只能把一個(gè)類放在一個(gè)包中。包的名字應(yīng)該有層次關(guān)系,各層之間以.分隔。包的命名規(guī)則5命名規(guī)則通常包名全部用小寫字母,這與類名以大寫字母開頭且各單詞的首字母亦大寫的命名約定有所不同。關(guān)于包的命名,現(xiàn)在使用最多的規(guī)則是使用翻轉(zhuǎn)的internet域名(不含www、ftp等訪問協(xié)議)。例如abc公司的域名為,該公司開發(fā)部門正開發(fā)一個(gè)名為fly的項(xiàng)目,在這個(gè)項(xiàng)目中有一個(gè)工具類的包,則這個(gè)工具包的包名可以為:com.abc.fly.tools。JDK類庫里的包6java.lang:lang是language的簡(jiǎn)寫,這個(gè)包提供Java語言的基礎(chǔ)類,例如String、Math、Integer、System和Thread等。java.util:util是utility的簡(jiǎn)寫,組織了Java的工具類,包含集合、事件模型、日期和時(shí)間設(shè)置、國(guó)際化和各種實(shí)用工具類。java.io:io是input和output的合并簡(jiǎn)寫,指輸入和輸出,組織了數(shù)據(jù)流、序列化和文件系統(tǒng)相關(guān)的類。:net即網(wǎng)絡(luò),這個(gè)包組織了為實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用程序而提供的類。java.awt:抽象窗口工具集(AbstractWindowToolkit),包含用于創(chuàng)建用戶界面和繪制圖形圖像的類。引用包的作用7思考:如果兩個(gè)Java類不在同一個(gè)包中,這兩個(gè)類之間如何相互引用
引用包才能解決上述問題引用不同包中類的兩種方式8一種非常直觀的方法就是使用完整類名引用類,即包名+類名(也稱為類的全限定名)。另一種是導(dǎo)入包的形式。使用類的全限定名的方法雖然直觀,但書寫的內(nèi)容多,且當(dāng)使用的類比較多時(shí),編輯和閱讀都非常困難,因此并不推薦。接下來學(xué)習(xí)的是采用導(dǎo)入包的形式引用類,導(dǎo)入包的語法形式如下。
import包名.類名;這里的包名、類名既可以是JDK提供的包和類的名稱,也可以是用戶自定義的包名和類名。如果要使用一個(gè)包中的多個(gè)類,可以使用import包名.*;的形式導(dǎo)入這個(gè)包中所有的類。不過,包的導(dǎo)入只能導(dǎo)入當(dāng)前目錄中的類,而不能導(dǎo)入其子目錄中的類。例如在導(dǎo)入java.util.*時(shí),只會(huì)導(dǎo)入java.util包中的所有類,但不能導(dǎo)入java.util.function包中的類。另外,import語句需要放在package語句后,在類定義之前。同時(shí)導(dǎo)入多個(gè)包9如果一個(gè)程序同時(shí)存在Date類和Scanner類,就可以通過兩條import語句分別導(dǎo)入二者,如下所示。importjava.util.Date;//導(dǎo)入java.util包中的Date類importjava.util.Scanner;//導(dǎo)入java.util包中的Scanner類java還提供了一種批量導(dǎo)入的方式:如果要導(dǎo)入的多個(gè)類存在于同一個(gè)包中,那么可以使用通配符*代表包中的所有類。例如可以使用importjava.util.*代表導(dǎo)入了java.util包中的所有類,如下所示。importjava.util.*;
訪問權(quán)限修飾符10有些類并不希望被其他類使用,有些屬性和方法需要對(duì)外界不可見或僅在有限的范圍內(nèi)可見。Java語言中的訪問權(quán)限修飾符有4種,但卻只有3個(gè)關(guān)鍵字。因?yàn)椴粚懺L問權(quán)限修飾符時(shí),在Java中被稱為默認(rèn)權(quán)限(包權(quán)限),本課程中以default代替。其他3個(gè)訪問權(quán)限修飾符分別為private、protected和public。如何實(shí)現(xiàn)對(duì)類的訪問控制11對(duì)于類而言,目前能使用的訪問權(quán)限修飾符只有public和default如果使用public修飾某個(gè)類,則表示該類在任何地方都能被訪問,如果不寫訪問權(quán)限修飾符,則該類只能在本包中使用。4種類成員訪問權(quán)限修飾符12對(duì)于類的成員(屬性和方法)而言,4種訪問權(quán)限修飾符都可以使用。下面按照權(quán)限從小到大的順序(即private<default<protected<public)對(duì)四種訪問權(quán)限修飾符分別進(jìn)行介紹。私有權(quán)限privateprivate可以修飾屬性、構(gòu)造方法、普通方法。被private修飾的類成員只能在定義它們的類中使用,在其他類中都不能訪問。默認(rèn)權(quán)限default不寫任何權(quán)限關(guān)鍵字就代表使用默認(rèn)權(quán)限,屬性、構(gòu)造方法、普通方法都能使用默認(rèn)權(quán)限。默認(rèn)權(quán)限也稱為同包權(quán)限。同包權(quán)限的元素只能在定義它們的類中以及同包的類中被調(diào)用。4種類成員訪問權(quán)限修飾符13受保護(hù)權(quán)限protectedprotected可修飾屬性、構(gòu)造方法、普通方法,能在定義它們的類中以及同包的類中調(diào)用被protected修飾的成員。如果有不同包中的類想調(diào)用它們,那么這個(gè)類必須是這些成員所屬類的子類。關(guān)于子類及相關(guān)概念,將會(huì)在后續(xù)講解繼承的時(shí)候詳細(xì)介紹。公共權(quán)限publicpublic可以修飾屬性、構(gòu)造方法和普通方法。被public修飾的成員,可以在任何一個(gè)類中被調(diào)用,是權(quán)限最大的訪問權(quán)限修飾符。4種類成員訪問權(quán)限修飾符14
Static關(guān)鍵字的作用15對(duì)象的成員變量有兩種級(jí)別的使用范圍:對(duì)象級(jí)別和類級(jí)別?!皩?duì)象名.變量名”的形式訪問,實(shí)際就是對(duì)象級(jí)別的訪問形式。對(duì)象級(jí)別的成員變量只能在當(dāng)前對(duì)象的范圍內(nèi)使用。在類成員的聲明前,加上static(靜態(tài)的)關(guān)鍵字,就能創(chuàng)建出類級(jí)別的成員變量。聲明為static的變量稱為靜態(tài)變量或類變量。可以直接通過類名引用靜態(tài)變量,也可以通過實(shí)例名來引用靜態(tài)變量,但推薦采用前者,因?yàn)椴捎煤笳呷菀谆煜o態(tài)變量和實(shí)例變量。除了修飾變量以外,聲明為static的方法稱為靜態(tài)方法或類方法,最常見的例子是main方法。和靜態(tài)變量一樣,靜態(tài)方法也可以被類名直接引用。靜態(tài)方法可以直接調(diào)用靜態(tài)方法,訪問靜態(tài)變量,但是不能直接訪問實(shí)例變量和實(shí)例方法。靜態(tài)方法中不能使用this關(guān)鍵字,因?yàn)殪o態(tài)方法不屬于任何一個(gè)實(shí)例。靜態(tài)方法不能操作實(shí)例變量16靜態(tài)方法可以操作靜態(tài)變量,不能操作實(shí)例變量,通過下面的例子看出(編譯時(shí)報(bào)錯(cuò))。publicclassStudent{publicintavgAge=22;//實(shí)例變量,存放平均年齡publicstaticvoidshowAvgAge(){//靜態(tài)方法調(diào)用實(shí)例變量—編譯出錯(cuò)System.out.println("靜態(tài)方法輸出所在班平均年齡為:"+avgAge);}}Java靜態(tài)塊17靜態(tài)塊的語法形式如下。static{語句塊}Java類首次裝入JVM時(shí),會(huì)對(duì)靜態(tài)成員或靜態(tài)塊進(jìn)行一次初始化,注意此時(shí)還沒有產(chǎn)生對(duì)象。因此,靜態(tài)成員和靜態(tài)塊都是和類綁定的,會(huì)在類加載時(shí)就進(jìn)行初始化操作。當(dāng)類加載完畢后,才能實(shí)例化出對(duì)象,并在對(duì)象產(chǎn)生的同時(shí)對(duì)實(shí)例成員進(jìn)行初始化。因此,實(shí)例成員是和對(duì)象綁定的,會(huì)在實(shí)例化對(duì)象時(shí)一并進(jìn)行初始化。單例模式18單例模式是指:無論創(chuàng)建了多少個(gè)引用,在堆中僅僅只有一個(gè)實(shí)例對(duì)象,如圖所示。單例模式19實(shí)現(xiàn)單例模式的核心是思路是將構(gòu)造方法私有化,即使用private修飾構(gòu)造方法,然后利用static成員變量的“一次性”,如下所示。publicclassSingleton{privateSingleton(){}}筆試題20下面那種權(quán)限是同一包可以訪問,不同包的子類可以訪問,不同包的非子類不可以訪問()?AprivateBdefault(默認(rèn))CprotectedDpublic筆試題21下面對(duì)static的描述錯(cuò)誤的是()?A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商行業(yè)客服主管招聘面試題集
- 2025年度研發(fā)部經(jīng)理年底工作總結(jié)及2026年度工作計(jì)劃
- 2025年鄂城鋼鐵廠職工大學(xué)馬克思主義基本原理概論期末考試模擬題附答案解析
- 2025年廣東江門中醫(yī)藥職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫附答案解析
- 物流公司運(yùn)營(yíng)部辦公室主任面試題及答案
- 2025年贛西科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫附答案解析
- 少的多課件教學(xué)課件
- 會(huì)計(jì)從業(yè)者面試題集與解析
- 房產(chǎn)易貨合同(標(biāo)準(zhǔn)版)
- 2026年漂流活動(dòng)安全責(zé)任協(xié)議
- 蒸汽品質(zhì)檢測(cè)儀安全操作規(guī)定
- 工業(yè)園區(qū)綜合能源智能管理平臺(tái)建設(shè)方案合集
- 附件1:中國(guó)聯(lián)通動(dòng)環(huán)監(jiān)控系統(tǒng)B接口技術(shù)規(guī)范(V3.0)
- 正弦函數(shù)、余弦函數(shù)的圖象 說課課件
- 閉合性顱腦損傷病人護(hù)理查房
- 《立血康軟膠囊研究6400字(論文)》
- GB/T 19216.21-2003在火焰條件下電纜或光纜的線路完整性試驗(yàn)第21部分:試驗(yàn)步驟和要求-額定電壓0.6/1.0kV及以下電纜
- 《你看起來好像很好吃》繪本課件
- 囊袋皺縮綜合征課件
- 硬件原理圖設(shè)計(jì)規(guī)范
- 2023版北京協(xié)和醫(yī)院重癥醫(yī)學(xué)科診療常規(guī)
評(píng)論
0/150
提交評(píng)論