《java語(yǔ)言程序設(shè)計(jì)》第5章.ppt_第1頁(yè)
《java語(yǔ)言程序設(shè)計(jì)》第5章.ppt_第2頁(yè)
《java語(yǔ)言程序設(shè)計(jì)》第5章.ppt_第3頁(yè)
《java語(yǔ)言程序設(shè)計(jì)》第5章.ppt_第4頁(yè)
《java語(yǔ)言程序設(shè)計(jì)》第5章.ppt_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第5章 接口與多態(tài),Programming in JAVA,2,目錄,5.1 接口 5.2 塑型 5.3 多態(tài)的概念 5.4 多態(tài)的應(yīng)用 5.5 構(gòu)造方法與多態(tài) 5.6 內(nèi)部類(lèi) 5.7 本章小結(jié),3,5.1 接口,接口 與抽象類(lèi)一樣定義多個(gè)類(lèi)的共同屬性與方法. 接口中的方法都是抽象方法,僅給出方法的聲明,不給出具體實(shí)現(xiàn)。具體實(shí)現(xiàn)由其實(shí)現(xiàn)類(lèi)(對(duì)于抽象類(lèi)來(lái)說(shuō)是子類(lèi))來(lái)完成。 接口中的屬性必須為常量,前面為final修飾符,4,接口的語(yǔ)法 聲明格式為 interface 接口名稱(chēng) /屬性常量 /抽象方法 ,5.1.1 接口的聲明,接口,5,聲明一個(gè)接口Shape2D,實(shí)現(xiàn)類(lèi)為Circle和Recta

2、ngle 把計(jì)算面積的方法聲明在接口里 pi值是常量,把它聲明在接口的數(shù)據(jù)成員里 interface Shape2D /聲明Shape2D接口 final double pi=3.14; /數(shù)據(jù)成員一定要初始化 public abstract double area();/抽象方法 在接口的聲明中,允許省略一些關(guān)鍵字,也可聲明如下(,省略抽象) interface Shape2D double pi=3.14; /省略常量的final修飾 double area(); /省略抽象方法的public abstract修飾 ,5.1.1 接口的聲明例5_2,接口,6,5.1.2 實(shí)現(xiàn)接口,接口的實(shí)

3、現(xiàn) 不能使用new直接創(chuàng)建接口的對(duì)象。 其它類(lèi)使用implements關(guān)鍵字實(shí)現(xiàn)接口,本質(zhì)是實(shí)現(xiàn)接口的抽象方法。 語(yǔ)法如下 public class 類(lèi)名稱(chēng) implements 接口名 抽象方法頭部 方法的具體實(shí)現(xiàn) ,接口,7,5.1.2 實(shí)現(xiàn)接口 例5_4,class Circle implements Shape2D double radius; public Circle(double r) radius=r; public double area() return (pi * radius * radius); ,class Rectangle implements Shape2D

