第六章 深入面向?qū)ο蟮某绦蛟O(shè)計(jì)_第1頁
第六章 深入面向?qū)ο蟮某绦蛟O(shè)計(jì)_第2頁
第六章 深入面向?qū)ο蟮某绦蛟O(shè)計(jì)_第3頁
第六章 深入面向?qū)ο蟮某绦蛟O(shè)計(jì)_第4頁
第六章 深入面向?qū)ο蟮某绦蛟O(shè)計(jì)_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第六章深入面向?qū)ο蟮某绦蛟O(shè)計(jì)6.1繼承與重載6.1.1繼承關(guān)系的定義Java中的繼承是通過extends關(guān)鍵字來實(shí)現(xiàn)的。新定義的類稱為子類,它可以從父類那里繼承所有的非private的屬性和方法作為自己的成員。見例類Employee、CommonEmployee、ManagerEmployee6.1.2屬性的繼承與隱藏1.屬性的繼承子類可以繼承父類非私有的所有屬性。子類可以自己新建一個(gè)屬于自己的屬性。子類的全部屬性=父類繼承下來的+自己新建的。說明:父類的所有非私有屬性實(shí)際是各子類都擁有的屬性的集合。子類從父類繼承屬性不需要把父類屬性的定義部分再復(fù)制一遍。優(yōu)點(diǎn):減少程序的維護(hù)量。2.屬性的隱藏子類從父類繼承來的屬性變量重新加以定義,稱為屬性的隱藏。見例6.1

TestHide.java6.1.3方法的繼承、重載和覆蓋1.方法的繼承父類的非私有方法作為類的非私有成員,也可以被子類所繼承。見例6.2InheritMethod.java2.方法的覆蓋在子類中定義與父類相同的方法名稱,稱為方法的覆蓋。見例6.3

OverrideMethod.java注:在方法的覆蓋中,由于同名方法隸屬于不同的類,所以要解決調(diào)用如何區(qū)分他們的問題,只需要在方法名前面使用不同的類名或不同類的對(duì)象名即可。子類在重新定義父類已有的方法時(shí),應(yīng)保持與父類完全相同的方法頭聲明,即應(yīng)與父類有完全相同的方法名、返回值和參數(shù)列表。3.方法的重載 子類定義同名方法來覆蓋父類的方法是面向?qū)ο蠓椒ㄖ卸鄳B(tài)技術(shù)的一種實(shí)現(xiàn)。 所謂多態(tài)是指同名的不同方法共存。有助于隱藏對(duì)象內(nèi)部的細(xì)節(jié),提高程序的抽象程度,是面向?qū)ο蟪绦蛟O(shè)計(jì)中經(jīng)常使用的方法。 實(shí)現(xiàn)多態(tài)技術(shù)的另一種重要的手段就是方法的重載。

重載:類對(duì)自身已有的同名方法的重新定義。重載與覆蓋不同,重載不是子類對(duì)父類同名方法的重新定義。方法的重載是同類中同名方法共存的情況,不能像方法的覆蓋那樣采用類名前綴來區(qū)分,而應(yīng)該采用通過參數(shù)列表來區(qū)分不同的方法。同類中同名的不同方法需要有不同的參數(shù)列表,包括參數(shù)順序的不同和參數(shù)類型的不同。6.1.4父類對(duì)象與子類對(duì)象的使用與轉(zhuǎn)化

super和this是常用來指代父類對(duì)象和子類對(duì)象的關(guān)鍵字。

Java系統(tǒng)默認(rèn),每個(gè)類都缺省地具有null、this和super三個(gè)量,所以在任意類中都可以不加說明而直接使用它們。

null代表“空”,代表一個(gè)什么也沒有的“空”值,一般用null來代表尚未存在的對(duì)象,在定義一個(gè)對(duì)象但尚未為其開辟內(nèi)存單元時(shí)可以指定這個(gè)對(duì)象為null。1.this

