Java語言教學(xué)課件:06-面向?qū)ο?下)_第1頁
Java語言教學(xué)課件:06-面向?qū)ο?下)_第2頁
Java語言教學(xué)課件:06-面向?qū)ο?下)_第3頁
Java語言教學(xué)課件:06-面向?qū)ο?下)_第4頁
Java語言教學(xué)課件:06-面向?qū)ο?下)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、06.面向?qū)ο?下)本章要點(diǎn)包裝類equals、toString方法static、finally關(guān)鍵字abstract關(guān)鍵字和抽象類接口的定義與作用內(nèi)部類的作用枚舉類JAR包基本數(shù)據(jù)類型的包裝類八大數(shù)據(jù)類型的包裝類分別為:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。把基本數(shù)據(jù)類型變量包裝類實(shí)例是通過對應(yīng)包裝類的構(gòu)造器來實(shí)現(xiàn)的,不僅如此,8個包裝類中除了Character之外,還可以通過傳入一個字符串參數(shù)來構(gòu)建包裝類對象。如果希望獲得包裝類對象中包裝的基本類型變量,則可以使用包裝類提供的XxxValue()實(shí)例方法。自動裝箱與自

2、動拆箱JDk還提供了自動裝箱和自動拆箱。自動裝箱就是把一個基本類型的變量直接賦給對應(yīng)的包裝類變量,自動拆箱則與之相反。包裝類還可以實(shí)現(xiàn)基本類型變量和字符串之間的轉(zhuǎn)換,除了Character之外的所有包裝類都提供了一個parseXxx(String s)靜態(tài)方法。如果將基本類型轉(zhuǎn)換為這符串,只需在后面加+ “”進(jìn)行連接運(yùn)算。Java 7對包裝類的增強(qiáng)Java 7為所有包裝類增加一個新方法: compare(x , y)的方法。該方法用于比較兩個包裝類實(shí)例,當(dāng)xy,返回大于0的數(shù);當(dāng)x=y,返回0;否則返回小于0的數(shù)。對象的方法打印對象和toString方法:toString方法是系統(tǒng)將會輸出該對

3、象的“自我描述”信息,用以告訴外界對象具有的狀態(tài)信息。Object 類提供的toString方法總是返回該對象實(shí)現(xiàn)類的類名 + +hashCode值。=和equals比較運(yùn)算符:=要求兩個引用變量指向同一個對象才會返回true。equals方法則允許用戶提供自定義的相等規(guī)則。Object類提供的equals方法判斷兩個對象相等的標(biāo)準(zhǔn)與=完全相同。因此開發(fā)者通常需要重寫equals方法。類成員在java類里只能包含F(xiàn)ield,方法,構(gòu)造器,初始化塊,內(nèi)部類(接口、枚舉)等5種成員。 用static修飾的類成員屬于類成員,類Field既可通過類來訪問,也可以通過類的對 象來訪問。當(dāng)通過對象來訪問類

4、屬性時,系統(tǒng)會在底層轉(zhuǎn)換為通過該類來訪問類 屬性。類成員規(guī)則類成員并不是屬于實(shí)例,它是屬于類本身的。只要類存在,類成員就存在。即使通過null對象來訪問類成員,程序也不會引發(fā)NullPointerException。類成員不能訪問實(shí)例成員。單例類如果一個類始終只能創(chuàng)建一個對象,稱為單例類。須符合以下幾個條件:1.我們把該類的構(gòu)造器使用Private修飾,從而把該 類的所有構(gòu)造器隱藏起來。2.則需要提供一個public方法作為該類的訪問點(diǎn),用于創(chuàng)建該類的對象,且必須使用static修飾3.該類還必須緩存已經(jīng)創(chuàng)建的對象,必須用static修飾final變量final修飾變量時,表示該變量一旦獲得