4、int width,height; public Rectangle(int w,int h) width=w; height=h; public double area() return (width * height); ,聲明Circle與Rectangle兩個(gè)類(lèi)實(shí)現(xiàn)Shape2D接口,接口,8,測(cè)試類(lèi) public class InterfaceTester public static void main(String args) Rectangle rect=new Rectangle(5,6); System.out.println(Area of rect = + rect.ar

5、ea(); Circle cir=new Circle(2.0); System.out.println(Area of cir = + cir.area(); 運(yùn)行結(jié)果 Area of rect = 30.0 Area of cir = 12.56,5.1.2 實(shí)現(xiàn)接口 例5_4運(yùn)行結(jié)果,接口,9,聲明接口類(lèi)型的變量,并用它來(lái)訪問(wèn)對(duì)象 public class VariableTester public static void main(String args) Shape2D var1,var2; var1=new Rectangle(5,6); /矩形對(duì)象自動(dòng)轉(zhuǎn)化為接口對(duì)象 System

6、.out.println(Area of var1 = + var1.area(); var2=new Circle(2.0);/圓對(duì)象自動(dòng)轉(zhuǎn)化為接口對(duì)象 System.out.println(Area of var2 = + var2.area(); 輸出結(jié)果 Area of var1 = 30.0 Area of var2 = 12.56,5.1.2 實(shí)現(xiàn)接口 例5_5,接口,10,5.1.3 接口的作用,接口的作用 封裝相關(guān)或不相關(guān)類(lèi)之間的共同屬性和方法。 實(shí)現(xiàn)多繼承。,接口,11,保險(xiǎn)公司的例子(不相關(guān)類(lèi)) 具有車(chē)輛保險(xiǎn)、人員保險(xiǎn)、公司保險(xiǎn)等多種保險(xiǎn)業(yè)務(wù),在對(duì)外提供服務(wù)方面具有相似性,

7、如都需要計(jì)算保險(xiǎn)費(fèi)(premium)等,因此可聲明一個(gè)Insurable 接口 在UML圖中,實(shí)現(xiàn)接口用帶有空三角形的虛線表示,5.1.3 接口的作用例5_1,接口,12,5.1.3 接口的作用-多重繼承,多重繼承 一個(gè)類(lèi)只能有一個(gè)父類(lèi),但允許一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,通過(guò)這種機(jī)制可實(shí)現(xiàn)多重繼承。 一個(gè)類(lèi)實(shí)現(xiàn)多個(gè)接口的語(yǔ)法如下 類(lèi)修飾符 class 類(lèi)名稱(chēng) implements 接口1,接口2, ,接口,13,聲明Circle類(lèi)實(shí)現(xiàn)接口Shape2D和Color Shape2D具有pi與area()方法,用來(lái)計(jì)算面積 Color則具有setColor方法,可用來(lái)賦值顏色 通過(guò)實(shí)現(xiàn)這兩個(gè)接口,Ci

8、rcle類(lèi)得以同時(shí)擁有這兩個(gè)接口的成員,達(dá)到了多重繼承的目的 interface Shape2D /聲明Shape2D接口 final double pi=3.14; /數(shù)據(jù)成員一定要初始化 public abstract double area(); /抽象方法 interface Color void setColor(String str); /抽象方法 ,5.1.3 接口的作用-多重繼承 例5_6,接口,14,class Circle implements Shape2D,Color / 實(shí)現(xiàn)Circle類(lèi) double radius; String color; public Cir

9、cle(double r) /構(gòu)造方法 radius=r; public double area() /定義area()的處理方式 return (pi*radius*radius); public void setColor(String str) /定義setColor()的處理方式 color=str; System.out.println(color=+color); ,接口,5.1.3 接口的作用-多重繼承 例5_6,15,測(cè)試類(lèi) public class MultiInterfaceTester public static void main(String args) Circle

10、 cir; cir=new Circle(2.0); cir.setColor(blue); System.out.println(Area = + cir.area(); 輸出結(jié)果 color=blue Area = 12.56,接口,5.1.3 接口的作用-多重繼承例5_6運(yùn)行結(jié)果,16,5.1.4 接口的繼承(擴(kuò)展),接口的繼承 子接口繼承父接口。 接口繼承的語(yǔ)法,支持多重繼承 interface 子接口extends 父接口1,父接口2, 實(shí)現(xiàn)接口的類(lèi)也必須實(shí)現(xiàn)此接口的父接口,接口,17,Shape是父接口,Shape2D與Shape3D是其子接口。Circle類(lèi)及Rectangle類(lèi)

11、實(shí)現(xiàn)接口Shape2D,而B(niǎo)ox類(lèi)及Sphere類(lèi)實(shí)現(xiàn)接口Shape3D,5.1.4 接口的擴(kuò)展 例5_7,接口,18,部分代碼如下 / 聲明Shape接口 interface Shape double pi=3.14; void setColor(String str); /聲明Shape2D接口擴(kuò)展了Shape接口 interface Shape2D extends Shape double area(); ,5.1.4 接口的擴(kuò)展 例5_7,接口,19,class Circle implements Shape2D double radius; String color; public

12、Circle(double r) radius=r; public double area() return (pi*radius*radius); public void setColor(String str) color=str; System.out.println(color=+color); public class ExtendsInterfaceTester /測(cè)試類(lèi) public static void main(String args) Circle cir; cir=new Circle(2.0); cir.setColor(blue); System.out.print

13、ln(Area = + cir.area(); ,5.1.4 接口的擴(kuò)展 例5_7,接口,20,運(yùn)行結(jié)果 color=blue Area = 12.56 說(shuō)明 首先聲明了父接口Shape,然后聲明其子接口Shape2D 之后聲明類(lèi)Circle實(shí)現(xiàn)Shape2D子接口,因而在此類(lèi)內(nèi)必須明確定義setColor()與area()方法的處理方式 最后在主類(lèi)中我們聲明了Circle類(lèi)型的變量cir并創(chuàng)建新的對(duì)象,最后通過(guò)cir對(duì)象調(diào)用setColor()與area()方法,5.1.4 接口的擴(kuò)展 例5_7運(yùn)行結(jié)果,接口,21,5.2 塑型,塑型(type-casting) 又稱(chēng)為類(lèi)型轉(zhuǎn)換 方式 隱式(

14、自動(dòng))的類(lèi)型轉(zhuǎn)換 顯式(強(qiáng)制)的類(lèi)型轉(zhuǎn)換,22,5.2.1 塑型的概念,塑型的對(duì)象包括 基本數(shù)據(jù)類(lèi)型 將值從一種形式轉(zhuǎn)換成另一種形式 對(duì)象 只能被塑型為 父類(lèi)類(lèi)型 對(duì)象所屬的類(lèi)實(shí)現(xiàn)的接口 被塑型為父類(lèi)或接口后,再被塑型回其本身,塑型,23,Manager對(duì)象 可以被塑型為Employee、Person、Object或Insurable, 不能被塑型為Customer、Company或Car,5.2.1 塑型的概念 一個(gè)例子,塑型,24,基本數(shù)據(jù)類(lèi)型 相容類(lèi)型之間存儲(chǔ)容量低的自動(dòng)向存儲(chǔ)容量高的類(lèi)型轉(zhuǎn)換 對(duì)象 被塑型成父類(lèi) Employee emp; emp = new Manager(); /將

15、Manage對(duì)象塑型為Employee對(duì)象 被塑型為所實(shí)現(xiàn)的接口類(lèi)型 Car jetta = new Car(); Insurable item = jetta;,5.2.1 塑型的概念 隱式(自動(dòng))的類(lèi)型轉(zhuǎn)換,塑型,25,5.2.1 塑型的概念 顯式(強(qiáng)制)的類(lèi)型轉(zhuǎn)換,基本數(shù)據(jù)類(lèi)型 (int)871.34354; / 結(jié)果為 871 (char)65; / 結(jié)果為A (long)453; / 結(jié)果為453L 對(duì)象(還原功能) Employee emp; Manager man; emp = new Manager(); man = (Manager)emp; /將emp強(qiáng)制塑型為本來(lái)的類(lèi)型,

16、塑型,26,5.2.2 塑型的應(yīng)用,塑型應(yīng)用的場(chǎng)合包括 賦值轉(zhuǎn)換 賦值號(hào)右邊的表達(dá)式類(lèi)型或?qū)ο筠D(zhuǎn)換為左邊的類(lèi)型 方法調(diào)用轉(zhuǎn)換 實(shí)參的類(lèi)型轉(zhuǎn)換為形參的類(lèi)型 算數(shù)表達(dá)式轉(zhuǎn)換 算數(shù)混合運(yùn)算時(shí),不同類(lèi)型的項(xiàng)轉(zhuǎn)換為相同的類(lèi)型再進(jìn)行運(yùn)算 字符串轉(zhuǎn)換 字符串連接運(yùn)算時(shí),如果一個(gè)操作數(shù)為字符串,一個(gè)操作數(shù)為數(shù)值型,則會(huì)自動(dòng)將數(shù)值型轉(zhuǎn)換為字符串,塑型,27,當(dāng)一個(gè)類(lèi)對(duì)象被塑型為其父類(lèi)后,它提供的方法會(huì)減少 當(dāng)Manager對(duì)象被塑型為Employee之后,它只能接收getName()及getEmployeeNumber()方法,不能接收getSalary()方法 將其塑型為本來(lái)的類(lèi)型后,又能接收getSalar

17、y()方法了,5.2.2 塑型的應(yīng)用,塑型,28,5.2.3 方法的查找,如果在塑型前和塑型后的類(lèi)中都提供了相同的方法,如果將此方法發(fā)送給塑型后的對(duì)象,那么系統(tǒng)將會(huì)調(diào)用哪一個(gè)類(lèi)中的方法? 實(shí)例方法的查找 類(lèi)方法的查找,塑型,29,從對(duì)象創(chuàng)建時(shí)的類(lèi)開(kāi)始,沿類(lèi)層次向上查找,Manager man = new Manager(); Employee emp1 = new Employee(); Employee emp2 = (Employee)man; putePay(); / 調(diào)用Employee類(lèi)中的computePay()方法 putePay(); / 調(diào)用Manager類(lèi)中的compute

18、Pay()方法 putePay(); / 調(diào)用Manager類(lèi)中的computePay()方法,5.2.3 方法的查找 實(shí)例方法的查找,塑型,30,總是在引用變量聲明時(shí)所屬的類(lèi)中進(jìn)行查找,Manager man = new Manager(); Employee emp1 = new Employee(); Employee emp2 = (Employee)man; man.expenseAllowance(); /in Manager emp1.expenseAllowance(); /in Employee emp2.expenseAllowance(); /in Employee!,5

19、.2.3 方法的查找 類(lèi)方法的查找,塑型,31,5.3 多態(tài)的概念,多態(tài)(相同的方法,不同的實(shí)現(xiàn))。 一個(gè)類(lèi)中方法的重載。 (例如:一個(gè)類(lèi)中多個(gè)構(gòu)造方法。) 多個(gè)子類(lèi)對(duì)父類(lèi)方法重寫(xiě)(draw). 執(zhí)行時(shí),子類(lèi)對(duì)象c向上塑性為父類(lèi)的對(duì)象f。父類(lèi)對(duì)象調(diào)用重寫(xiě)方法即f.draw,實(shí)際上調(diào)用的是子類(lèi)的重寫(xiě)方法,相當(dāng)于c.draw.,32,5.3 多態(tài)的概念 一個(gè)例子,多態(tài)的概念,Shape s = new Circle(); /圓向上塑性為圖形 s.draw(); /調(diào)用圓的畫(huà)法 s=new Square();/正方形向上塑性為圖形 s.draw(); /調(diào)用正方形的畫(huà)法,33,5.3.1多態(tài)的實(shí)現(xiàn)技

20、術(shù) -動(dòng)態(tài)綁定,動(dòng)態(tài)綁定 運(yùn)行時(shí),將方法的調(diào)用同定義該方法的類(lèi)連接到一起。 Shape s = new Circle(); /圓向上塑性為圖形 s.draw(); /調(diào)用圓的畫(huà)法 s=new Square();/正方形向上塑性為圖形 s.draw(); /調(diào)用正方形的畫(huà)法 編譯時(shí),無(wú)法確定draw方法與誰(shuí)綁定,運(yùn)行好,通過(guò)new 創(chuàng)建對(duì)象,實(shí)現(xiàn)動(dòng)態(tài)綁定。,多態(tài)的概念,34,仍以繪圖為例,所有類(lèi)都放在binding包中 基類(lèi)Shape建立了一個(gè)通用接口 class Shape void draw() void erase() 派生類(lèi)覆蓋了draw方法,為每種特殊的幾何形狀都提供獨(dú)一無(wú)二的行為 c

21、lass Circle extends Shape void draw() System.out.println(Circle.draw(); void erase() System.out.println(Circle.erase(); ,5.3.2 動(dòng)態(tài)綁定 例5_8,多態(tài)的概念,35,class Square extends Shape void draw() System.out.println(Square.draw(); void erase() System.out.println(Square.erase(); class Triangle extends Shape void

22、 draw() System.out.println(Triangle.draw(); void erase() System.out.println(Triangle.erase(); ,5.3.2 動(dòng)態(tài)綁定 例5_8,多態(tài)的概念,36,對(duì)動(dòng)態(tài)綁定進(jìn)行測(cè)試如下 public class BindingTester public static void main(String args) Shape s = new Shape(); int n; n = (int)(Math.random() * 3); switch(n) case 0: s = new Circle(); break; c

23、ase 1: s = new Square(); break; case 2: s = new Triangle(); s.draw(); ,5.3.2 動(dòng)態(tài)綁定 例5_8,多態(tài)的概念,37,運(yùn)行結(jié)果 Square.draw() 說(shuō)明 編譯時(shí)無(wú)法知道s數(shù)組元素的具體類(lèi)型,運(yùn)行時(shí)才能確定類(lèi)型,所以是動(dòng)態(tài)綁定 在主方法的循環(huán)體中,每次隨機(jī)生成指向一個(gè)Circle、Square或者Triangle的引用,5.3.2 動(dòng)態(tài)綁定 例5_8運(yùn)行結(jié)果,多態(tài)的概念,38,5.4 多態(tài)的應(yīng)用,多態(tài)的應(yīng)用 技術(shù)基礎(chǔ) 向上塑型技術(shù):一個(gè)父類(lèi)的引用變量可以指向不同的子類(lèi)對(duì)象 動(dòng)態(tài)綁定技術(shù):運(yùn)行時(shí)根據(jù)父類(lèi)引用變量所指對(duì)

24、象的實(shí)際類(lèi)型執(zhí)行相應(yīng)的子類(lèi)方法,從而實(shí)現(xiàn)多態(tài)性,多態(tài)的概念,39,聲明一個(gè)抽象類(lèi)Driver及兩個(gè)子類(lèi)FemaleDriver及MaleDriver 在Diver類(lèi)中聲明了抽象方法drives,在兩個(gè)子類(lèi)中對(duì)這個(gè)方法進(jìn)行了重寫(xiě) public abstract class Driver public Driver( ) public abstract void drives( ); ,5.4 多態(tài)的應(yīng)用(續(xù))例5_9,多態(tài)的概念,40,public class FemaleDriver extends Driver public FemaleDriver( ) public void drive

25、s( ) System.out.println(A Female driver drives a vehicle.); public class MaleDriver extends Driver public MaleDriver( ) public void drives( ) System.out.println(A male driver drives a vehicle.); ,5.4 多態(tài)的應(yīng)用(續(xù))例5_9,多態(tài)的概念,41,public class Test1 static public void main(String args) Driver a = new FemaleD

26、river( ); Driver b = new MaleDriver( ); a.drives( ); b.drives( ); 運(yùn)行結(jié)果 A Female driver drives a vehicle. A male driver drives a vehicle.,5.4 多態(tài)的應(yīng)用(續(xù))例5_9,多態(tài)的概念,42,所有類(lèi)都放在drive包中 試想有不同種類(lèi)的交通工具(vehicle),如公共汽車(chē)(bus)及小汽車(chē)(car),由此可以聲明一個(gè)抽象類(lèi)Vehicle及兩個(gè)子類(lèi)Bus及Car 對(duì)前面的drives方法進(jìn)行改進(jìn),使其接收一個(gè)Vehicle類(lèi)的參數(shù),當(dāng)不同類(lèi)型的交通工具被傳送到此

27、方法時(shí),可以輸出具體的交通工具,5.4 多態(tài)的應(yīng)用(續(xù))例5_9改進(jìn),多態(tài)的概念,43,測(cè)試代碼可改寫(xiě)如下: public class DriverTest static public void main(String args) Driver a = new FemaleDriver( ); Driver b = new MaleDriver( ); Vehicle x = new Car( ); Vehicle y = new Bus( ); a.drives(x); b.drives(y); 并希望輸出下面的結(jié)果 A female driver drives a Car. A male

28、driver drives a bus.,5.4 多態(tài)的應(yīng)用(續(xù))例5_9改進(jìn),多態(tài)的概念,44,Vehicle及其子類(lèi)聲明如下 public abstract class Vehicle private String type; public Vehicle( ) public Vehicle(String s) type = s; public abstract void drivedByFemaleDriver(); public abstract void drivedByMaleDriver(); ,5.4 多態(tài)的應(yīng)用(續(xù))例5_9改進(jìn),多態(tài)的概念,45,public class B

29、us extends Vehicle public Bus( ) public void drivedByFemaleDriver() System.out.println(A female driver drives a bus.); public void drivedByMaleDriver() System.out.println(A male driver drives a bus.); public class Car extends Vehicle public Car( ) public void drivedByFemaleDriver() System.out.printl

30、n(A Female driver drives a car.); public void drivedByMaleDriver() System.out.println(A Male driver drives a car.); ,5.4 多態(tài)的應(yīng)用(續(xù))例5_9改進(jìn),多態(tài)的概念,46,對(duì)FemaleDriver及MaleDriver類(lèi)中的drives方法進(jìn)行改進(jìn),在drives方法的定義體中不直接輸出結(jié)果,而是調(diào)用Bus及Car類(lèi)中的相應(yīng)方法 public abstract class Driver public Driver() public abstract void drives(V

31、ehicle v ); public class FemaleDriver extends Driver public FemaleDriver( ) public void drives(Vehicle v) v.drivedByFemaleDriver(); public class MaleDriver extends Driver public MaleDriver( ) public void drives(Vehicle v) v.drivedByMaleDriver(); ,5.4 多態(tài)的應(yīng)用(續(xù))例5_9改進(jìn),多態(tài)的概念,47,運(yùn)行結(jié)果 A Female driver driv

32、es a car. A male driver drives a bus. 說(shuō)明 這種技術(shù)稱(chēng)為二次分發(fā)(“double dispatching”),即對(duì)輸出消息的請(qǐng)求被分發(fā)兩次 首先根據(jù)駕駛員的類(lèi)型被發(fā)送給一個(gè)類(lèi) 之后根據(jù)交通工具的類(lèi)型被發(fā)送給另一個(gè)類(lèi),5.4 多態(tài)的應(yīng)用(續(xù)) 例5_9改進(jìn)運(yùn)行結(jié)果,多態(tài)的概念,48,5.5 構(gòu)造方法與多態(tài),構(gòu)造方法與多態(tài) 構(gòu)造方法并不具有多態(tài)性,但仍然非常有必要理解構(gòu)造方法如何在復(fù)雜的分級(jí)結(jié)構(gòu)中隨同多態(tài)性一同使用的情況,49,構(gòu)造方法的執(zhí)行順序 執(zhí)行基類(lèi)的構(gòu)造方法,基類(lèi)成員變量初始化。 執(zhí)行派生構(gòu)造方法,派生類(lèi)成員變量初始化。,5.5.1 構(gòu)造方法的執(zhí)行順序

33、,構(gòu)造方法與多態(tài),50,構(gòu)建一個(gè)點(diǎn)類(lèi)Point,一個(gè)球類(lèi)Ball,一個(gè)運(yùn)動(dòng)的球類(lèi)MovingBall繼承自Ball public class Point private double x; private double y; public Point ( ) public Point(double x1, double y1) x = x1; y = y1; public String toString( ) return “x軸坐標(biāo)為”+x+”y軸坐標(biāo)為”+y; ,5.5.1 構(gòu)造方法的執(zhí)行順序(續(xù)) 例5_10,構(gòu)造方法與多態(tài),51,public class Ball private Po

34、int center; /中心點(diǎn) private double radius; /半徑 private String colour; /顏色 public Ball( ) public Ball(double x1, double y1, double r) center = new Point(x1, y1); /調(diào)用Point中的構(gòu)造方法 radius = r; public Ball(double x1, double y1, double r, String c) this(x1, y1, r); / 調(diào)用三個(gè)參數(shù)的構(gòu)造方法 colour = c; public String toString( ) return “球中心點(diǎn)”+center.toString()+”,半徑為”+r+”,顏色 為”+colour; ,5.5.1 構(gòu)造方法的執(zhí)行順序(續(xù)) 例5_10,構(gòu)造方法與多態(tài),52,public class MovingBall extends Ball private double sp

溫馨提示

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