Java程序設(shè)計(jì)及應(yīng)用-03-1ppt課件_第1頁
Java程序設(shè)計(jì)及應(yīng)用-03-1ppt課件_第2頁
Java程序設(shè)計(jì)及應(yīng)用-03-1ppt課件_第3頁
Java程序設(shè)計(jì)及應(yīng)用-03-1ppt課件_第4頁
Java程序設(shè)計(jì)及應(yīng)用-03-1ppt課件_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第6講:面向?qū)ο笾v:面向?qū)ο?)內(nèi)容提要內(nèi)容提要v 人與計(jì)算機(jī)的關(guān)系人與計(jì)算機(jī)的關(guān)系v 物理世界與面向?qū)ο笪锢硎澜缗c面向?qū)ο?v 類與對(duì)象類與對(duì)象 v 面向?qū)ο蠡咎卣髅嫦驅(qū)ο蠡咎卣鱲 封裝封裝v 訪問修飾符訪問修飾符v 繼承繼承v 多態(tài)多態(tài)v 重載重載v 覆蓋覆蓋教學(xué)要求教學(xué)要求v物理世界與面向?qū)ο蟮乃枷搿⒎椒ㄎ锢硎澜缗c面向?qū)ο蟮乃枷搿⒎椒?v計(jì)算機(jī)面向?qū)ο蟮乃枷搿⒎椒ㄓ?jì)算機(jī)面向?qū)ο蟮乃枷搿⒎椒?v如何定義一個(gè)類以及創(chuàng)建其實(shí)例如何定義一個(gè)類以及創(chuàng)建其實(shí)例v面向?qū)ο蟮娜齻€(gè)基本特征面向?qū)ο蟮娜齻€(gè)基本特征人與計(jì)算機(jī)的關(guān)系人與計(jì)算機(jī)的關(guān)系 v人處于主體地位,計(jì)算機(jī)只能處于從屬地位人處于主體地位,

2、計(jì)算機(jī)只能處于從屬地位 。v計(jì)算機(jī)必須能夠模擬這個(gè)物理世界計(jì)算機(jī)必須能夠模擬這個(gè)物理世界 。v計(jì)算機(jī)是個(gè)小世界,而物理世界是個(gè)大世界,小計(jì)算機(jī)是個(gè)小世界,而物理世界是個(gè)大世界,小世界來源于大世界世界來源于大世界 物理世界的認(rèn)知物理世界的認(rèn)知 v(1世界由萬物構(gòu)成。世界由萬物構(gòu)成。v(2事物是運(yùn)動(dòng)的、發(fā)展的、變化的。事物是運(yùn)動(dòng)的、發(fā)展的、變化的。v(3事物之間的關(guān)系是復(fù)雜的、多變的。事物之間的關(guān)系是復(fù)雜的、多變的。事物的基本特征事物的基本特征 v(1封裝。封裝。v保護(hù)功能保護(hù)功能v相對(duì)獨(dú)立性相對(duì)獨(dú)立性v(2繼承繼承 v加快事物發(fā)展的速度加快事物發(fā)展的速度v提高事物發(fā)展的質(zhì)量提高事物發(fā)展的質(zhì)量v(

3、3多態(tài)。多態(tài)。 v透過現(xiàn)象抓本質(zhì),以不變應(yīng)萬變。透過現(xiàn)象抓本質(zhì),以不變應(yīng)萬變。事物間的關(guān)系事物間的關(guān)系 v泛化關(guān)系泛化關(guān)系Generalization)v聚合關(guān)系聚合關(guān)系A(chǔ)ggregation)v組合關(guān)系組合關(guān)系Composition)v依賴關(guān)系依賴關(guān)系Dependency)v關(guān)聯(lián)關(guān)聯(lián)Association)。)。 類與對(duì)象類與對(duì)象 v 世界由萬物構(gòu)成,經(jīng)由前面的學(xué)習(xí),我們知道研究物理世世界由萬物構(gòu)成,經(jīng)由前面的學(xué)習(xí),我們知道研究物理世界要用分類的方法。在面向?qū)ο蟪绦蛟O(shè)計(jì)中用類界要用分類的方法。在面向?qū)ο蟪绦蛟O(shè)計(jì)中用類class來模擬一類事物。來模擬一類事物。v 類的定義需用關(guān)鍵字類的定義需用