5、初始值之后就不可被改變。final既可修飾成員變量,也可以修飾局部變量。final修飾成員變量成員變量是隨類的初始化或?qū)ο蟪跏蓟跏蓟摹inal修飾的成員變量必須由程序員指定初始值。對于類屬性而言,要么在靜態(tài)初始化中初始化,要么在聲明該屬性時初始化。對于實(shí)例屬性,要么在普通初始化塊中指定初始值。要么在定義時、或構(gòu)造器中指定初始值。final修飾局部變量使用final修飾局部變量時既可以在定義時指定默認(rèn)值,也可以不指定默認(rèn)值。給局部變量賦初始值,只能一次,不能重復(fù)。final修飾基本類型和引用類型當(dāng)使用final修飾基本數(shù)據(jù)類型變時,不能對其重新賦值,不能被改變。但對引用類型的變量而言,它

6、僅僅保存的是一個引用,final只能保證他的地址不變,但不能保證對象,所以引用類型完全可以改變他的對象??蓤?zhí)行“宏替換”的final變量 對一個final變量來說,不管它是類變量、實(shí)例變量,還是局部變量,只要該變量滿足3個條件,這個final變量就不再是一個變量,而是相當(dāng)于一個直接量。使用final修飾符修飾;在定義該final變量時指定了初始值;該初始值可以在編譯時就被確定下來。final方法final 修飾的方法不可以被重寫。final 修飾的方法僅僅是不能重寫,但它完全可以被重載。final 類final 修飾的類不可以被繼承不可變的類不可變的類要滿足以下幾個條件:1.使用private

7、和final修飾符來修飾該類的屬性2.提供帶參數(shù)的構(gòu)造器,用于根據(jù)傳入?yún)?shù)來初始化類里的屬性3.僅為該類的屬性提供getter方法,不要為該類的屬性提供setter方法,因?yàn)槠胀ǚ椒o法修改final修飾的屬性4.如有必要,重寫Object類中hashCode 和equals緩存實(shí)例的不可變類:如果程序經(jīng)常需要使用不可變類的實(shí)例,則可對實(shí)例進(jìn)行緩存。抽象方法和抽象類抽象方法和類都必須使用abstract來修飾,有抽象方法的類只能定義成抽象類,抽象里也可以沒有抽象方法。 抽象類不能被實(shí)例化,可以通過其子類給他賦值,普通類里有的抽象里也有,定義抽象方法只需在普通方法上增加abstract修飾符,并

8、把普通方法的方法體(也就是方法后花括號括起來的部分)全部去掉,并在方法后增加分號即可。抽象類的特征抽象類的特征:有得有失,得到了新能力,可以擁有抽象方法;失去了創(chuàng)建對象的能力。抽象類的作用抽象類代表了一種未完成的類設(shè)計,它體現(xiàn)的是一種模板。抽象類與模板模式。接口的概念接口定義的是多個類共同的行為規(guī)范,這些行為是與外部交流的通道,這就意味著接口里通常是定義一組公用的方法。接口體現(xiàn)了規(guī)范與實(shí)現(xiàn)分離的設(shè)計。接口的定義和類定義不同,定義接口不再用class關(guān)鍵字,而是使用interface關(guān)鍵字。語法如下:修飾符 interface接口名 extends 父接口1,父接口2 .零個到多個常量定義.零個