this表示的是當(dāng)前對(duì)象本身, 更準(zhǔn)確地說,this代表了當(dāng)前對(duì)象的一個(gè)引用。 對(duì)象的引用可以理解為對(duì)象的另一個(gè)名字,通過引用可以順利地訪問到對(duì)象,包括修改對(duì)象的屬性、調(diào)用對(duì)象的方法。this通常用來把當(dāng)前對(duì)象的引用作為參數(shù)傳遞給其他的對(duì)象或方法。如:classSecretaryEmployeeextendsCommonEmployee{//一般雇員的子類:秘書類

SecretaryEmployee(ManagerEmployeeboss){//秘書的構(gòu)造函數(shù)

m_EmpSalary=boss.getSalary()/3;//秘書的薪金是上司的三分之一}}//雇員的子類2:主管classManagerEmployeeextendsEmployee{SecretaryEmployee

m_Secretary;//主管的秘書ManagerEmployee(Date

mgrdate){//主管的構(gòu)造函數(shù)m_Secretary=newSecretaryEmployee(this);//每新任命一位主管,都為他指派一名秘書

}}說明:每新建一個(gè)ManagerEmployee對(duì)象時(shí),都同時(shí)創(chuàng)建一個(gè)SecretaryEmployee對(duì)象作為其秘書。2.supersuper表示的是當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象的直接父類對(duì)象的引用。所謂直接父類是相對(duì)于當(dāng)前對(duì)象的其他“祖先”類而言。注意:this和super是屬于類的所有特指的屬性(即類的成員),只能用來代表當(dāng)前對(duì)象和當(dāng)前對(duì)象的父對(duì)象,而不能像其他類的屬性一樣隨意引用。下列都是錯(cuò)誤的代碼:ManagerEmployee

MgrEmp=newManagerEmployee();MgrEmp.this.getMinSalary();//ErrorMgrEmp.super.workDays();//Error3.父類對(duì)象與子類對(duì)象的轉(zhuǎn)換父類對(duì)象和子類對(duì)象的轉(zhuǎn)化需要注意如下的原則:子類對(duì)象可以被視為是其父類的一個(gè)對(duì)象;父類對(duì)象不能被當(dāng)作是其某一個(gè)子類的對(duì)象;如果一個(gè)方法的形式參數(shù)定義的是父類對(duì)象,那么調(diào)用這個(gè)方法時(shí),可以使用子類對(duì)象作為實(shí)際參數(shù);如果父類對(duì)象引用指向的實(shí)際是一個(gè)子類對(duì)象,那么這個(gè)父類對(duì)象的引用可以用強(qiáng)制類型轉(zhuǎn)換成子類對(duì)象的引用。例:classsuperClass{//定義父類

