面向?qū)ο缶幊袒A(chǔ) (二)_第1頁(yè)
面向?qū)ο缶幊袒A(chǔ) (二)_第2頁(yè)
面向?qū)ο缶幊袒A(chǔ) (二)_第3頁(yè)
面向?qū)ο缶幊袒A(chǔ) (二)_第4頁(yè)
面向?qū)ο缶幊袒A(chǔ) (二)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο缶幊袒A(chǔ)(二)面向?qū)ο缶幊袒A(chǔ)(二)軟件學(xué)院軟件學(xué)院代飛代飛2014.2014.春春生活中的接口生活中的接口聲卡聲卡顯卡顯卡網(wǎng)卡網(wǎng)卡每種卡的內(nèi)部結(jié)構(gòu)都不相同,可以把聲卡、每種卡的內(nèi)部結(jié)構(gòu)都不相同,可以把聲卡、網(wǎng)卡、顯卡都插在網(wǎng)卡、顯卡都插在PCI插槽上,而不用擔(dān)心哪插槽上,而不用擔(dān)心哪個(gè)插槽是專門插哪個(gè)卡的個(gè)插槽是專門插哪個(gè)卡的主板主板Java接口接口public interface PCI public void start(); public void stop();class SoundCard implements PCI public void start() System.

2、out.println(Du du.); public void stop() System.out.println(Sound stop!); Java接口中定義的方法在不同的地方被實(shí)現(xiàn),可以具有完全接口中定義的方法在不同的地方被實(shí)現(xiàn),可以具有完全不同的行為不同的行為這是這是Java接口,相當(dāng)于主接口,相當(dāng)于主板上的板上的PCI插槽的規(guī)范插槽的規(guī)范class NetworkCard implements PCI public void start() System.out.println(Send.); public void stop() System.out.println(Networ

3、k stop!); 聲卡、網(wǎng)卡都實(shí)現(xiàn)了聲卡、網(wǎng)卡都實(shí)現(xiàn)了PCI插槽的規(guī)范,但行為完全不同插槽的規(guī)范,但行為完全不同 基于接口的多態(tài)基于接口的多態(tài)public class Assembler public static void main(String args) PCI nc = new NetworkCard(); PCI sc = new SoundCard(); nc.start(); sc.start(); Du du.Send.控制臺(tái)輸出控制臺(tái)輸出案例案例軟件學(xué)院需開發(fā)這樣一個(gè)小系統(tǒng),包含:軟件學(xué)院、教師、系、打印機(jī),具體要求如下:1、教師和系都具有方法:輸出詳細(xì)信息2、 軟件學(xué)院具

4、有屬性:打印機(jī),能夠打印教師、系、軟件學(xué)院的詳細(xì)信息3、系統(tǒng)要具備良好的可擴(kuò)展性與可維護(hù)性打印打印 教師教師 系系教師教師詳細(xì)信息詳細(xì)信息系系詳細(xì)信息詳細(xì)信息detail方法方法(輸出詳細(xì)信息)(輸出詳細(xì)信息)軟件學(xué)院軟件學(xué)院 public class SoftwareTeacher /輸出教師的詳細(xì)信息輸出教師的詳細(xì)信息public String detail() return “本人是本人是軟件工程系軟件工程系教師教師;public class SoftwareSchool private Printer printer = new Printer(); /輸出中心的詳細(xì)信息輸出中心的詳細(xì)

