Java程序設計基礎(第2版) 課件 第3章 類與對象(第2版)_第1頁
Java程序設計基礎(第2版) 課件 第3章 類與對象(第2版)_第2頁
Java程序設計基礎(第2版) 課件 第3章 類與對象(第2版)_第3頁
Java程序設計基礎(第2版) 課件 第3章 類與對象(第2版)_第4頁
Java程序設計基礎(第2版) 課件 第3章 類與對象(第2版)_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

類和對象12問題:爺爺要一個蘋果問題解決面向對象范式問題:程序需要從鍵盤輸入“蘋果”求解:classT{publicstaticvoidmain(String[]args)Scannersc=newScanner(System.in);Stringapple=sc.next();System.out.print(apple);}}3爺爺孫子設計Java程序的一般步驟Java程序就是一些類的集合。設計Java程序的一般步驟如下:設計類,假設類的名字為A,通常一個類保存到一個.java源文件中,如A.java;使用類A。有三個步驟:聲明類型為A的引用類型變量;使用保留字new調(diào)用類A的構造方法創(chuàng)建對象;通過引用變量訪問對象的成員。設計main方法,運行程序4內(nèi)容3.1類的聲明 3.2創(chuàng)建對象 3.3訪問對象 3.4對象的字符串表示 3.5方法的調(diào)用和返回 3.6重載 3.7類變量和實例變量 3.8靜態(tài)方法和實例方法3.9命令行參數(shù) 5問題:給定任意一個圓,計算面積6三個圓:三個對象問:什么是圓?現(xiàn)實世界的對象平面形狀在一平面內(nèi)到定點的距離等于定長的點的集合叫做圓(circle)。定點稱為圓的圓心。定長稱為圓的半徑。

7問題:計算任意一個圓的面積

8問題:計算任意一個圓的面積如何讓計算機求解?進一步抽象抽:抽取象:感知的事物表象從具體到抽象從個體到一般

9問題:計算任意一個圓的面積10Circleradius:doublegetArea():double類名類的屬性類的行為用程序設計語言Java實現(xiàn)111public