9、到多個抽象方法定義.零個到多個內(nèi)部類、接口、枚舉定義.零個到多個默認(rèn)方法或類方法定義.接口里的成分在定義接口時,接口里可以包含成員變量(只能是常量),方法(只能是抽象實(shí)例方法、類方法或默認(rèn)方法),內(nèi)部類(包括內(nèi)部接口、枚舉類常量都是:public static final修飾方法都是:public abstract 修飾內(nèi)部的類:public static接口的繼承接口的繼承和類繼承不一樣,接口完全支持多繼承,子接口擴(kuò)展某個父接口將會獲得父接口的所有抽像方法,常量屬性,內(nèi)部類和枚舉類定義。使用接口接口可以用于聲明引用類型的變量,但接口不能用于創(chuàng)建實(shí)例。當(dāng)使用接口來聲明引用類型的變量時,這個引用

10、類型的變量必須引用到其實(shí)現(xiàn)類的對象。一個類可以實(shí)現(xiàn)一個或多個接口,繼承使用extends關(guān)鍵字,實(shí)現(xiàn)接口則使用implements關(guān)鍵字。實(shí)現(xiàn)接口一個類實(shí)現(xiàn)了一個或多個接口之后,這個類必須完全實(shí)現(xiàn)這些接口里所定義的全部抽象方法(也就是重寫這些抽象方法);否則,該類將保留從父接口那里繼承到的抽象方法,該類也必須定義成抽象類。 接口和抽象類的相似性接口和抽象類都不能被實(shí)例化,它們都位于繼承樹的頂端,用于被其他類實(shí)現(xiàn)和繼承。接口和抽象類都可以包含抽象方法,實(shí)現(xiàn)接口或繼承抽象類的普通子類都必須實(shí)現(xiàn)這些抽象方法。接口與抽象類的區(qū)別接口里只能包含抽象方法,不同包含已經(jīng)提供實(shí)現(xiàn)的方法;抽象類則完全可以包含普

11、通方法。接口里不能定義靜態(tài)方法;抽象類里可以定義靜態(tài)方法。接口里只能定義靜態(tài)常量屬性,不能定義普通屬性;抽象類里則既可以定義普通屬性,也可以定義靜態(tài)常量屬性。接口不包含構(gòu)造器;抽象類里可以包含構(gòu)造器,抽象類里的構(gòu)造器并不是用于創(chuàng)建對象,而讓其子類調(diào)用這些構(gòu)造器來完成屬于抽象類的初始化操作。接口里不能包含初始化塊,但抽象類則完全可以包含初始化塊。一個類最多只能有一個直接父類,包括抽象類;但一個類可以直接實(shí)現(xiàn)多個接口,通過實(shí)現(xiàn)多個接口可以彌補(bǔ)Java單繼承的不足。面向接口編程接口體現(xiàn)了規(guī)范與實(shí)現(xiàn)分離的原則。充分利用接口可以很好地提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性。接口與簡單工廠模式、命令模式等。內(nèi)部類我

12、們把一個類放在另一個類的內(nèi)部定義,這個定義在其他類內(nèi)部的類就被稱為內(nèi)部類,有的也叫嵌套類,包含內(nèi)部類的類也被稱為外部類有的也叫宿住類。內(nèi)部類提供了更好的封裝,內(nèi)部類成員可以直接訪問外部類的私有數(shù)據(jù),因?yàn)閮?nèi)部類被當(dāng)成其他外部類成員。匿名內(nèi)部類適合用于創(chuàng)建那些僅需要一次使用的類。非靜態(tài)內(nèi)部類定義內(nèi)部類非常簡單,只要把一個類放在另一個類內(nèi)部定義即可。當(dāng)在非靜態(tài)內(nèi)部類的方法內(nèi)訪問某個變量時,系統(tǒng)優(yōu)先在該方法內(nèi)查找是否存在該名字的局部變量,如果存在該名字的局部變量,就使用該變量,如果不存在,則到該方法所在的內(nèi)部類中查找是否存在該名字的屬性,如果存在則使用該屬性。總之,第一步先找局部變量,第二步,內(nèi)部類的

13、屬性,第三步。外部類的屬性。靜態(tài)內(nèi)部類 如果用static修飾一個內(nèi)部類,稱為靜態(tài)內(nèi)部類。靜態(tài)內(nèi)部類可以包含靜態(tài)成員,也可以包含非靜態(tài)成員。所以靜態(tài)內(nèi)部類不能訪問外部類的實(shí)例成員,只能訪問外部類的類成員。靜態(tài)內(nèi)部類的對象寄存在外部類里,非靜態(tài)內(nèi)部類的對象寄存在外部類實(shí)例里使用內(nèi)部類1.在外部類內(nèi)部使用內(nèi)部類不要在外部類的靜態(tài)成員中使用非靜態(tài)內(nèi)部類,國為靜態(tài)成員不能訪問非靜態(tài)成員。 2.在外部類以外使用非靜態(tài)內(nèi)部類。private 修飾的內(nèi)部類只能在外部類內(nèi)部使用。在外部類以外的地方使用內(nèi)部類,內(nèi)部類完整的類名應(yīng)該OuterClass.InnerClass.在外部類以外的地方使用非靜態(tài)內(nèi)部類創(chuàng)建