intx;...}classSubClassextendsSuperClass{//定義子類

inty;charch;...}publicclassUseSuperSub{//使用父類與子類

SuperClass

sc,sc_ref;

SubClass

sb,sb_ref;sc=newSuperClass();

sb=newSubClass();

sc_ref=sb;//父類引用可以指向子類對(duì)象

sb_ref=(SubClass)sc_ref;//父類引用轉(zhuǎn)換成子類引用

}6.1.5構(gòu)造函數(shù)的繼承與重載構(gòu)造函數(shù)是類的一種特殊函數(shù),它也可以從父類那里繼承,也可以互相重載。1.構(gòu)造函數(shù)的重載構(gòu)造函數(shù)的重載是指同一個(gè)類中存在著若干個(gè)具有不同參數(shù)列表的構(gòu)造函數(shù)。當(dāng)一個(gè)類因構(gòu)造函數(shù)的重載而存在著若干個(gè)構(gòu)造函數(shù)時(shí),創(chuàng)建該類對(duì)象的語句會(huì)自動(dòng)根據(jù)給出的實(shí)際參數(shù)的數(shù)目、類型和順序來確定調(diào)用哪個(gè)構(gòu)造函數(shù)來完成新對(duì)象的初始化工作。當(dāng)一個(gè)構(gòu)造函數(shù)需要調(diào)用另一個(gè)構(gòu)造函數(shù)時(shí),應(yīng)使用關(guān)鍵字this,同時(shí)這個(gè)調(diào)用語句應(yīng)該是整個(gè)構(gòu)造函數(shù)的第一個(gè)可執(zhí)行語句。如:Employee(){

m_EmpNo=m_NextEmpNo++;}Employee(Stringname){this();

m_EmpName=newString(name);}2.構(gòu)造函數(shù)的繼承子類可以繼承父類的構(gòu)造函數(shù),遵循以下的原則:1,子類無條件地繼承父類的不含參數(shù)的構(gòu)造函數(shù);2,如果子類自己定義了構(gòu)造函數(shù),則它在創(chuàng)建新對(duì)象時(shí),它將先執(zhí)行繼承自父類的無參數(shù)構(gòu)造函數(shù),然后再執(zhí)行自己的構(gòu)造函數(shù);3,對(duì)于父類的含參數(shù)構(gòu)造函數(shù),子類可以通過在自己構(gòu)造函數(shù)中使用super關(guān)鍵字來調(diào)用它,但這個(gè)調(diào)用語句必須是子類構(gòu)造函數(shù)的第一個(gè)可執(zhí)行語句。在父類已有構(gòu)造函數(shù)的基礎(chǔ)上,子類的構(gòu)造函數(shù)可以有如下的幾種設(shè)計(jì)方法:1,不專門定義自己的構(gòu)造函數(shù),每當(dāng)創(chuàng)建對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用父類的無參數(shù)構(gòu)造函數(shù)2,定義自己的構(gòu)造函數(shù)并調(diào)用父類的含參數(shù)構(gòu)造函數(shù),在父類構(gòu)造函數(shù)的初始化操作的基礎(chǔ)上定義子類自己的初始化操作。3,實(shí)現(xiàn)構(gòu)造函數(shù)的重載,滿足多層次的對(duì)象初始化需要6.2包(package)包:1,把各種類組織在一起,使得程序功能清楚、結(jié)構(gòu)分明。2,包是一種松散的類的集合。同一包中的類之間可以是任意的關(guān)系,在缺省情況下可以互相訪問。3,使用包有利于實(shí)現(xiàn)不同程序間類的復(fù)用。1.創(chuàng)建包缺?。合到y(tǒng)為每一個(gè).java源文件創(chuàng)建一個(gè)無名包。(1)該.java文件中定義的所有類都隸屬于這個(gè)無名包,它們之間可以相互引用。(2)無名包不能被其他包所引用,即無名包中的類不能被其他包中的類所利用和復(fù)用。創(chuàng)建包的語句需要用關(guān)鍵字package,而且是整個(gè).java文件的第一個(gè)語句。格式:package包名;packagepkg1[.pkg2[.pkg3]];例:packageEmpClasses;packageEmpSystem.EmpClasses;//創(chuàng)建兩個(gè)子文件夾注:實(shí)際上,創(chuàng)建包就是在當(dāng)前文件夾下創(chuàng)建一個(gè)子文件夾,以便存放這個(gè)包中包含的所有類的.class文件。命令行創(chuàng)建包:Javac–d.*.java2.包的引用將類組織成包的目的是為了更好地利用包中的類。引用不在同一個(gè)包中的其它(非)public類,可以使用下面幾種方法:(1)使用包名、類名前綴對(duì)于同一個(gè)包中的其他類,只需在要使用的屬性或方法名前加上類名作為前綴即可;對(duì)于其他包中的類,則需要在類名前綴的前面加上包名前綴。(2)加載需要使用的類在程序的開始部分利用import語句將需要使用的整個(gè)類加載到當(dāng)前程序中,這樣在程序中需要引用這個(gè)類的地方就不需要再使用包名作為前綴即可??梢灾苯永胕mport語句引入整個(gè)包。Importjava.awt.*;(4)CLASSPATH環(huán)境變量CLASSPATH類似于DOS操作系統(tǒng)中的PATH,它指明了所有缺省的類字節(jié)碼文件路徑。當(dāng)一個(gè)程序找不到它所需使用的其他類的.class文件時(shí),系統(tǒng)會(huì)自動(dòng)到CLASSPATH環(huán)境變量所指明的路徑中去尋找。6.3接口接口在有些資料上被稱為界面,英文名稱為interface。接口與包相似,也是用來組織應(yīng)用中的各類并調(diào)節(jié)它們的相互關(guān)系的一種結(jié)構(gòu)。接口是用來實(shí)現(xiàn)類間多重繼承功能的結(jié)構(gòu)。6.3.1接口的基本概念Java中的接口定義了若干的抽象方法和常量,形成一個(gè)屬性集合,該屬性集合通常代表了某一組功能的實(shí)現(xiàn),其主要作用是可以幫助我們實(shí)現(xiàn)類似于類的多重繼承的功能。多重繼承是指一個(gè)子類可以有一個(gè)以上的直接父類,該子類可以繼承它所有直接父類的成員。說明:Java中的接口中的屬性都是常量,接口中的方法都是沒有方法體的抽象方法。接口定義的僅僅是實(shí)現(xiàn)某一特定功能的一組功能的對(duì)外接口和規(guī)范。接口并沒有真正地實(shí)現(xiàn)這個(gè)功能,這個(gè)功能的真正實(shí)現(xiàn)是在“繼承”了這個(gè)接口的各個(gè)類中完成的,由這些類來具體定義接口中各抽象方法的方法體。因此,在Java中,通常把對(duì)接口功能的“繼承”稱為“實(shí)現(xiàn)”。6.3.2接口的聲明Java中聲明接口的語法如下:[public]interface接口名[extends父接口名列表]{//接口體