5、信息public String detail() return “這是云南大學(xué)軟件學(xué)這是云南大學(xué)軟件學(xué)院院;/使用打印機(jī)打印教師信息使用打印機(jī)打印教師信息public void print(SoftwareTeacher t)printer.print(t.detail();/使用打印機(jī)打印系信息使用打印機(jī)打印系信息public void print(SoftwareDepartment s)printer.print(s.detail();public class Printer public void print(String content) System.out.println(開始打

6、印:開始打?。?; System.out.println(content);每增加一種新類型,都需要增加相應(yīng)的每增加一種新類型,都需要增加相應(yīng)的print(類型名稱類型名稱 var)方法方法程序的可擴(kuò)展性及可維護(hù)性極差程序的可擴(kuò)展性及可維護(hù)性極差這不符合系統(tǒng)的要求這不符合系統(tǒng)的要求public class SoftwareDepartmentpublic String detail() return “這這是是軟件工程系軟件工程系;可以通過多態(tài)性解決這個(gè)問題嗎可以通過多態(tài)性解決這個(gè)問題嗎?如果教師和系都實(shí)現(xiàn)同一接口,接口類型的變?nèi)绻處熀拖刀紝?shí)現(xiàn)同一接口,接口類型的變量便可以指向教師對(duì)象,或者

7、系對(duì)象了量便可以指向教師對(duì)象,或者系對(duì)象了教師教師 系系 detail方法方法(負(fù)責(zé)輸出詳細(xì)信息)(負(fù)責(zé)輸出詳細(xì)信息)教師教師詳細(xì)信息詳細(xì)信息系系詳細(xì)信息詳細(xì)信息回顧多態(tài)的含義:回顧多態(tài)的含義:父類型的變量(父類型的變量(reference)可以指向父對(duì)象,還可)可以指向父對(duì)象,還可以指向子對(duì)象;以指向子對(duì)象;教師、系都存在一個(gè)共同的方法特征:教師、系都存在一個(gè)共同的方法特征:detail,它們對(duì),它們對(duì)detail方方法有各自不同的實(shí)現(xiàn)法有各自不同的實(shí)現(xiàn)這完全符合這完全符合Java接口的定義接口的定義定義一個(gè)定義一個(gè)Java接口,在其中定義接口,在其中定義detail方法,但沒有具體實(shí)現(xiàn)方法

8、,但沒有具體實(shí)現(xiàn)實(shí)現(xiàn)這個(gè)實(shí)現(xiàn)這個(gè)Java接口,不同的類對(duì)接口,不同的類對(duì)detail方法有不同的具體實(shí)現(xiàn)方法有不同的具體實(shí)現(xiàn)TeacherSoftwareTeacherNetworkTeacher定義一個(gè)定義一個(gè)Java接口,在其中定義接口,在其中定義detail方法,但沒有具體實(shí)現(xiàn)方法,但沒有具體實(shí)現(xiàn)實(shí)現(xiàn)這個(gè)實(shí)現(xiàn)這個(gè)Java接口,不同的類對(duì)接口,不同的類對(duì)detail方法有不同的具體實(shí)現(xiàn)方法有不同的具體實(shí)現(xiàn)DepartmentSoftwareDepartmentNetworkDepartmentpublic interface Teacherpublic String detail();pu

9、blic class SoftwareSchool private Printer printer = new Printer(); /輸出學(xué)院的詳細(xì)信息輸出學(xué)院的詳細(xì)信息public String detail() return “這里是軟件學(xué)院這里是軟件學(xué)院;/使用學(xué)院打印機(jī)打印教師使用學(xué)院打印機(jī)打印教師public void print(Teacher t) printer.print(t.detail();/使用學(xué)院打印機(jī)打印教師使用學(xué)院打印機(jī)打印教師public void print(Department d) printer.print(d.detail();public inte

10、rface Departmentpublic String detail();通過通過Java接口,我們同樣可以享受到多態(tài)性的好處,大大提高了接口,我們同樣可以享受到多態(tài)性的好處,大大提高了程序的可擴(kuò)展性及可維護(hù)性程序的可擴(kuò)展性及可維護(hù)性 public class SoftwareTeacher implements Teacherpublic String detail() return “本人是軟件工程系教師本人是軟件工程系教師;public class SoftwareDepartment implements department public String detail() retu

11、rn “這這是是軟件工程系軟件工程系;接口接口F接口是一種類似于類的結(jié)構(gòu),但是接口中只能包含和。 F為了和類區(qū)別,定義接口使用下面的語法:public interface public interface 接口名接口名 extends extends 父接口列父接口列表表 常量聲明常量聲明 抽象方法抽象方法 finalfinal的用法的用法final classfinal class不能被繼承不能被繼承 final class Math final class Math . . finalfinal變量就是常量:變量就是常量: final double PI = 3.14159; final

12、double PI = 3.14159;finalfinal方法不能被覆蓋方法不能被覆蓋什么是常量?什么是常量?常量是一種標(biāo)識(shí)符,它的值在運(yùn)行期間恒定不變常量標(biāo)識(shí)符在程序中只能被引用,而不能被重新賦值常量圓周率PI圓周率PI代碼表示方式public static final double PI = 3.14159265358979323846;用法將ang角度轉(zhuǎn)換成徑度 public static double toRadians(double ang) return ang / 180.0 * PI;常量的優(yōu)點(diǎn)常量的優(yōu)點(diǎn)如果不使用常量,直接在程序中填寫數(shù)字或字符串,將會(huì)有什么麻煩?publi

13、c static double toRadians(double ang) return ang / 180.0 * 3.14159265358979323846;public static double toDegrees(double ang) return ang * 180.0 / 3.14159265358979323846;public static final double PI = 3.14159265358979323846; / 圓周率圓周率public static double toRadians(double ang) return ang / 180.0 * PI;

14、public static double toDegrees(double ang) return ang * 180.0 / PI;程序的可讀性變差:用程序的可讀性變差:用戶很難理解數(shù)字或字符戶很難理解數(shù)字或字符串的意思串的意思程序的可維護(hù)性變差:如程序的可維護(hù)性變差:如果數(shù)值改變,則需要在很果數(shù)值改變,則需要在很多地方改動(dòng),既麻煩又易多地方改動(dòng),既麻煩又易出錯(cuò)出錯(cuò)使用常量可以增強(qiáng)程序的可讀性、可維護(hù)性使用常量可以增強(qiáng)程序的可讀性、可維護(hù)性JAVA中常量的定義規(guī)則中常量的定義規(guī)則加入final 關(guān)鍵字代表常量, 加入static 關(guān)鍵字代表類變量盡量使用含義直觀的常量來表示那些將在程序中多次

15、出現(xiàn)的數(shù)字或字符串public class Student public static final int FEMALE = 1; /代表女性代表女性public static final int MALE = 2; /代表男性代表男性private int sex; /性別性別public void setSex(int sex) if(sex=FEMALE)System.out.println(這是一名女學(xué)生這是一名女學(xué)生);else if(sex = MALE)System.out.println(這是一名男學(xué)生這是一名男學(xué)生);this.sex = sex;在在Java接口中聲明常量接

16、口中聲明常量在Java 接口中聲明的變量在編譯時(shí)會(huì)自動(dòng)加上static final的修飾符,即聲明為常量,因而Java接口通常是存放常量的最佳地點(diǎn)public interface SoftwareSchool public static final String SoftwareEnginnering = “云南省軟件工云南省軟件工程重點(diǎn)實(shí)驗(yàn)室程重點(diǎn)實(shí)驗(yàn)室; public static final String CloudComputingEngineering = “云南省云南省云計(jì)算工程中心云計(jì)算工程中心; public interface SoftwareSchool String So

17、ftwareEnginnering = “云南省軟件工程重點(diǎn)實(shí)驗(yàn)室云南省軟件工程重點(diǎn)實(shí)驗(yàn)室; String CloudComputingEngineering = “云南省云計(jì)算工程中心云南省云計(jì)算工程中心;等同于等同于抽象方法和抽象類抽象方法和抽象類抽象方法:有方法聲明沒有方法實(shí)現(xiàn)抽象方法:有方法聲明沒有方法實(shí)現(xiàn)如果一個(gè)類中包含抽象方法,這個(gè)類就要聲明成抽象類,反之不成立如果一個(gè)類中包含抽象方法,這個(gè)類就要聲明成抽象類,反之不成立abstractabstract class Figure class Figure double dim1, dim2; double dim1, dim2; F

18、igure(double a, double b) Figure(double a, double b) dim1 = a;dim1 = a;dim2 = b;dim2 = b; abstract double getArea();/abstract double getArea();/只有方法頭,沒有方法體只有方法頭,沒有方法體 Figure f = new Figure(2,3);/Figure f = new Figure(2,3);/抽象類不能實(shí)例化抽象類不能實(shí)例化抽象類和抽象方法抽象類和抽象方法,由子類實(shí)現(xiàn)其抽象方法,否則其子類必須聲明成抽象類abstractabstract cla

19、ss Figure class Figure double dim1, dim2; double dim1, dim2; Figure(double a, double b) Figure(double a, double b) dim1 = a; dim1 = a; dim2 = b; dim2 = b; abstract double getArea();abstract double getArea();/只有方法頭,沒有方法體只有方法頭,沒有方法體 abstractabstract class Rectangle extends Figure class Rectangle exten

20、ds Figure Rectangle(double a, double b) Rectangle(double a, double b) super(a, b); super(a, b); RectangleRectangle類繼承了類繼承了FigureFigure類,但是沒有實(shí)現(xiàn)其內(nèi)部的抽象方法類,但是沒有實(shí)現(xiàn)其內(nèi)部的抽象方法,必須聲明成抽象類,必須聲明成抽象類抽象類和抽象方法抽象類和抽象方法abstractabstract class Figure class Figure double dim1, dim2; double dim1, dim2; Figure(double a, do

21、uble b) Figure(double a, double b) dim1 = a; dim1 = a; dim2 = b; dim2 = b; abstract double getArea();abstract double getArea();/只有方法頭,沒有方法體只有方法頭,沒有方法體 class Triangle extends Figure class Triangle extends Figure Triangle(double a, double b) Triangle(double a, double b) super(a, b); super(a, b); doubl

22、e getArea() double getArea() return dim1 return dim1 * * dim2 / 2; dim2 / 2; TriangleTriangle類繼承了類繼承了FigureFigure類,并且實(shí)現(xiàn)類,并且實(shí)現(xiàn)了其內(nèi)部的抽象方法了其內(nèi)部的抽象方法, ,無需聲明成抽象類無需聲明成抽象類public interface Edible public interface Edible /接口中的方法隱含接口中的方法隱含publicpublic和和abstractabstract public String howToEat(); public String ho

23、wToEat(); public interface Runnable public interface Runnable public void run(); public void run(); public interface Sleepable public interface Sleepable int MAX = 100; int MAX = 100; / / 接口中的變量隱含接口中的變量隱含publicpublic,staticstatic,finalfinal public void sleep(); public void sleep(); 接口接口接口接口不能實(shí)例化不能實(shí)例

24、化可以聲明接口類型的變量,可以聲明接口類型的變量,用接口聲明出的變量是用接口聲明出的變量是引用類引用類型變量型變量new Runnable();/new Runnable();/錯(cuò)誤錯(cuò)誤Edible e;Edible e;Runnable rRunnable rSleepable s;Sleepable s;實(shí)現(xiàn)接口實(shí)現(xiàn)接口class Animal class Animal class Chicken extends Animal class Chicken extends Animal implements Edible,Runnableimplements Edible,Runnable

25、public String howToEat() public String howToEat() return return 炸著吃炸著吃; public void run() public void run() System.out.println( System.out.println(兩條腿跑兩條腿跑);); public void layAnEgg() public void layAnEgg() System.out.println( System.out.println(母雞還可以生蛋母雞還可以生蛋);); 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,多個(gè)接口間用逗號(hào)分隔多個(gè)

26、接口間用逗號(hào)分隔實(shí)現(xiàn)接口的方法,返回類型,實(shí)現(xiàn)接口的方法,返回類型,名字,參數(shù)列表和接口中定義名字,參數(shù)列表和接口中定義的一模一樣,并且必須是的一模一樣,并且必須是publicpublic的的class Pig extends Animal implements Edible,Runnable,class Pig extends Animal implements Edible,Runnable, Sleepable Sleepable public String howToEat() public String howToEat() return return 蒸著吃,烤著吃,紅燒,燉湯等等

27、蒸著吃,烤著吃,紅燒,燉湯等等; public void run() public void run() System.out.println( System.out.println(四條腿跑四條腿跑);); public void sleep() public void sleep() System.out.println(“ System.out.println(“最喜歡睡覺最喜歡睡覺);); abstractabstract class Car implements Edible,Runnable class Car implements Edible,Runnablepublic vo

28、id run()public void run() System.out.println( System.out.println(四個(gè)輪子跑四個(gè)輪子跑);); 一個(gè)類如果聲明要實(shí)現(xiàn)一個(gè)接口,一個(gè)類如果聲明要實(shí)現(xiàn)一個(gè)接口,就必須實(shí)現(xiàn)接口中的所有方法,就必須實(shí)現(xiàn)接口中的所有方法,否則就要聲明成抽象類否則就要聲明成抽象類接口定義了行為的協(xié)議,可以被任何類實(shí)現(xiàn)。接口定義了行為的協(xié)議,可以被任何類實(shí)現(xiàn)。一個(gè)類如果聲明要實(shí)現(xiàn)一個(gè)接口,就必須實(shí)現(xiàn)接口中的一個(gè)類如果聲明要實(shí)現(xiàn)一個(gè)接口,就必須實(shí)現(xiàn)接口中的所所有有方法方法,否則就要聲明成抽象類,否則就要聲明成抽象類一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但是只能有一個(gè)父類。一個(gè)

29、類可以實(shí)現(xiàn)多個(gè)接口,但是只能有一個(gè)父類。接口的實(shí)現(xiàn)實(shí)現(xiàn)了接口的類的對(duì)象,可以賦值給該接口的變量實(shí)現(xiàn)了接口的類的對(duì)象,可以賦值給該接口的變量Edible e = new Chicken(); /okEdible e = new Chicken(); /oke. howToEat(); / ok, e. howToEat(); / ok, “炸著吃炸著吃 e. run();/wronge. run();/wrong,可以調(diào)用的方法的范圍是由變量決定的,可以調(diào)用的方法的范圍是由變量決定的e. layAnEgg(); /wronge. layAnEgg(); /wrong,同上,同上e = new C

30、ar();/wrong,Care = new Car();/wrong,Car類沒有實(shí)現(xiàn)類沒有實(shí)現(xiàn)EdibleEdible接口接口Sleepable s = new Pig();/okSleepable s = new Pig();/oks.Runs.Run();();面向接口編程面向接口編程開發(fā)系統(tǒng)時(shí),主體構(gòu)架使用接口,接口構(gòu)成系統(tǒng)的骨架這樣就可以通過更換接口的實(shí)現(xiàn)類來更換系統(tǒng)的實(shí)現(xiàn)定義一個(gè)定義一個(gè)Java接口,在其中定義接口,在其中定義detail方法,但沒有具體實(shí)現(xiàn)方法,但沒有具體實(shí)現(xiàn)實(shí)現(xiàn)這個(gè)實(shí)現(xiàn)這個(gè)Java接口,不同的類對(duì)接口,不同的類對(duì)detail方法有不同的具體實(shí)現(xiàn)方法有不同的具體

31、實(shí)現(xiàn)TeacherSoftwareTeacherNetworkTeacheru升級(jí)上述的系統(tǒng),要求:打印機(jī)有多種類型,比如:黑白打印機(jī)、彩色打印機(jī)等學(xué)院可能配備其中任意一款打印機(jī),負(fù)責(zé)打印教師、或者系的詳細(xì)信息系統(tǒng)要具備良好的可擴(kuò)展性與可維護(hù)性print方法方法 (打?。ù蛴。?彩色打印機(jī)彩色打印機(jī) 黑白打印機(jī)黑白打印機(jī) 黑白內(nèi)容黑白內(nèi)容系系/教師教師 詳細(xì)信息詳細(xì)信息 彩色內(nèi)容彩色內(nèi)容采用面向接口編程的方式實(shí)現(xiàn),以下是三個(gè)步驟中的第一步:抽象出抽象出Java接口接口1、分析:、分析:黑白、彩色打印機(jī)都存在一個(gè)共同的方法特征:黑白、彩色打印機(jī)都存在一個(gè)共同的方法特征:print黑白、彩色打印

32、機(jī)對(duì)黑白、彩色打印機(jī)對(duì)print方法有各自不同的實(shí)現(xiàn)方法有各自不同的實(shí)現(xiàn)2、結(jié)論:、結(jié)論:抽象出抽象出Java接口接口PrinterInterface,在其中定義方法,在其中定義方法print3、具體實(shí)現(xiàn):、具體實(shí)現(xiàn):public interface PrinterInterface public void print(String content);采用面向接口編程的方式實(shí)現(xiàn),以下是三個(gè)步驟中的第二步:public class ColorPrinter implements PrinterInterface public void print(String content) System.o

33、ut.println(彩色打?。翰噬蛴。?; System.out.println(content); public class BlackPrinter implements PrinterInterface public void print(String content) System.out.println(黑白打?。汉诎状蛴。?; System.out.println(content); 實(shí)現(xiàn)實(shí)現(xiàn)Java接口接口1、分析:、分析:已經(jīng)抽象出已經(jīng)抽象出Java接口接口PrinterInterface,并在其中定義了,并在其中定義了print方法,黑白、彩色打印機(jī)對(duì)方法,黑白、彩色打印

34、機(jī)對(duì)print方法有各自不同的方法有各自不同的實(shí)現(xiàn)實(shí)現(xiàn)2、結(jié)論:、結(jié)論: 黑白、彩色打印機(jī)都實(shí)現(xiàn)黑白、彩色打印機(jī)都實(shí)現(xiàn)PrinterInterface接口,各自實(shí)接口,各自實(shí)現(xiàn)現(xiàn)print方法方法3、具體實(shí)現(xiàn):、具體實(shí)現(xiàn):采用面向接口編程的方式實(shí)現(xiàn),以下是三個(gè)步驟中的第三步:使用使用Java接口接口1、分析:主體構(gòu)架使用接口、分析:主體構(gòu)架使用接口, 讓接口構(gòu)成系統(tǒng)的骨架讓接口構(gòu)成系統(tǒng)的骨架2、結(jié)論:更換實(shí)現(xiàn)接口的類就可以更換系統(tǒng)的實(shí)現(xiàn)、結(jié)論:更換實(shí)現(xiàn)接口的類就可以更換系統(tǒng)的實(shí)現(xiàn)3、具體實(shí)現(xiàn):、具體實(shí)現(xiàn):public class Softwarechool private PrinterInt

35、erface printer; /打印機(jī)打印機(jī) public void setPrinter(PrinterInterface p) this.printer = p; public String detail() return “這里是云南大學(xué)軟件學(xué)院這里是云南大學(xué)軟件學(xué)院; public void print(Teacher t) printer.print(t.detail(); public void print(Department d) printer.print(d.detail(); public class Test public static void main(String args) / 創(chuàng)建學(xué)院實(shí)例創(chuàng)建學(xué)院實(shí)例 SoftwareSchool school=new SoftwareSchool();SoftwareTeacher t = new SoftwareTeacher (); /為該學(xué)院配備黑白打印機(jī)為該學(xué)院配備黑白打印機(jī) school.setPrinter(new BlackPrinter(); school.print(t.detail(); /為該學(xué)院配備彩色打印機(jī)為該學(xué)院配備彩色打印機(jī)SoftwareDepartment d= new SoftwareDepartment();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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)論