14、對象的語法如下:OuterInstance.new InnerConstructor()在外部類以外的地方使用靜態(tài)內(nèi)部類創(chuàng)建對象的語法如下:new OuterClass.InnerConstructer();局部內(nèi)部類如果把一個內(nèi)部類放在方法里定義,這就是局部內(nèi)部類,僅僅在這個方法里有效。局部內(nèi)部類不能在外部類以外的地方使用,那么局部內(nèi)部類也不能使用訪部控制符和static修飾匿名內(nèi)部類匿名內(nèi)部類適合創(chuàng)建那種只需要一次使用的類,定義匿名內(nèi)部類的語法格式如下:new 父類構(gòu)造器(實(shí)例列表) |實(shí)現(xiàn)接口) /匿名內(nèi)部類的 類體部分匿名內(nèi)部類不能是抽象類,匿名內(nèi)部類不能定義構(gòu)造器。Lambda表達(dá)式

15、入門Lambda表達(dá)式主要作用就是代替匿名內(nèi)部類的繁瑣語法。它由三部分組成:形參列表。形參列表允許省略形參類型。如果形參列表中只有一個參數(shù),甚至連形參列表的圓括號也可以省略。箭頭(-),必須通過英文等號和大于符號組成。代碼塊。如果代碼塊只有包含一條語句,Lambda表達(dá)式允許省略代碼塊的花括號,如果省略了代碼塊的花括號,這條語句不要用花括號表示語句結(jié)束。Lambda代碼塊只有一條return語句,甚至可以省略return關(guān)鍵字。Lambda表達(dá)式需要返回值,而它的代碼塊中僅有一條省略了return的語句,Lambda表達(dá)式會自動返回這條語句的值。Lambda表達(dá)式與函數(shù)式接口 如果采用匿名內(nèi)部

16、類語法來創(chuàng)建函數(shù)式接口的實(shí)例,只要實(shí)現(xiàn)一個抽象方法即可,在這種情況下即可采用Lambda表達(dá)式來創(chuàng)建對象,該表達(dá)式創(chuàng)建出來的對象的目標(biāo)類型就是這個函數(shù)式接口。Lambda表達(dá)式有如下兩個限制:Lambda表達(dá)式的目標(biāo)類型必須是明確的函數(shù)式接口。Lambda表達(dá)式只能為函數(shù)式接口創(chuàng)建對象。Lambda表達(dá)式只能實(shí)現(xiàn)一個方法,因此它只能為只有一個抽象方法的接口(函數(shù)式接口)創(chuàng)建對象。 為了保證Lambda表達(dá)式的目標(biāo)類型是一個明確的函數(shù)式接口,可以有如下三種常見方式:將Lambda表達(dá)式賦值給函數(shù)式接口類型的變量。將Lambda表達(dá)式作為函數(shù)式接口類型的參數(shù)傳給某個方法。使用函數(shù)式接口對Lambd