classCircle{

2

intradius;

3

doublegetArea(){

4

returnMath.PI*radius*radius;

5}

6}類名成員變量成員方法問題:給定任意一個圓,計算面積12publicclassTestCircle{publicstaticvoidmain(String[]args){//創(chuàng)建圓對象Circlec1=newCircle();c1.radius=1;System.out.println(c1.getArea());

Circlec2=newCircle();c2.radius=2;System.out.println(c2.getArea());}}類與源文件一個類,如Circle,對應一個源文件Circle.java一個源文件(也稱為編譯單元)中可以有多個類,但至多有一個類為public13類與源文件演示:把類Circle的定義放在源文件TestCircel.java中143.1類的聲明類是對象的抽象表示,相當于一個概念;而對象是類的實例,相當于一個具體的事物。例如,“汽車”是一個“類”,包含了品牌、型號、排量、加速、剎車等特征某一輛具體的小汽車就是“汽車”這個類的一個實例。對象具有唯一的標識(identity)、狀態(tài)(state)、和行為(behavior)對象的狀態(tài)是由其成員變量(membervariable)以及這些成員變量當前的值表示。成員變量定義了對象的屬性。對象的行為由一系列方法(method)來定義。調(diào)用對象上的方法意味著請求該對象完成一項工作。15小汽車類Car的聲明屬性車牌號碼licenceNumber車身外廓尺寸長length寬width高height當前行駛速度speed行為加速accelerate外廓尺寸getOverallSize鳴笛honk16聲明類Car17成員變量的初值如果在聲明成員變量的時候程序員沒有顯式地給出成員變量的初值,那么Java會自動使用默認的初始值進行賦值。18注意類體中通常會聲明若干的成員變量,通常聲明為private類體中一般聲明若干成員方法,且通常聲明為public訪問對象成員訪問運算符“.”c.radius=2;c.getArea();19訪問修飾符成員變量前的訪問修飾符private的意思是僅僅在本類中可視,稱為類私有變量如果沒有訪問修飾符,則使用默認的“包私有”可訪問性訪問修飾符public表示公共訪問,沒有限制20聲明方法<訪問修飾符><返回值類型><名字>(<形式參數(shù)序列>){<語句序列>}21方法簽名<形式參數(shù)序列>是若干個逗號隔開的<類型><形式參數(shù)名><返回值類型>、<名字>和(<形式參數(shù)序列>)合起來稱為方法頭部(methodhead)方法頭部中,<名字>和<形式參數(shù)類型序列>合起來稱為方法簽名(methodsignature),唯一標識了同一類中的方法。<形式參數(shù)類型序列>是逗號隔開的若干形式參數(shù)類型,不含形式參數(shù)名。例如構造方法Car(StringlicenceNumber,intlength,intwidth,intheight,intspeed)的形式參數(shù)類型序列是(String,int,int,int,int)。形式參數(shù)的名字、<訪問修飾符>以及<返回值類型>不在方法簽名中。形式參數(shù)的個數(shù)不同、對應參數(shù)類型不同,那么方法簽名也不同。使用方法簽名名作為方法的標識,使得同一個類中可以聲明多個相同名字的方法。22構造方法在類體中一般還需要聲明用以實例化對象的構造方法(constructor),也稱為構造器。構造方法僅僅在實例化對象的語句中被調(diào)用,一般用來初始化成員變量。構造方法的方法頭部與一般的成員方法相似,不同之處有二:其一,構造方法沒有聲明返回值類型;其二,構造方法的名字與類名相同。23構造方法如果在一個類中沒有聲明構造方法,則是使用默認的無參構造方法;一旦在類中聲明了構造方法,無論該構造方法有無參數(shù),該類就不再使用默認的無參構造方法。類Car中聲明了一個有參構造方法Car(StringlicenceNumber,intlength,intwidth,intheight,intspeed)24CarDemo.java注意為一個類聲明構造方法是可選的。如果在一個類中沒有聲明構造方法,那么Java會為該類提供一個默認的構造方法。該默認的構造方法是個無參構造方法。一旦在類中聲明了構造方法,無論該構造方法有無參數(shù),則Java就不再為該類提供構造方法。25構造方法一般類聲明中會有2個以上的構造方法,這樣為實例化對象提供的不同的方式。263.2創(chuàng)建對象聲明了類就為創(chuàng)建對象準備好了模板。有了類,就可以根據(jù)類創(chuàng)建對象了。模板是對一個事物的抽象描述;而對象是具體的一個事物。創(chuàng)建對象意味著在Java的世界里多了一個事物,創(chuàng)建對象也意味著在計算機的存儲空間中為對象分配一塊區(qū)域。在Java程序運行時刻有兩塊內(nèi)存區(qū)域:一是棧(Stack),在棧中存放方法中定義的基本類型變量和對象的引用變量;另一是堆(Heap),堆里用來存放對象。27創(chuàng)建對象28ObjectCreation.java創(chuàng)建對象創(chuàng)建一個對象需要做三件事情:聲明(Declare)引用變量實例化(Instantiate)對象初始化(Initialize)對象。29讀作:創(chuàng)建類型為Car的對象,并將其引用賦值給變量a。創(chuàng)建對象聲明引用變量意味著在??臻g分配一個變量,并使用一個名字標識該變量;該變量中允許存放指定類型的對象的堆空間引用。實例化的含義是使用運算符new為對象分配堆存儲空間。初始化的含義是調(diào)用構造方法執(zhí)行相應的初始化操作。30創(chuàng)建對象31也可以分成兩條語句完成對象創(chuàng)建:

Cara;a=newCar(4481,1746,1526);注意new僅僅為允許作為對象成員變量的類中聲明的那些成員變量分配存儲空間作為新創(chuàng)建對象的存儲空間,這些成員變量稱為實例變量對象的存儲空間中沒有成員方法和構造方法構造方法Car(intlength,intwidth,intheight)中的形式參數(shù)與成員變量一一對應,稱為“全參數(shù)構造方法”32訪問對象創(chuàng)建了對象并通過a來引用該對象讓a所引用的對象執(zhí)行方法honk()輸出字符串“嘀嘀”;讓a所引用的對象執(zhí)行方法getOverallSize()返回并輸出汽車的外廓尺寸“4481×1746×1526”33ObjectVisit.java訪問對象訪問對象的語句:

a.honk();

讀作“讓對象a執(zhí)行方法honk”或者讀作“調(diào)用對象a的方法honk”34訪問對象

<對象引用>.<方法名>()如果該方法聲明了形式參數(shù),則調(diào)用時需要給出相應的實在參數(shù)(argument):

<對象引用>.<方法名>(<參數(shù)序列>)35訪問對象訪問對象的成員變量:<對象引用>.<成員變量>通常成員變量聲明為類私有的,只能通過成員方法間接訪問。36訪問對象讀寫對象的成員變量、執(zhí)行對象的方法統(tǒng)稱為訪問對象的成員。訪問對象的成員使用成員訪問運算符“.”。37訪問對象381publicclassObjectVisit{2publicstaticvoidmain(String[]args){3Cara=newCar(4481,1746,1526);4a.honk();5System.out.println(a.getOverallSize());6}7}訪問對象在對象的構造方法中和對象的成員方法中如何訪問該對象的成員變量呢?第14行到第18行聲明了一個構造方法,該方法把長、寬、高三個實在參數(shù)賦值給成員變量。在方法體中就需要訪問成員變量,此時尚沒有對象引用,如何“通過對象引用來訪問成員”呢?39保留字thisthis引用“當前對象”當前對象指正在執(zhí)行本方法的對象40構造方法中的this引用正在由保留字new創(chuàng)建的對象。第3行中的保留字new后面是對第14行構造方法的調(diào)用,調(diào)用時傳遞了三個參數(shù),然后控制轉移到第15行開始執(zhí)行,第15行this.length=length把實在參數(shù)length賦值給正在創(chuàng)建的對象的成員變量length。ObjectVisit.java保留字this在對象的方法中訪問成員變量仍然需要通過對象引用,仍然使用保留字this。例如在第20行的getOverallSize()方法中需要讀取三個成員變量,應該寫作:41publicStringgetOverallSize(){returnthis.length+"×"+this.width+"×"+this.height;}此時this引用的是在第5行a.getOverallSize()中的a所引用的對象。通常把方法體中的this省略以提高可讀性。保留字this通過this()在構造方法中顯式地調(diào)用一個構造方法。42Car.java在構造方法的方法體中,this()必須是第一條語句3.4對象的字符串表示System.out.pirntln輸出:初值為45整型變量a引用字符串對象“ABC”引用類型變量s引用Car對象的引用變量c43ObjectByPrintln.java45ABCCar@28a418fc在內(nèi)存地址28a418fc處的Car對象期望的輸出形如:Car[length:4481,width:1746,height:1526]toString方法那么就需要在Car類中增加一個頭部為publicStringtoString()的方法44ObjectByString.javatoString方法語句:System.out.println(a);等價于語句:System.out.println(a.toString());45代詞:我在課堂上,師生問答場景任課老師:張三同學請回答什么是正方形?張三:我不會任課老師:李四同學請回答李四:我不會46“我”是張三還是李四?“我”是正在回答問題的同學getter和setter汽車類Car是對現(xiàn)實世界實體的抽象,稱為實體類。實體類一般聲明為public,并單獨保存在一個.java源文件中。實體類的所有成員量聲明為private,針對每個私有成員變量都聲明一對的public的set()和get()方法用來訪問私有成員變量,這些方法稱為getter和setter。例如在源文件3.7中第24行至第29行聲明了用于訪問私有成員變量length的getter和setter。第5行使用setter設置了成員變量的值為4567,第6行通過getter讀取變量的值47GetterSetter.javagetter和settergetter和setter方法的名字約定為getXxx和setXxx,其中Xxx是成員變量的名字,首字母大寫。當成員變量是boolean類型時,getter方法的名字約定為isXxx。比如假設有boolean類型的成員變量marriaged,那么其getter方法的頭部就是booleanisMarriaged()483.5方法的調(diào)用和返回調(diào)用方法會把控制流轉移到被調(diào)用的方法體中執(zhí)行,執(zhí)行完畢則返回到調(diào)用處繼續(xù)執(zhí)行后續(xù)語句。在進行方法調(diào)用時,需要把實在參數(shù)傳遞給形式參數(shù)。Java語言僅有“傳值”一種方式把實在參數(shù)的值賦值給形式參數(shù)。49方法的調(diào)用和返回方法調(diào)用時,給出的參數(shù)稱為實在參數(shù)(arguments);方法聲明時,列出的參數(shù)稱為形式參數(shù)(parameters)。實在參數(shù)賦值給形式參數(shù)的過程稱為形實結合。傳值(passedbyvalue)的形實結合方式就是把實參的值復制一份存放到形式參數(shù)中。形式參數(shù)與局部變量一樣,當方法執(zhí)行完畢,返回到調(diào)用點時就消失了50方法調(diào)用的過程1. 按照從左到右的次序對實在參數(shù)計值。允許實在參數(shù)是個表達式,所以在進行形實結合之前,首先計算出表達式的值。2. 在棧區(qū)分配一塊臨時的存儲區(qū)域,用以存儲形式參數(shù)、局部變量、調(diào)用語句下一條語句的地址、當前寄存器信息、以及其它執(zhí)行方法所需的工作單元等。3. 參數(shù)傳遞。把實在參數(shù)的值賦值給相應的形式參數(shù)。4. 執(zhí)行方法體。5. 從方法中返回。當執(zhí)行了方法體中的return語句,后者執(zhí)行到了方法體的末尾,釋放調(diào)用時分配的棧中存儲局部變量的空間,控制返回到調(diào)用語句的下一條語句處執(zhí)行。如果方法聲明了返回值,則把返回值放在調(diào)用者與被調(diào)用者約定的存儲單元。51例52使用司機對象創(chuàng)建了一個汽車對象調(diào)用汽車對象的setSpeed(60)方法把車速設置為60PassingByValue.java調(diào)用setSpeed(60)前調(diào)用setSpeed(60)后例司機對象的年齡改為4653PassingByValue.java調(diào)用zhang.setAge(46)前調(diào)用zhang.setAge(46)后注意,變量zhang和汽車對象中的成員變量driver引用的是同一個對象。參數(shù)傳遞由于形式參數(shù)與局部變量一樣,所以對形式參數(shù)的任何改變僅僅在方法體執(zhí)行期間有效。一旦方法執(zhí)行完畢,形式參數(shù)和局部變量一樣,隨著臨時存儲空間的釋放而消失了。所以,對應基本數(shù)據(jù)類型的形式參數(shù),方法體中對其做的任何改變,都將隨著方法的返回而丟失。而對于引用類型的形式參數(shù),由于形式參數(shù)僅僅從實在參數(shù)得到一份對象的引用,使得在方法執(zhí)行期間,實在參數(shù)和形式參數(shù)同時引用了同一個對象。即便形式參數(shù)隨著方法的返回而消失,調(diào)用者仍然可以通過實在參數(shù)訪問對象。54例:交換數(shù)組中任意兩個元素55ArrayAsParameter.java調(diào)用swap前調(diào)用swap后例:交換數(shù)組中任意兩個元素56形式參數(shù)由于形式參數(shù)與局部變量一樣,所以對形式參數(shù)的任何改變僅僅在方法體執(zhí)行期間有效。一旦方法執(zhí)行完畢,形式參數(shù)和局部變量一樣,隨著臨時存儲空間的撤銷而消失了所以,對應基本數(shù)據(jù)類型的形式參數(shù),方法體中對其做的任何改變,都將隨著方法的返回而丟失57注意而對于引用類型的形式參數(shù),由于形式參數(shù)僅僅從實在參數(shù)得到一份對象的引用,相當于在方法執(zhí)行期間,實在參數(shù)和形式參數(shù)同時引用了同一個對象。即便形式參數(shù)隨著方法的返回而消失,調(diào)用者仍然可以通過實在參數(shù)訪問對象。58方法的返回方法有兩種正常流程的返回方式:方法體中的所有語句全部執(zhí)行完畢執(zhí)行return語句。還有一種異常返回方式,即執(zhí)行方法體期間的某條語句時拋出了異常,而該方法又聲明由調(diào)用者處理異常。59從方法中返回用于從一個無返回值的方法中返回調(diào)用者的return語句形式如下:

return;

如果方法聲明需要返回值,那么就把返回值放在return保留字的后面:

return<返回值>;

返回值類型為void的方法沒有必要一定通過return語句返回。60從方法中返回方法不僅能夠返回一個基本類型的值也能返回一個對象引用613.6方法的重載Java支持方法重載(overloading)即允許在同一個類中聲明具有相同名字的方法,但這些方法的簽名必須不同62PrintWriter類重載的println()方法java.io.PrintWriter.println()java.io.PrintWriter.println(boolean)java.io.PrintWriter.println(char)java.io.PrintWriter.println(char[])java.io.PrintWriter.println(double)java.io.PrintWriter.println(float)java.io.PrintWriter.println(int)java.io.PrintWriter.println(java.lang.Object)java.io.PrintWriter.println(java.lang.String)java.io.PrintWriter.println(long)63重載方便了使用,使得程序簡潔publicstaticvoidmain(String[]args){inti=0;doubled=3.14;longl=1;Circlec=newCircle(2);System.out.println(i);System.out.println(d);System.out.println(l);System.out.println(c);}64否則,65java.io.PrintWriter.println()java.io.PrintWriter.printlnBoolean()java.io.PrintWriter.printlnChar()java.io.PrintWriter.printlndouble()java.io.PrintWriter.printlnFloat()java.io.PrintWriter.printlninteger()java.io.PrintWriter.println(Long)java.io.PrintWriter.printlnObject()java.io.PrintWriter.printlnString()眼花繚亂的程序publicstaticvoidmain(String[]args){inti=0;doubled=3.14;longl=1;Circlec=newCircle(2);System.out.printlnInteger(i);System.out.printlnDouble(d);System.out.printlnLong(l);System.out.printlnObject(c);}66例聲明了方法簽名為f(int)和f(int,int)的方法二者方法名都是f,但一個參數(shù)類型序列是int;另一個參數(shù)類型序列是int,int兩個序列不同,所以兩個方法簽名不同后者重載了前者。67OverloadDemo.java例第8行聲明的方法雖然與其名字相同,返回值類型不同,但是方法簽名是f(int,int),方法簽名相同此處會出現(xiàn)編譯錯誤消息第11行聲明的方法盡管形式參數(shù)名與第5行的方法不同,但方法簽名仍然相同所以仍然造成編譯錯誤第20行的方法g與第17行的方法g雖然訪問修飾符不同,但方法簽名相同所以編譯時會出現(xiàn)編譯錯誤信息68注意方法的訪問權限、返回類型、拋出的異常、以及方法的異常類型和數(shù)目不會對重載造成影響693.7類變量和實例變量Java通過對象協(xié)作完成工作在開始協(xié)作之前,首先根據(jù)類創(chuàng)建對象那么,創(chuàng)建對象之前,就得把類裝載到內(nèi)存當然,類只需裝載一次即下次使用該類時,如果已經(jīng)裝載,則不必重新裝載。70類變量和實例變量如果類的成員變量特別聲明在裝載類時為其分配存儲而不是創(chuàng)建對象時為其分配存儲,則這些成員變量就稱為靜態(tài)變量(staticvariable)或者類變量(classvariable)。類變量隨著類的加載而產(chǎn)生,當程序運行結束才消亡。71類變量和實例變量而那些創(chuàng)建對象時才分配存儲的變量稱為實例變量(instancevariable)。實例變量隨著某個對象創(chuàng)建而產(chǎn)生,隨著該對象的消亡而消亡。72類變量和實例變量如果在類的成員變量聲明語言中使用了static修飾符,則該變量就是靜態(tài)變量;否則就是實例變量73例74publicclassGlobal{publicstaticintMAX=1024;publicstaticdoublePI=3.141592653589793;}當需要在整個應用程序范圍共享某個變量時,可以聲明為靜態(tài)成員變量1publicclassStaticVarDemo{2publicstaticvoidmain(String[]args){3System.out.println(Global.PI);4}5}訪問類成員變量類名和成員訪問運算符“.”:

<類名>.<靜態(tài)變量>所屬類中訪問,可以省略類名75類變量(靜態(tài)變量)靜態(tài)變量的初始化一般有兩種方式:聲明時初始化靜態(tài)初始化塊76靜態(tài)變量的初始化77publicclassGlobal{publicstaticintMAX=1024;publicstaticdoublePI=3.141592653589793;}publicclassGlobal{publicstaticintMAX;static{MAX=1024;}}靜態(tài)塊中把靜態(tài)變量MAX初值設置為1024在聲明靜態(tài)變量MAX時就可以將其初值設置為1024實例變量沒有使用static保留字修飾的成員變量稱為實例變量通過對象引用訪問對象成員78實例變量初始化聲明時初始化對象創(chuàng)建時初始化通過方法調(diào)用初始化79聲明時初始化80publicclassA{privateintaMember=1; publicvoidaMethod(){}}創(chuàng)建對象時初始化81classA{privateintaMember;A(inti){aMember=i;}}通過方法調(diào)用初始化82classA{intaMember;voidaMethod(inti){aMember=i;}}要點實例變量必須創(chuàng)建對象后才可以通過這個對象的引用變量來訪問靜態(tài)變量則可以直接使用類名來訪問靜態(tài)變量不屬于任何對象,而僅屬于類,所以也稱為類變量只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實例對象,靜態(tài)變量就會被分配空間,靜態(tài)變量就可以被訪問了。83變量的生命周期靜態(tài)變量、實例變量和局部變量是Java程序中常見的三種變量。這些變量的生命周期不同:靜態(tài)變量隨著類的加載而產(chǎn)生,隨著的類的回收而消失;實例變量隨著對象的創(chuàng)建而產(chǎn)生,隨著對象的回收而消失。在方法體中聲明的局部變量則隨著方法的調(diào)用而出現(xiàn)在棧中,隨著方法的返回而消失。方法的形式參數(shù)屬于局部變量。84默認初值靜態(tài)變量和實例變量都是成員變量,具有默認初值局部變量沒有默認初值,必須顯式初始化85變量的作用域塊變量局部于其所在的塊塊可以嵌套,但不可以交錯??梢栽L問某個變量的塊形成了該變量的作用域。86第10行試圖訪問變量b,則會出現(xiàn)編譯錯誤1classBlockDemo{2staticinta;34{5intb=0;6}78publicstaticvoidmain(String[]args){9System.out.println(a);10System.out.println(b);11}12}共有3個塊變量的作用域第11行訪問的x是在第2行聲明的x,而不是在第6行for循環(huán)體中聲明的x,因為后者僅作用于for循環(huán)體;而前者的作用域是類體,含類體中的所有塊。第17行訪問的x是在第16行聲明的x,而不是在第2行聲明的x,這種現(xiàn)象稱為“就近原則”。87ScopeOfVariable.javaxintheforloop:5xintheforloop:5xintheforloop:5iisnow:3xintheclass:2xinaMethod:1變量的作用域第6行在for循環(huán)語句的循環(huán)體里聲明了局部變量x,那么這個x就與第2行聲明成員變量x是兩個不同的變量。按照“就近”原則,該循環(huán)體訪問x的語句訪問的是局部變量x,而不是成員變量x。由于當進入塊的時候才創(chuàng)建局部變量,所以在3次循環(huán)中的每次循環(huán)都創(chuàng)建局部變量x。當塊執(zhí)行完畢,該塊中的局部變量消失,所以3次循環(huán)中的每次循環(huán)結束,x都消失883.8靜態(tài)方法和實例方法如果在成員變量的聲明中增加了sta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論