//常量域聲明[public][static][final]域類型域名=常量值;//抽象方法聲明[public][abstract][native]返回值方法名(參數(shù)列表)[throw異常列表];}接口實(shí)際上就是一種特殊的類;接口是由常量和抽象方法組成的特殊類。一個(gè)類只能有一個(gè)父類,但是可以同時(shí)實(shí)現(xiàn)若干個(gè)接口。用public修飾的接口是公共接口,可以被所有的類和接口使用,而沒有public修飾符的接口則只能被同一個(gè)包中的其他類和接口利用。接口也具有繼承性。定義一個(gè)接口時(shí)可以通過extends關(guān)鍵字聲明該新接口是某個(gè)已經(jīng)存在的父接口的派生接口,它將繼承父接口的所有屬性和方法。一個(gè)接口可以有一個(gè)以上的父接口,它們之間用逗號(hào)分隔,形成父接口列表。新接口將繼承所有父接口中的屬性和方法。接口體的聲明是定義接口的重要部分,接口體由兩部分組成,一部分是對(duì)接口中屬性的聲明,另一部分是對(duì)接口中方法的聲明。屬性都是用final修飾的常量方法都是用abstract修飾的抽象方法,在接口中只能給出這些抽象方法的方法名、返回值和參數(shù)列表,而不能定義方法體。接口中的所有屬性都必須是publicstaticfinal,這是系統(tǒng)默認(rèn)的規(guī)定,所以接口屬性也可以沒有任何修飾符,其效果完成相同。同樣,接口中的所有方法都必須是默認(rèn)的publicabstract,無論是否有修飾符顯示地限定它。例:publicinterfaceAwardable{finaldoublem_MaxAwardRate=0.1;//最高提成比例

finaldoublem_MinAwardRate=0.002;//最低提成比例

abstractdoublegetAwardRate();//獲得提成比例

abstractboolean

setAwardRate(double

newrate);//設(shè)置提成比例

abstractvoidcaculateAward();//計(jì)算提成數(shù)額