17、a表達(dá)式進(jìn)行強(qiáng)制類型轉(zhuǎn)換。方法引用與構(gòu)造器引用 種類示例說明對應(yīng)的Lambda表達(dá)式引用類方法類名:類方法函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該類方法作為參數(shù)。(a,b,.) - 類名.類方法(a,b, .)引用特定對象的實(shí)例方法特定對象:實(shí)例方法函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該方法作為參數(shù)。(a,b, .) - 特定對象.實(shí)例方法(a,b, .)引用某類對象的實(shí)例方法類名:實(shí)例方法函數(shù)式接口中被實(shí)現(xiàn)方法的第一個參數(shù)作為調(diào)用者,后面的參數(shù)全部傳給該方法作為參數(shù)。(a,b, .) -a.實(shí)例方法(b, .)引用構(gòu)造器類名:new函數(shù)式接口中被實(shí)現(xiàn)方法的全部參數(shù)傳給該構(gòu)造器作為參數(shù)。(a,b

18、, .) -new 類名(a,b, .)Lambda表達(dá)式與匿名內(nèi)部類 Lambda表達(dá)式與匿名內(nèi)部類存在如下相同點(diǎn):Lambda表達(dá)式與匿名內(nèi)部類一樣,都可以直接訪問“effectively final”的局部變量,以及外部類的成員變量(包括實(shí)例變量和類變量)。Lambda表達(dá)式創(chuàng)建的對象與匿名內(nèi)部類生成的對象一樣, 都可以直接調(diào)用從接口繼承得到的默認(rèn)方法。 Lambda表達(dá)式與匿名內(nèi)部類主要存在如下區(qū)別:匿名內(nèi)部類可以為任意接口創(chuàng)建實(shí)例不管接口包含多少個抽象方法,只要匿名內(nèi)部類實(shí)現(xiàn)所有的抽象方法即可。但Lambda表達(dá)式只能為函數(shù)式接口創(chuàng)建實(shí)例。匿名內(nèi)部類可以為抽象類、甚至普通類創(chuàng)建實(shí)例,

19、但Lambda表達(dá)式只能為函數(shù)式接口創(chuàng)建實(shí)例。匿名內(nèi)部類實(shí)現(xiàn)的抽象方法的方法體允許調(diào)用接口中定義的默認(rèn)方法;但Lambda表達(dá)式的代碼塊不允許調(diào)用接口中定義的默認(rèn)方法。 手動實(shí)現(xiàn)枚舉類可以采用如下設(shè)計方式: 通過private將構(gòu)造器隱藏起來。把這個類的所有可能實(shí)例都使用public static final屬性來保存。如果有必要,可以提供一些靜態(tài)方法,允許其他程序根據(jù)特定參數(shù)來獲取與之匹配實(shí)例。JDK 5新增的枚舉支持J2SE1.5新增了一個enum關(guān)鍵字,用以定義枚舉類。正如前面看到,枚舉類是一種特殊的類,它一樣可以有自己的方法和屬性,可以實(shí)現(xiàn)一個或者多個接口,也可以定義自己的構(gòu)造器。一個

20、Java源文件中最多只能定義一個public訪問權(quán)限的枚舉類,且該Java源文件也必須和該枚舉類的類名相同。枚舉類枚舉類可以實(shí)現(xiàn)一個或多個接口,使用enum定義的枚舉類默認(rèn)繼承了java.lang.Enum類,而不是繼承Object類。其中java.lang.Enum類實(shí)現(xiàn)了java.lang.Serializable和java.lang. Comparable兩個接口。枚舉類的構(gòu)造器只能使用private訪問控制符,如果省略了其構(gòu)造器的訪問控制符,則默認(rèn)使用private修飾;如果強(qiáng)制指定訪問控制符,則只能指定private修飾符。枚舉類的所有實(shí)例必須在枚舉類中顯式列出,否則這個枚舉類將永遠(yuǎn)

21、都不能產(chǎn)生實(shí)例。列出這些實(shí)例時系統(tǒng)會自動添加public static final修飾,無需程序員顯式添加。所有枚舉類都提供了一個values方法,該方法可以很方便地遍歷所有的枚舉值。 枚舉類的屬性、方法和構(gòu)造器 枚舉類也是一種類,只是它是一種比較特殊的類,因此它一樣可以使用屬性和方法。枚舉類通常應(yīng)該設(shè)計成不可變類,也就說它的屬性值不應(yīng)該允許改變,這樣會更安全,而且代碼更加簡潔。為此,我們應(yīng)該將枚舉類的屬性都使用private final修飾。一旦為枚舉類顯式定義了帶參數(shù)的構(gòu)造器,則列出枚舉值時也必須對應(yīng)地傳入?yún)?shù)。 實(shí)現(xiàn)接口的枚舉類枚舉類也可以實(shí)現(xiàn)一個或多個接口。與普通類實(shí)現(xiàn)一個或多個接口完

