線程匿名內(nèi)部類_第1頁
線程匿名內(nèi)部類_第2頁
線程匿名內(nèi)部類_第3頁
線程匿名內(nèi)部類_第4頁
線程匿名內(nèi)部類_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

線程的匿名內(nèi)部類使用北京電子科技職業(yè)學院1JAVA的內(nèi)部類2匿名內(nèi)部類3線程的匿名內(nèi)部類使用1JAVA的內(nèi)部類JAVA的內(nèi)部類根據(jù)內(nèi)部類的位置不同,可將內(nèi)部類分為

1.成員內(nèi)部類

2.局部內(nèi)部類JAVA的內(nèi)部類成員內(nèi)部類的訪問格式:JAVA的內(nèi)部類雖然內(nèi)部類可以以上述方式訪問,但實際開發(fā)中,常將內(nèi)部設為私有成員,以保護數(shù)據(jù)的安全,不讓外部直接使用JAVA的內(nèi)部類靜態(tài)內(nèi)部類訪問外部類成員時,只能訪問外部類的靜態(tài)成員。這樣,通過Private保證了數(shù)據(jù)的安全,再通過Static讓數(shù)據(jù)訪問更方便JAVA的內(nèi)部類局部內(nèi)部類可以直接訪問外部類的成員內(nèi)部類訪問的外部變量必須定義為final或static類型2匿名內(nèi)部類匿名內(nèi)部類概念:即內(nèi)部類的簡化寫法前提:存在一個類(可以是具體類也可以是抽象類)或接口格式:new類名或接口名{重寫的方法}本質(zhì):創(chuàng)建的是繼承了類或?qū)崿F(xiàn)了接口的子類匿名對象。匿名內(nèi)部類概念:即內(nèi)部類的簡化寫法前提:存在一個類(可以是具體類也可以是抽象類)或接口格式:new類名或接口名{重寫的方法}本質(zhì):創(chuàng)建的是繼承了類或?qū)崿F(xiàn)了接口的子類匿名對象。匿名內(nèi)部類Java語言規(guī)范上是這么描述匿名類的:匿名類的聲明:匿名類的聲明是由java編譯器自動派生自一個類實例創(chuàng)建表達式。匿名類永遠不能是抽象的。匿名類總是隱式的final。匿名類總是一個內(nèi)部類;并且不能是static的。匿名內(nèi)部類匿名構(gòu)造函數(shù):匿名類不能有顯式聲明的構(gòu)造函數(shù)。相反的,Java編譯器必須為這個匿名類自動提供一個匿名構(gòu)造函數(shù)。匿名內(nèi)部類匿名類C繼承于父類S那么匿名構(gòu)造函數(shù)是下面的形式:如果S不是一個內(nèi)部類或者S是一個靜態(tài)上下文中的局部類,那么這個匿名構(gòu)造函數(shù)有一個形參為每一個在C的類實例創(chuàng)建表達式中的實際參數(shù)。類的實例創(chuàng)建表達式的實際參數(shù)用來確定S的一個構(gòu)造函數(shù)cs,使用方法調(diào)用相同的規(guī)則。每一個匿名構(gòu)造函數(shù)的形參必須和cs中的相關(guān)形參一致。這個構(gòu)造函數(shù)中顯式的包括super(…)構(gòu)造函數(shù)調(diào)用,這個實際參數(shù)是構(gòu)造函數(shù)的形參,按它們聲明的順序。否則,C的構(gòu)造函數(shù)第一個形參描述了這個值,直接包圍實例i相對于S。參數(shù)的類型是S的class類型。構(gòu)造函數(shù)有一個額外的形參為每一個類實例創(chuàng)建語句聲明在匿名類中的實際參數(shù)。第n個形參和第n-1個實際參數(shù)相關(guān)。類的實例創(chuàng)建表達式的實際參數(shù)用來確定S的一個構(gòu)造函數(shù)cs,使用方法調(diào)用相同的規(guī)則。每一個匿名構(gòu)造函數(shù)的形參必須和cs中的相關(guān)形參一致。這個構(gòu)造函數(shù)中顯式的包括super(…)構(gòu)造函數(shù)調(diào)用,這個實際參數(shù)是構(gòu)造函數(shù)的形參,按它們聲明的順序。匿名內(nèi)部類實際使用中我們只需注意這幾點:使用匿名內(nèi)部類時,我們必須是繼承一個類或者實現(xiàn)一個接口,但是兩者不可兼得,同時也只能繼承一個類或者實現(xiàn)一個接口。匿名內(nèi)部類中是不能定義構(gòu)造函數(shù)的。匿名內(nèi)部類中不能存在任何的靜態(tài)成員變量和靜態(tài)方法。匿名內(nèi)部類為局部內(nèi)部類,所以局部內(nèi)部類的所有限制同樣對匿名內(nèi)部類生效。匿名內(nèi)部類不能是抽象的,它必須要實現(xiàn)繼承的類或者實現(xiàn)的接口的所有抽象方法。匿名內(nèi)部類一個匿名類由以下幾個部分組成:new操作符Runnable:接口名稱。這里還可以填寫抽象類、普通類的名稱。():這個括號表示構(gòu)造函數(shù)的參數(shù)列表。由于Runnable是一個接口,沒有構(gòu)造函數(shù),所以這里填一個空的括號表示沒有參數(shù)。{…}:大括號中間的代碼表示這個類內(nèi)部的一些結(jié)構(gòu)。在這里可以定義變量名稱、方法。跟普通的類一樣。匿名內(nèi)部類訪問權(quán)限1.訪問外層Class里面的字段。2.不能訪問外層方法中的本地變量。除非變量是final。3.如果內(nèi)部類的名稱和外面能訪問的名稱相同,則會把名稱覆蓋掉。4.不能定義靜態(tài)初始化代碼塊5.不能在匿名類里面定義接口6.不能在匿名類中定義構(gòu)造函數(shù)因為匿名類沒有名字,而構(gòu)造函數(shù)需要把類名作為方法名才能看成構(gòu)造函數(shù)。匿名內(nèi)部類匿名內(nèi)部類3線程的匿名內(nèi)部類使用線程的匿名內(nèi)部類使用我們知道多線程的實現(xiàn)有兩種方式,一種是繼承Thread類,另一種是實現(xiàn)Runnable接口,然后再重寫run方法,最后開啟線程。我們在普通的創(chuàng)建線程中,顯然是比較麻煩的,那么有沒有一個簡單的方法呢?今天我們就給大家介紹使用匿名內(nèi)部類創(chuàng)建線程,為什么要使用匿名內(nèi)部類呢,因為使用它代碼更簡潔也更方便,同樣地,它也有兩種方式。線程的匿名內(nèi)部類使用第一種使用匿名內(nèi)部類創(chuàng)建線程的方式:1.首先我們要在一個類中new出一個繼承Thread類;2.然后重寫run方法;3.將我們要執(zhí)行的代碼寫在run方法中。下面我們來看一個Demo案例:線程的匿名內(nèi)部類使用第二種是實現(xiàn)Run

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論