abstractdoublegetAward();//獲取提成數(shù)額}6.3.3接口的實(shí)現(xiàn)一個(gè)類要實(shí)現(xiàn)某個(gè)或某幾個(gè)接口時(shí),有如下的步驟和注意事項(xiàng):(1)在類的聲明部分,用implements關(guān)鍵字聲明該類將要實(shí)現(xiàn)哪些接口;(2)如果實(shí)現(xiàn)某接口的類不是abstract的抽象類,則在類的定義部分必須實(shí)現(xiàn)指定接口的所有抽象方法;(3)若實(shí)現(xiàn)某接口的類是abstract的抽象類,則它可以不實(shí)現(xiàn)該接口所有的方法。但是對(duì)于這個(gè)抽象類任何一個(gè)非抽象的子類而言,它們父類所實(shí)現(xiàn)的接口中的所有抽象方法都必須有實(shí)在的方法體,這些方法體可以來自抽象的父類,也可以來自子類自身,但是不允許存在未被實(shí)現(xiàn)的接口方法。主要體現(xiàn)了非抽象類中不能存在抽象方法的原則。(4)一個(gè)類在實(shí)現(xiàn)某接口的抽象方法時(shí),必須使用完全相同的方法頭。(5)接口的抽象方法,其訪問限制符都已指定是public,所以類在實(shí)現(xiàn)方法時(shí),必須顯示地使用public修飾符。6.4錯(cuò)誤、異常及其處理6.4.1編程中的錯(cuò)誤錯(cuò)誤是編程中不可避免和必須要處理的問題。一般來說錯(cuò)誤分為編譯錯(cuò)誤和運(yùn)行錯(cuò)誤兩種。1.編譯錯(cuò)誤編譯錯(cuò)誤是由于所編寫的程序存在的語法問題,未能通過由源代碼到目標(biāo)碼(在Java語言中是由源代碼到字節(jié)碼)的編譯過程而產(chǎn)生的,它是由語言的編譯系統(tǒng)負(fù)責(zé)檢測(cè)和報(bào)告。2.運(yùn)行錯(cuò)誤運(yùn)行錯(cuò)誤是在程序的運(yùn)行過程中產(chǎn)生的錯(cuò)誤。根據(jù)性質(zhì)不同,運(yùn)行錯(cuò)誤還可分為系統(tǒng)運(yùn)行錯(cuò)誤和邏輯運(yùn)行錯(cuò)誤。系統(tǒng)錯(cuò)誤是指程序在執(zhí)行過程中引發(fā)了操作系統(tǒng)的問題。邏輯運(yùn)行錯(cuò)誤是指程序不能實(shí)現(xiàn)編程人員的設(shè)計(jì)意圖和設(shè)計(jì)功能而產(chǎn)生的錯(cuò)誤。如何排除運(yùn)行錯(cuò)誤?排除運(yùn)行錯(cuò)誤,包括系統(tǒng)運(yùn)行錯(cuò)誤和邏輯運(yùn)行錯(cuò)誤,一個(gè)非常有效和常用的手段是使用開發(fā)環(huán)境所提供的單步運(yùn)行機(jī)制和設(shè)置斷點(diǎn)功能來分解程序運(yùn)行過程,使之在人為的控制下邊調(diào)試邊運(yùn)行。在調(diào)試過程中,調(diào)試者可以隨時(shí)檢查變量中保存的中間量,設(shè)置臨時(shí)環(huán)境,一步步地檢查程序的執(zhí)行過程,從而挖出隱藏的錯(cuò)誤。6.4.2異常與異常類異常(Exception),又稱為例外,是特殊的運(yùn)行錯(cuò)誤對(duì)象,對(duì)應(yīng)著Java語言特定的運(yùn)行錯(cuò)誤處理機(jī)制。Java中定義了很多異常類,每個(gè)異常類都代表了一種運(yùn)行錯(cuò)誤,類中包含了該運(yùn)行錯(cuò)誤的信息和處理錯(cuò)誤的方法等內(nèi)容。每當(dāng)Java程序運(yùn)行過程中發(fā)生一個(gè)可識(shí)別的運(yùn)行錯(cuò)誤時(shí),即該錯(cuò)誤有一個(gè)異常類與之相對(duì)應(yīng)時(shí),系統(tǒng)都會(huì)產(chǎn)生一個(gè)相應(yīng)的該異常類的對(duì)象,即產(chǎn)生一個(gè)異常。1.異常類結(jié)構(gòu)與組成Java的異常類是處理運(yùn)行時(shí)錯(cuò)誤的特殊類,每一種異常類對(duì)應(yīng)一種特定的運(yùn)行錯(cuò)誤。所有的Java異常類都是系統(tǒng)類庫中的Exception類的子類。Exception類Exception類有自己的方法和屬性,它的構(gòu)造函數(shù)為:publicException();publicException(Strings);第二個(gè)構(gòu)造函數(shù)可以接受字符串參數(shù)傳入的信息,該信息是對(duì)該例外所對(duì)應(yīng)的錯(cuò)誤的描述。常用方法包括:publicStringtoString();//返回描述當(dāng)前Exception類信息的字符串publicvoidprintStackTrace();//功能是完成一個(gè)打印操作,在當(dāng)前的標(biāo)準(zhǔn)輸出上打印輸出當(dāng)前例外對(duì)象的堆棧使用軌跡,也即程序先后調(diào)用執(zhí)行了哪些對(duì)象或類的哪些方法,使得運(yùn)行過程中產(chǎn)生了這個(gè)例外對(duì)象。2.系統(tǒng)定義的運(yùn)行異常Exception類有若干子類,每一個(gè)子類代表了一種特定的運(yùn)行時(shí)錯(cuò)誤。這些子類有些是系統(tǒng)事先定義好并包含在Java類庫中的,稱為系統(tǒng)定義的運(yùn)行異常。由于預(yù)先定義了相應(yīng)的異常,java程序即使產(chǎn)生一些致命的錯(cuò)誤,系統(tǒng)也會(huì)自動(dòng)產(chǎn)生一個(gè)對(duì)應(yīng)的異常對(duì)象來處理和控制這個(gè)錯(cuò)誤,避免其蔓延或產(chǎn)生更大的問題。3.用戶自定義的異常對(duì)于某個(gè)應(yīng)用所特有的運(yùn)行錯(cuò)誤,則需要編程人員根據(jù)程序的特殊邏輯在用戶程序里自己創(chuàng)建用戶自定義的異常類和異常對(duì)象。這種用戶自定義異常主要用來處理用戶程序中特定的邏輯運(yùn)行錯(cuò)誤。publicclassIllegalSalaryException