22、全一樣,枚舉類實(shí)現(xiàn)一個或多個接口時,也需要實(shí)現(xiàn)該接口所包含的方法。 如果需要每個枚舉值在調(diào)用同一個方法時呈現(xiàn)出不同的行為方式,則可以讓每個枚舉值分別來實(shí)現(xiàn)該方法,每個枚舉值提供不同的實(shí)現(xiàn)方式,從而讓不同枚舉值調(diào)用同一個方法時具有不同的行為方式。 包含抽象方法的枚舉類可以在枚舉類里定義一個抽象方法,然后把這個抽象方法交給各枚舉值去實(shí)現(xiàn)即可。枚舉類里定義抽象方法時無需顯式使用abstract關(guān)鍵字將枚舉類定義成抽象類,但因?yàn)槊杜e類需要顯式創(chuàng)建枚舉值,而不是作為父類,所以定義每個枚舉值時必須為抽象方法提供實(shí)現(xiàn),否則將出現(xiàn)編譯錯誤。垃圾回收機(jī)制垃圾回收機(jī)制只負(fù)責(zé)回收堆內(nèi)存中對象,不會回收任何任何物理資

23、源(例如數(shù)據(jù)庫連接,網(wǎng)絡(luò)IO等資源)。程序無法精確控制垃圾回收的運(yùn)行,垃圾回收會在合適時候進(jìn)行垃圾回收。當(dāng)對象永久性地失去引用后,系統(tǒng)就會在合適時候回收它所占的內(nèi)存。垃圾回收機(jī)制回收任何對象之前,總會先調(diào)用它的finalize方法,該方法可能使該對象重新復(fù)活(讓一個引用變量重新引用該對象),從而導(dǎo)致垃圾回收機(jī)制取消回收對象在內(nèi)存中的狀態(tài) 激活狀態(tài):當(dāng)一個對象被創(chuàng)建后,有一個以上的引用變量引用它。則這個對象在程序中處于激活狀態(tài),程序可通過引用變量來調(diào)用該對象的屬性和方法。去活狀態(tài):如果程序中某個對象不再有任何引用變量引用它,它就進(jìn)入了去活狀態(tài)。在這個狀態(tài)下,系統(tǒng)的垃圾回收機(jī)制準(zhǔn)備回收該對象所占用

24、的內(nèi)存,在回收該對象之前,系統(tǒng)會調(diào)用所有去活狀態(tài)對象的finalize方法進(jìn)行資源清理,如果系統(tǒng)在調(diào)用finalize方法重新讓一個引用變量引用該對象,則這個對象會再次變?yōu)榧せ顮顟B(tài);否則該對象將進(jìn)入死亡狀態(tài)。死亡狀態(tài):當(dāng)對象與所有引用變量的關(guān)聯(lián)都被切斷,且系統(tǒng)會調(diào)用所有對象的finalize方法依然沒有使該對象變成激活狀態(tài),那這個對象將永久性地失去引用,最后變成死亡狀態(tài)。只有當(dāng)一個對象處于死亡狀態(tài)時,系統(tǒng)才會真正回收該對象所占有的資源。 強(qiáng)制垃圾回收 強(qiáng)制系統(tǒng)垃圾回收有如下兩個方法:調(diào)用System類的gc()靜態(tài)方法:System.gc()調(diào)用Runtime對象的gc()實(shí)例方法:Runtime.getRuntime().gc()finalize方法 finalize方法有如下四個特點(diǎn):永遠(yuǎn)不要主動調(diào)用某個對象的finalize方法,該方法應(yīng)交給垃圾回收機(jī)制調(diào)用。finalize方法的何時被調(diào)用,是否被調(diào)用具有不確定性。不要把finalize方法當(dāng)成一定會被執(zhí)行的方法。當(dāng)JVM執(zhí)行去活對象

溫馨提示

  • 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

提交評論