4、關(guān)鍵字 class,定義一個(gè)簡(jiǎn)單類的語法如下,定義一個(gè)簡(jiǎn)單類的語法如下: v class 類名類名/ 該行稱為類頭,大括號(hào)之間的部分稱為該行稱為類頭,大括號(hào)之間的部分稱為類體類體 零或多個(gè)屬性零或多個(gè)屬性; 零或多個(gè)方法零或多個(gè)方法; v 其中屬性的定義格式有兩種,如下:其中屬性的定義格式有兩種,如下: v (1類型類型 屬性名屬性名 =屬性值屬性值; v (2類型類型 屬性名屬性名1 =屬性值屬性值1,屬性名屬性名2 =屬性值屬性值2,.; 類定義舉例類定義舉例v1 class Student 2 String sno; /學(xué)號(hào)學(xué)號(hào) 3 String name, major; /姓名姓名,專

5、業(yè)專業(yè) 4 int age; /年齡年齡 5 6 void showInfo() 7 System.out.println(學(xué)號(hào)學(xué)號(hào):+sno+t姓名姓名:+name+ 8 t年齡年齡:+age+t專業(yè)專業(yè):+major); 9 10 11 Student() /第一種構(gòu)造方法第一種構(gòu)造方法 12 13 14 /*第二種構(gòu)造方法第二種構(gòu)造方法*/ 15 Student(String sno1,String name1, String major1,int age1) 16 sno=sno1; 17 name=name1; 18 major=major1; 19 age=age1; 20 21

6、22 實(shí)例對(duì)象實(shí)例對(duì)象v實(shí)例對(duì)象可以使用類的構(gòu)造方法和實(shí)例對(duì)象可以使用類的構(gòu)造方法和new關(guān)鍵字構(gòu)關(guān)鍵字構(gòu)造出來。語法為:造出來。語法為:v類名類名 對(duì)象引用對(duì)象引用=new 構(gòu)造方法構(gòu)造方法; v例如:例如:vStudent t = new Student(); 類的成員類的成員v 1成員屬性的定義v 成員屬性也稱為成員變量,定義一個(gè)成員屬性,格式為: v 修飾符 類型 成員屬性名=成員屬性值; v 例如: v int a=10; int b; String s1; String s2=new String(abc); v 其中修飾符暫不講,詳見3.8節(jié)。 v 2成員方法的定義v 語法為:

7、v 修飾符 返回類型 方法名(形式參數(shù)列表) throws 異常類型列表 /方法頭 執(zhí)行語句塊; /方法體 成員變量的初始化成員變量的初始化 成員變量類型默認(rèn)值成員變量類型默認(rèn)值 boolean false char (即空字(即空字符)符)byte,short,int 0 long 0L float 0.0F double 0.0D 引用類型引用類型 null 構(gòu)造方法構(gòu)造方法 v當(dāng)使用當(dāng)使用new關(guān)鍵字創(chuàng)建一個(gè)類實(shí)例對(duì)象時(shí),系統(tǒng)關(guān)鍵字創(chuàng)建一個(gè)類實(shí)例對(duì)象時(shí),系統(tǒng)JVM會(huì)自動(dòng)調(diào)用該類的構(gòu)造方法來完成類實(shí)會(huì)自動(dòng)調(diào)用該類的構(gòu)造方法來完成類實(shí)例對(duì)象的構(gòu)建,從而構(gòu)造方法對(duì)類定義來說是必例對(duì)象的構(gòu)建,從

8、而構(gòu)造方法對(duì)類定義來說是必須的。那么我們?cè)陬愔腥绾温暶饕粋€(gè)構(gòu)造方法呢須的。那么我們?cè)陬愔腥绾温暶饕粋€(gè)構(gòu)造方法呢?如下:?如下:v訪問修飾符訪問修飾符 類名類名(參數(shù)列表參數(shù)列表) /. 構(gòu)造方法的幾點(diǎn)說明構(gòu)造方法的幾點(diǎn)說明v (1構(gòu)造方法的訪問修飾符可以是構(gòu)造方法的訪問修飾符可以是public,protected或者缺省即不用訪問修飾符),但不允許或者缺省即不用訪問修飾符),但不允許private。v (2構(gòu)造方法的名稱和類名相同,但沒有返回類型。構(gòu)造方法的名稱和類名相同,但沒有返回類型。v (3若沒有定義任何構(gòu)造方法,則在編譯階段編譯器會(huì)若沒有定義任何構(gòu)造方法,則在編譯階段編譯器會(huì)在編譯后的

9、字節(jié)碼文件中插入一個(gè)默認(rèn)的構(gòu)造方法,默認(rèn)在編譯后的字節(jié)碼文件中插入一個(gè)默認(rèn)的構(gòu)造方法,默認(rèn)的構(gòu)造方法是:無參數(shù)列表,訪問修飾符和類的訪問修飾的構(gòu)造方法是:無參數(shù)列表,訪問修飾符和類的訪問修飾符相同,方法體內(nèi)為空。符相同,方法體內(nèi)為空。v (4構(gòu)造方法本身不能遞歸調(diào)用。構(gòu)造方法本身不能遞歸調(diào)用。v (5構(gòu)造方法體的最后一行語句可以是空的構(gòu)造方法體的最后一行語句可以是空的return語語句,即句,即“return;”,也可以不用,也可以不用return語句。語句。v (6可在一個(gè)類中定義多個(gè)構(gòu)造方法,其區(qū)別在于參數(shù)可在一個(gè)類中定義多個(gè)構(gòu)造方法,其區(qū)別在于參數(shù)列表不同,這是構(gòu)造方法的重載。關(guān)于重載,

10、詳見列表不同,這是構(gòu)造方法的重載。關(guān)于重載,詳見3.5.1節(jié)。節(jié)。封裝的封裝的Java表達(dá)與訪問修飾符表達(dá)與訪問修飾符 v封裝有兩個(gè)作用:保護(hù)作用和增強(qiáng)對(duì)象的獨(dú)立性封裝有兩個(gè)作用:保護(hù)作用和增強(qiáng)對(duì)象的獨(dú)立性。保護(hù)作用是通過設(shè)置訪問修飾符來實(shí)現(xiàn)的。保護(hù)作用是通過設(shè)置訪問修飾符來實(shí)現(xiàn)的。v訪問修飾符有訪問修飾符有4個(gè):個(gè):public、protected、默認(rèn)、默認(rèn)訪問修飾符、訪問修飾符、private。其中默認(rèn)訪問修飾符就。其中默認(rèn)訪問修飾符就是沒有修飾符,即不用是沒有修飾符,即不用public、protected、private中的任何一個(gè)。訪問修飾符用于對(duì)類、中的任何一個(gè)。訪問修飾符用于對(duì)類

11、、成員屬性和成員方法設(shè)置訪問權(quán)限,對(duì)它們實(shí)施成員屬性和成員方法設(shè)置訪問權(quán)限,對(duì)它們實(shí)施保護(hù)作用。保護(hù)作用。訪問修飾符訪問修飾符v(1public可用于修飾類、成員變量和方法。可用于修飾類、成員變量和方法。表明該成員變量和方法是共有的,能在任何情況表明該成員變量和方法是共有的,能在任何情況下被訪問。下被訪問。Java應(yīng)用程序中的應(yīng)用程序中的main()方法必須方法必須用用public來修飾否則能通過編譯,但不能運(yùn)行來修飾否則能通過編譯,但不能運(yùn)行),就是為了使),就是為了使JVM能夠訪問它。能夠訪問它。v在一個(gè)源代碼文件中最多只能定義一個(gè)在一個(gè)源代碼文件中最多只能定義一個(gè)public類類,且該類

12、名必須和源代碼文件同名。,且該類名必須和源代碼文件同名。v(2protected只能用于修飾成員屬性或成員只能用于修飾成員屬性或成員方法,不能修飾類。用方法,不能修飾類。用protected修飾的成員可修飾的成員可以被同包以被同包package下其他類方法訪問,也下其他類方法訪問,也可以被不同包下的子類方法訪問。可以被不同包下的子類方法訪問。v(3默認(rèn)訪問修飾符修飾的成員只能被同包下默認(rèn)訪問修飾符修飾的成員只能被同包下的類方法訪問。的類方法訪問。v(4private修飾的成員只能被同類中的方法修飾的成員只能被同類中的方法來訪問。來訪問。v這這4種訪問修飾符的訪問范圍由大到小,或安全種訪問修飾符

13、的訪問范圍由大到小,或安全保護(hù)程度由低到高依次是:保護(hù)程度由低到高依次是:public、protected、默認(rèn)訪問修飾符、默認(rèn)訪問修飾符、private。 舉例舉例v 1 class T 2 private String s=abc; 3 public String getS()/稱作訪問方法稱作訪問方法 4 return s; 5 6 7 8 class Test 9 public void func() 10 T t=new T(); 11 String s1 = t.s; /非法非法 12 String s2 = t.getS(); /合法合法 13 14 繼承繼承v繼承的作用:一是提

14、高了軟件的開發(fā)速度,二是繼承的作用:一是提高了軟件的開發(fā)速度,二是提高了開發(fā)軟件的質(zhì)量。提高了開發(fā)軟件的質(zhì)量。v繼承有廣義和狹義之分。繼承有廣義和狹義之分。v廣義的繼承有些拿來主義的味道,因此在廣義的繼承有些拿來主義的味道,因此在Java中中分為橫向手法和縱向手法。橫向手法是指采用分為橫向手法和縱向手法。橫向手法是指采用import語句來繼承要使用的類或語句來繼承要使用的類或Java接口;縱接口;縱向手法是指采用向手法是指采用extends關(guān)鍵字來實(shí)現(xiàn)的手法。關(guān)鍵字來實(shí)現(xiàn)的手法。v狹義的繼承就是只指縱向手法。無論是橫向手法狹義的繼承就是只指縱向手法。無論是橫向手法還是縱向手法都不違背繼承的兩個(gè)

15、作用。還是縱向手法都不違背繼承的兩個(gè)作用。v在面向?qū)ο缶幊讨欣^承概念通常是指狹義的在面向?qū)ο缶幊讨欣^承概念通常是指狹義的 。舉例舉例v 1 class Student 2 public void func() 3 System.out.println(Student); 4 5 6 7 class Freshman extends Student 8 public static void main(String args) 9 Freshman b=new Freshman(); 10 11 /* 能夠調(diào)用能夠調(diào)用 Freshman 對(duì)象的對(duì)象的 func 方法方法, 12 * 說明說明 fu

16、nc 來自來自 Student. 13 */ 14 b.func(); 15 16 v Java不支持多重繼承,單繼承使不支持多重繼承,單繼承使Java的繼承關(guān)系很簡(jiǎn)單,一個(gè)類只的繼承關(guān)系很簡(jiǎn)單,一個(gè)類只能有一個(gè)父類,易于管理程序,同時(shí)一個(gè)類可以實(shí)現(xiàn)多個(gè)接口詳見能有一個(gè)父類,易于管理程序,同時(shí)一個(gè)類可以實(shí)現(xiàn)多個(gè)接口詳見3.6節(jié)),從而克服單繼承的缺點(diǎn)。節(jié)),從而克服單繼承的缺點(diǎn)。 v 繼承描述的是一種繼承描述的是一種is a關(guān)系,例如上例關(guān)系,例如上例Freshman is a Student,是一種特殊與一般的關(guān)系。,是一種特殊與一般的關(guān)系。v 繼承是在兩個(gè)不同的類之間發(fā)生的一種關(guān)系,被繼承

17、的內(nèi)容是建立在繼承是在兩個(gè)不同的類之間發(fā)生的一種關(guān)系,被繼承的內(nèi)容是建立在訪問權(quán)限受訪問修飾符控制可訪問的基礎(chǔ)上的,有以下結(jié)論。訪問權(quán)限受訪問修飾符控制可訪問的基礎(chǔ)上的,有以下結(jié)論。v (1子類的訪問修飾符不小于父類的訪問修飾符子類的訪問修飾符不小于父類的訪問修飾符private默認(rèn)默認(rèn)protectedpublic)。)。v (2private修飾的成員不可以被繼承。修飾的成員不可以被繼承。v (3默認(rèn)訪問修飾符修飾的成員只能被同包下的其他類繼承。默認(rèn)訪問修飾符修飾的成員只能被同包下的其他類繼承。v (4構(gòu)造方法不能被繼承。父類構(gòu)造方法不能被繼承。父類+屬性屬性1v #屬性屬性2v -屬性屬

18、性3+方法方法()子類圖子類圖3.2 類的繼承關(guān)系類的繼承關(guān)系v (5不管父類是否是不管父類是否是abstract的,子類可以聲明為的,子類可以聲明為abstract的,的,同樣,父類中的方法不管是否是同樣,父類中的方法不管是否是abstract的,在子類中都可以把該的,在子類中都可以把該方法聲明為方法聲明為abstract的。的。繼承的繼承的UML表示表示父類+屬性1#屬性2-屬性3+方法()子類圖3.2 類的繼承關(guān)系this與與super關(guān)鍵字關(guān)鍵字 vthis代表類實(shí)例對(duì)象自身,代表類實(shí)例對(duì)象自身,super代表父類實(shí)例代表父類實(shí)例對(duì)象對(duì)象 。v在一個(gè)類中可以定義多個(gè)構(gòu)造方法,若在一個(gè)構(gòu)

19、在一個(gè)類中可以定義多個(gè)構(gòu)造方法,若在一個(gè)構(gòu)造方法中調(diào)用另一個(gè)構(gòu)造方法時(shí),必須使用造方法中調(diào)用另一個(gè)構(gòu)造方法時(shí),必須使用this。 vsuper不可以連續(xù)使用。不可以連續(xù)使用。多態(tài)的多態(tài)的Java表達(dá)表達(dá)vava表達(dá)多態(tài)的方式有兩種:表達(dá)多態(tài)的方式有兩種:v一是重載一是重載overload)v二是覆蓋二是覆蓋override)。)。 重載重載v 重載是指在同一個(gè)類中定義多個(gè)同名方法,要求他們的參重載是指在同一個(gè)類中定義多個(gè)同名方法,要求他們的參數(shù)列表不同。區(qū)分重載方法只數(shù)列表不同。區(qū)分重載方法只 能通過參數(shù)列表,例如:能通過參數(shù)列表,例如: v 1 class T 2 public void f

20、unc() 3 System.out.println(func(); 4 func(10); /輸出結(jié)果為輸出結(jié)果為 a=10 5 6 public void func(int a) 7 System.out.println(a=+a); 8 9 protected int func(int a, int b). 10 String func(String s). 11 重載說明重載說明v 重載方法對(duì)修飾符列表、返回類型、拋出異常類型詳見重載方法對(duì)修飾符列表、返回類型、拋出異常類型詳見第第5章是否相同均不作要求,區(qū)別僅僅在于參數(shù)列表。章是否相同均不作要求,區(qū)別僅僅在于參數(shù)列表。 v 重載方法是

21、程序的一種靜態(tài)結(jié)構(gòu),即重載方法之間的關(guān)系重載方法是程序的一種靜態(tài)結(jié)構(gòu),即重載方法之間的關(guān)系在編譯器編譯后就確定了,不會(huì)隨程序代碼的執(zhí)行來動(dòng)態(tài)在編譯器編譯后就確定了,不會(huì)隨程序代碼的執(zhí)行來動(dòng)態(tài)確定,這一點(diǎn)和覆蓋不同,覆蓋是程序的一種動(dòng)態(tài)結(jié)構(gòu)。確定,這一點(diǎn)和覆蓋不同,覆蓋是程序的一種動(dòng)態(tài)結(jié)構(gòu)。正是由于重載是一種靜態(tài)結(jié)構(gòu),所以完全可以把重載方法正是由于重載是一種靜態(tài)結(jié)構(gòu),所以完全可以把重載方法看作是各自不同的方法,這一點(diǎn)與不同名的方法之間的關(guān)看作是各自不同的方法,這一點(diǎn)與不同名的方法之間的關(guān)系沒有什么區(qū)別。系沒有什么區(qū)別。v 在一個(gè)重載方法內(nèi)可以直接調(diào)用另外一個(gè)重載方法,但在在一個(gè)重載方法內(nèi)可以直接

22、調(diào)用另外一個(gè)重載方法,但在一個(gè)重載的構(gòu)造方法內(nèi)卻不能直接調(diào)用另一個(gè)重載的構(gòu)造一個(gè)重載的構(gòu)造方法內(nèi)卻不能直接調(diào)用另一個(gè)重載的構(gòu)造方法,必須使用方法,必須使用this。覆蓋覆蓋 v 覆蓋是指在具有繼承關(guān)系的兩個(gè)不同類中定義同名方法,覆蓋是指在具有繼承關(guān)系的兩個(gè)不同類中定義同名方法,是建立在繼承的基礎(chǔ)上的,要求如下:是建立在繼承的基礎(chǔ)上的,要求如下:v (1private方法不能被覆蓋,因?yàn)榉椒ú荒鼙桓采w,因?yàn)閜rivate方法不允方法不允許被繼承。許被繼承。v (2方法名、返回類型、參數(shù)列表必須相同。方法名、返回類型、參數(shù)列表必須相同。v (3子類方法的訪問修飾符子類方法的訪問修飾符父類方法的訪問

23、修飾符。父類方法的訪問修飾符。v (4子類中的覆蓋方法的修飾符不能是子類中的覆蓋方法的修飾符不能是final、static,因?yàn)椋驗(yàn)閒inal修飾的標(biāo)識(shí)符是不可改變的,而覆蓋就是對(duì)修飾的標(biāo)識(shí)符是不可改變的,而覆蓋就是對(duì)父類方法的一種修改,若父類方法不需要修改,只采用繼父類方法的一種修改,若父類方法不需要修改,只采用繼承就好了。承就好了。static是一種靜態(tài)行為,而覆蓋則是一種動(dòng)態(tài)是一種靜態(tài)行為,而覆蓋則是一種動(dòng)態(tài)行為。行為。v (5子類中的覆蓋方法聲明的拋出異常不能是父類被覆子類中的覆蓋方法聲明的拋出異常不能是父類被覆蓋方法聲明的拋出異常的祖先類,只能是其子類或同類。蓋方法聲明的拋出異常的

24、祖先類,只能是其子類或同類。子類中的覆蓋方法也可以不聲明拋出異常,盡管父類中的子類中的覆蓋方法也可以不聲明拋出異常,盡管父類中的被覆蓋方法聲明拋出了異常。詳見第被覆蓋方法聲明拋出了異常。詳見第5章。章。 成員變量的覆蓋成員變量的覆蓋v方法可以被覆蓋,成員變量也可以被覆蓋。方法可以被覆蓋,成員變量也可以被覆蓋。v舉例舉例v1 class T1 2 public String s=T1; 3 public String getS() 4 return s; 5 6 7 class T2 extends T1 8 public String s=T2; 9 public String getS() 10 return s; 11 12 13 class Test 14 public static void main(String args) 15 T1 t1=new T1(); 16 T2 t2=new T2(); 17 18 System.out.println(t1.s); /輸出輸出 T1 19 System.out.println(t1.getS(); /輸出輸出 T1 20 System.out.println(t2.s); /輸出輸出 T2 21 System.out.println(t2.getS

溫馨提示

  • 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論