extendsException{//產(chǎn)生當(dāng)前錯(cuò)誤的Employee對(duì)象的引用privateEmployeem_ConcernedEmp;privatedoublem_IllegalSalary;//產(chǎn)生當(dāng)前錯(cuò)誤的非法的工資數(shù)額

IllegalSalaryException(){super("不合法的起薪:低于最低工資限額");//調(diào)用父類Exception的構(gòu)造函數(shù)

}

IllegalSalaryException(Employee

emp,double

iSal){//構(gòu)造函數(shù)

this();

m_ConcernedEmp=emp;//初始化兩個(gè)屬性

m_IllegalSalary=iSal;}

publicStringtoString(){Strings;if(m_ConcernedEmp!=null)s="為雇員提供非法工資:雇員號(hào)-"+m_ConcernedEmp.getEmpNo()+"非法工資數(shù)額-"+m_IllegalSalary+"合法的最低工資數(shù)額-"+Employee.getMinSalary();else s="給出的工資初始值不合理,不能創(chuàng)建Employee對(duì)象";returns;}}創(chuàng)建用戶自定義異常時(shí),一般需要完成如下的工作:(1)聲明一個(gè)新的異常類,使之以Exception類或其他某個(gè)已經(jīng)存在的系統(tǒng)異常類或用戶異常類為父類;(2)為新的異常類定義屬性和方法,或重載父類的屬性和方法,使這些屬性和方法能夠體現(xiàn)該類所對(duì)應(yīng)的錯(cuò)誤的信息。6.4.3異常的拋出Java程序在運(yùn)行時(shí)如果引發(fā)了一個(gè)可識(shí)別的錯(cuò)誤,就會(huì)產(chǎn)生一個(gè)與該錯(cuò)誤相對(duì)應(yīng)的異常類的對(duì)象,這個(gè)過程被稱為異常的拋出。1.系統(tǒng)自動(dòng)拋出異常所有的系統(tǒng)定義的運(yùn)行異常都可以由系統(tǒng)自動(dòng)拋出。例:publicclassTestSystemException{ publicstaticvoidmain(String[]args) {

inta=0,b=5;

System.out.println(b/a); }}2.語句拋出的異常用戶程序自定義的異常不可能依靠系統(tǒng)自動(dòng)拋出,而必須借助于throw語句來定義何種情況是產(chǎn)生了此種異常對(duì)應(yīng)的錯(cuò)誤,并應(yīng)該拋出這個(gè)異常類的新對(duì)象。格式為:修飾符返回類型方法名(參數(shù)列表)throws異常類名列表{…throw異常類名;…}使用throw語句拋出例外時(shí)應(yīng)注意如下

溫馨提示

  • 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. 人人文庫網(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)論