Java程序設(shè)計基礎(chǔ) 課件 第8章 內(nèi)嵌類與lambda表達式_第1頁
Java程序設(shè)計基礎(chǔ) 課件 第8章 內(nèi)嵌類與lambda表達式_第2頁
Java程序設(shè)計基礎(chǔ) 課件 第8章 內(nèi)嵌類與lambda表達式_第3頁
Java程序設(shè)計基礎(chǔ) 課件 第8章 內(nèi)嵌類與lambda表達式_第4頁
Java程序設(shè)計基礎(chǔ) 課件 第8章 內(nèi)嵌類與lambda表達式_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第8章內(nèi)嵌類與lambda表達式1教學(xué)目標(1) 理解內(nèi)嵌類概念(2) 掌握成員內(nèi)部類的定義和使用(3) 掌握局部內(nèi)部類的定義和使用(4) 掌握匿名內(nèi)部類的定義和使用(5) 掌握靜態(tài)內(nèi)嵌類的定義和使用(6) 掌握lambda表達式的語法,理解并能定義函數(shù)式接口(7) 理解lambda表達式的作用域,掌握lambda表達式如何訪問外部變量(8) 掌握lambda表達式靜態(tài)方法引用、實例方法引用、構(gòu)造方法引用(9) 掌握ArrayList的方法forEach()、removeIf()與lambda表達式的聯(lián)合使用(10)掌握Comparator接口的使用2內(nèi)容38.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口內(nèi)容48.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.1內(nèi)嵌類內(nèi)嵌類(nestedclass),是指定義在另一個類中的類。包含內(nèi)嵌類的外部類被稱為內(nèi)部類的外嵌類。使用內(nèi)嵌類的主要原因:內(nèi)嵌類可以對同一包中的其它類隱藏,增強了代碼的封裝性,使得代碼更加模塊化和可維護。內(nèi)嵌類可以直接訪問外嵌類的成員變量和方法,復(fù)用外嵌類的代碼,無需通過復(fù)雜的接口實現(xiàn)或繼承關(guān)系來實現(xiàn)代碼復(fù)用。58.1內(nèi)嵌類內(nèi)嵌類包括靜態(tài)內(nèi)嵌類:顯式使用static修飾的內(nèi)嵌類隱式靜態(tài)類:成員枚舉類、局部枚舉類、成員記錄類、局部記錄類、一個接口的成員類內(nèi)部類:非顯式、隱式靜態(tài)的內(nèi)嵌類實名內(nèi)部類匿名內(nèi)部類678-1內(nèi)嵌類可以分為

[填空1]

[填空2]

。作答填空題1分88-2關(guān)于內(nèi)嵌類的描述錯誤的是()內(nèi)嵌類可以對同一包的其他類隱藏內(nèi)嵌類可以增強代碼的封裝性內(nèi)嵌類不能實現(xiàn)代碼復(fù)用內(nèi)嵌類可訪問外嵌類的數(shù)據(jù)域和方法ABCD提交單選題1分內(nèi)容98.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口內(nèi)容108.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.1.1成員內(nèi)部類成員內(nèi)部類是最普通的內(nèi)部類,它的定義為位于另一個類的內(nèi)部。Java語言定義成員內(nèi)部類一般形式如下:修飾符1可以使用public或缺省(無修飾符)修飾符2可以是public、protected、private或缺省當內(nèi)部類被private修飾時,該內(nèi)部類在外嵌類的外部不可見當內(nèi)部類被public修飾時,該內(nèi)部類在外嵌類的外部可見成員內(nèi)部類也可以繼承父類、實現(xiàn)接口11[修飾符1]classOuterClass{//外嵌類//...[修飾符2]classNestedClass[extends…][implements…]{//成員內(nèi)部類//...}}8.1.1成員內(nèi)部類外嵌類和實名內(nèi)部類都會產(chǎn)生自己獨立的字節(jié)碼文件。對于實名內(nèi)部類,其字節(jié)碼文件的文件名為:外嵌類名$實名內(nèi)部類名.class。簡單示例:程序清單8-1CircleNestDemo.java程序清單8-1對應(yīng)的Java源文件只有一個:CircleNestDemo.java,產(chǎn)生的字節(jié)碼文件有兩個:CircleNestDemo.class,CircleNestDemo$Draw.class。128.1.1成員內(nèi)部類需要注意的是,當成員內(nèi)部類擁有和外嵌類同名的成員變量或者方法時,會發(fā)生隱藏現(xiàn)象。這時,在成員內(nèi)部類中,默認訪問的是成員內(nèi)部類的成員。如果要在成員內(nèi)部類中訪問外嵌類的同名成員,需要以下面的形式進行訪問:外嵌類名.this.成員變量外嵌類名.this.成員方法創(chuàng)建成員內(nèi)部類實例的一般語法形式如下:外嵌類類名.內(nèi)部類類名內(nèi)部類對象名=外嵌類實例名.new內(nèi)部類類名(參數(shù)列表);成員內(nèi)部類允許定義靜態(tài)方法,在外嵌類的外部被引用時,需使用“外嵌類名.內(nèi)部類名.靜態(tài)方法”進行調(diào)用。程序清單8-2展示了成員內(nèi)部類實例的創(chuàng)建、成員內(nèi)部類靜態(tài)方法的定義及其調(diào)用、同名成員的隱藏現(xiàn)象:InnerClassDemo1.java138.1.1成員內(nèi)部類雖然成員內(nèi)部類可以訪問外嵌類的所有成員,但是,反過來,外嵌類卻不能直接訪問成員內(nèi)部類的成員。如果要在外嵌類中訪問成員內(nèi)部類的成員,必須先創(chuàng)建一個成員內(nèi)部類的對象,再通過這個對象的引用來訪問成員內(nèi)部類的成員。示例:程序清單8-3CircleNestDemo2.java14158-3如果要在成員內(nèi)部類中訪問外嵌類的同名成員方法,需要以下面的形式進行訪問:

[填空1]

作答填空題1分168-4成員內(nèi)部類允許定義靜態(tài)方法,在外嵌類的外部被引用時,需使用“

[填空1]

”進行調(diào)用。作答填空題1分內(nèi)容178.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.1.2局部內(nèi)部類局部內(nèi)部類是指定義在外嵌類的方法里面或者一個語句塊作用域里面的類訪問權(quán)限僅限于方法內(nèi)或者該語句塊作用域內(nèi)與方法的局部變量一樣,不能用public、protected、private以及static、sealed修飾符修飾。對外部世界是完全隱藏的,體現(xiàn)了更好的封裝性。不僅能訪問外嵌類成員,還能訪問所在方法或所在語句塊作用域內(nèi)的局部變量。示例:程序清單8-4LocalInnerClassDemo.java18198-5局部內(nèi)部類是指定義在外嵌類的

[填空1]

里面或者一個

[填空2]

作用域里面的類。作答填空題2分內(nèi)容208.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.1.3匿名內(nèi)部類在使用局部內(nèi)部類的場景中,如果局部內(nèi)部類的名稱只被使用一次,僅用于創(chuàng)建這個局部內(nèi)部類的對象,那么可以對局部內(nèi)部類進行簡化,可以無需指定局部內(nèi)部類的類名。這樣的一個沒有名字的局部內(nèi)部類被稱為匿名內(nèi)部類。示例:程序清單8-5AnnonymousInnerClassDemo.java218.1.3匿名內(nèi)部類通常,匿名內(nèi)部類的語法形式如下:new父類型名稱(父類型構(gòu)造方法參數(shù)列表){

匿名內(nèi)部類的成員方法和成員數(shù)據(jù)域定義;}這里的父類型既可以是接口,也可以是一個類(通常是抽象類)。當父類型是接口時,父類型構(gòu)造方法參數(shù)列表為空,調(diào)用的構(gòu)造方法是Object(),語法形式可以簡化為:new接口名(){

數(shù)據(jù)域定義; 方法定義;}228.1.3匿名內(nèi)部類匿名內(nèi)部類還具有以下幾個特點:一個匿名內(nèi)部類沒有類名,而構(gòu)造方法的名稱必須與類名相同,因此,匿名內(nèi)部類沒有構(gòu)造方法定義。一個匿名內(nèi)部類必須實現(xiàn)父類型的所有抽象方法,因為匿名內(nèi)部類自身不能是抽象的。每個匿名內(nèi)部類都有自己對應(yīng)的字節(jié)碼文件,字節(jié)碼文件命名形式是:外嵌類類名$n.class,在美元符號$后的符號n表示從1開始編號的整數(shù)。如果一個外嵌類有多個匿名內(nèi)部類,那么這些匿名內(nèi)部類的文件名從數(shù)字1開始編號命名,即:外嵌類類名$1.class、外嵌類類名$2.class、外嵌類類名$3.class、…。23248-5每個匿名內(nèi)部類都有自己對應(yīng)的字節(jié)碼文件,字節(jié)碼文件命名形式是:

[填空1]

作答填空題1分258-6下面關(guān)于匿名內(nèi)部類的說法正確的是()匿名內(nèi)部類必須提供一個無參構(gòu)造方法匿名內(nèi)部類只能繼承一個類,不能實現(xiàn)接口匿名內(nèi)部類可以實現(xiàn)接口,但必須提供構(gòu)造方法匿名內(nèi)部類必須實現(xiàn)父類型的所有抽象方法ABCD提交單選題1分內(nèi)容268.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.1.4靜態(tài)內(nèi)嵌類用關(guān)鍵字static顯式修飾的內(nèi)嵌類是靜態(tài)內(nèi)嵌類,靜態(tài)內(nèi)嵌類沒有對外嵌類對象的引用。顯式聲明靜態(tài)內(nèi)嵌類的一般形式如下所示:[修飾符1]classOuterClass{//外嵌類

//...[修飾符2]staticclassNestedClass{//靜態(tài)內(nèi)嵌類

//...}}修飾符1可以使用public或缺?。o修飾符)修飾符2可以是public、protected、privated或缺省隱式聲明的靜態(tài)內(nèi)嵌類包括:成員枚舉類、局部枚舉類、成員記錄類、局部記錄類、一個接口的成員類278.1.4靜態(tài)內(nèi)嵌類靜態(tài)內(nèi)嵌類與成員內(nèi)部類不同,不再持有外嵌類的引用,即不能使用“外嵌類名.this”引用外嵌類的實例成員。靜態(tài)內(nèi)嵌類對象的創(chuàng)建語法形式如下:外嵌類名.靜態(tài)內(nèi)嵌類內(nèi)部類對象名=new外嵌類名.靜態(tài)內(nèi)嵌類();程序清單8-6StaticNestedClsDemo.Java28298-7隱式聲明的靜態(tài)內(nèi)嵌類包括()成員枚舉類局部內(nèi)部類局部記錄類匿名靜態(tài)內(nèi)部類ABCD提交多選題1分內(nèi)容308.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.2.1lambda表達式語法lambda表達式是JAVASE8提供的一種新特性,可以看做是一段可以傳遞的代碼。在Java語言中,lambda表達式還可以被稱為閉包或匿名函數(shù)。下面用lambda表達式改寫程序清單8-5的示例,說明lambda表達式如何替代匿名內(nèi)部類,如程序清單8-7所示。程序演示:LambdaDemo1.java函數(shù)式接口是一個不能使用關(guān)鍵字seal修飾、必須有且只有一個抽象方法(除了Object的public方法)的接口。函數(shù)式接口可以使用注解@FunctionalInterface進行修飾,其作用僅僅在于強迫Java編譯器對接口進行語法檢查,是否只定義了一個抽象方法,如果否,Java編譯器就會報錯。不使用注解@FunctionalInterface,也能正確運行。函數(shù)式接口也可以被成為單抽象方法(SingleAbstractMethod,SAM)接口。31328-8函數(shù)式接口可以使用注解

[填空1]

進行修飾。作答填空題1分8.2.1lambda表達式語法lambda表達式可以簡化函數(shù)式接口的實現(xiàn)338.2.1lambda表達式語法lambda表達式由三個部分組成:參數(shù)列表、箭頭、方法體,一般語法形式如下:(數(shù)據(jù)類型參數(shù)名稱)->{語句組}類型推斷:程序清單8-7第8行必須先指定apple對象的類型是EatMethod,這樣Java編譯器就可以推斷出賦值語句右邊的表達式返回的是一個實現(xiàn)了函數(shù)式接口EatMethod的匿名類對象。lambda表達式的參數(shù)列表既可以和函數(shù)式接口中抽象方法的參數(shù)列表完全一致,也可以省略參數(shù)列表中的數(shù)據(jù)類型,此時參數(shù)的數(shù)據(jù)類型由編譯器隱式推斷。當參數(shù)列表只有一個參數(shù)時,圓括號可以省略。當參數(shù)列表為空時,必須要使用一對圓括號。34358-9lambda表達式由三個部分組成:

[填空1]

、

[填空2]

、方法體作答填空題2分8.2.1lambda表達式語法lambda表達式的方法體如果只有一條語句,那么方法體部分的花括號可以省略。并且,如果這一條語句是return語句,可以省略關(guān)鍵字return。因此,程序清單8-7第8行可以進一步簡化為:EatMethodapple=()->eatInfo+":榨蘋果汁";程序清單8-7第8行-9行,可以簡化為如下一條語句:System.out.println(info(()->eatInfo+":榨蘋果汁"));此時,lambda表達式直接替換了方法的參數(shù),而且分號;是不需要的。由于方法info的形參類型確定為接口類型EatMethod,所以Java編譯器會推斷出這個lambda表達式是返回一個實現(xiàn)了函數(shù)式接口EatMethod的匿名類對象。368.2.1lambda表達式語法lambda表達式能用于簡化函數(shù)式接口的實現(xiàn),對于函數(shù)式接口的定義需要準確理解。函數(shù)式接口不僅要有一個抽象方法,而且該抽象方法不能是類Object的public方法37例,下面接口定義不是一個函數(shù)式接口:interfaceNonFunc{booleanequals(Objectobj);}因為方法equals()是類Object的public方法。接口NonFunc的子接口可以是函數(shù)式接口,只要這個子接口聲明了一個不是類Object成員的抽象方法,例如:interfaceFuncextendsNonFunc{intcompare(Stringo1,Stringo2);}8.2.1lambda表達式語法lambda表達式能用于簡化函數(shù)式接口的實現(xiàn),對于函數(shù)式接口的定義需要準確理解。函數(shù)式接口不僅要有一個抽象方法,而且該抽象方法不能是類Object的public方法38Java語言提供的有用接口java.util.Comparator<T>是一個函數(shù)式接口,定義如下:interfaceComparator<T>{booleanequals(Objectobj);//類Object的public方法intcompare(To1,To2);//不是類Object的public方法}接口Func是否函數(shù)式接口呢?interfaceFunc{intm();Objectclone();}接口Func不是函數(shù)式接口8.2.1lambda表達式語法展示lambda表達式帶有1個、2個參數(shù)的情況:程序清單8-8LambdaDemo2.javalambda表達式的省略規(guī)則如下:(1)lambda表達式參數(shù)列表中參數(shù)的數(shù)據(jù)類型可以省略,而且必須同時省略,不允許省略其中一部分參數(shù)的數(shù)據(jù)類型,而另一部分參數(shù)不省略。(2)在lambda表達式省略參數(shù)的數(shù)據(jù)類型之后,如果參數(shù)列表只有一個參數(shù)時,圓括號可以省略。其他情況下,圓括號不能省略。具體地,當參數(shù)列表為空時,不能省略圓括號;當參數(shù)列表中的參數(shù)個數(shù)不少于2個時,也不能省略圓括號。(3)當lambda表達式方法體中的語句只有一條時,可以省略花括號和分號。進一步,當這一條語句是return語句時,return也必須省略。39408-10當lambda表達式方法體中的語句只有一條時,可以省略

[填空1]

[填空2]

作答填空題2分8.2.1lambda表達式語法Java編譯器在解析一個lambda表達式時,等同于是從一個匿名內(nèi)部類創(chuàng)建一個匿名對象。通常,Java編譯器處理lambda表達式有三個步驟:①確定lambda表達式的數(shù)據(jù)類型;②確定參數(shù)的數(shù)據(jù)類型;③確定方法體語句。41428-11下列選項中符合lambda表達式語法的是()x->returnx+1x,y->x+yx->{x=x*2;x+1;} x->{x=x*2;returnx+1;}ABCD提交單選題1分內(nèi)容438.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.2.2lambda表達式作用域lambda表達式的體與其形成的嵌套塊具有相同的作用域。因此,在lambda表達式中聲明一個與其外部作用域同名的局部變量是不合法的。lambda表達式訪問外圍方法或類中的變量,有一個重要的限制:只能引用外部變量的值而不能改變外部變量的值。并且,如果在lambda表達式中引用了一個外部變量,這個外部變量也不能在外部改變。lambda表達式訪問外圍作用域的變量必須是最終變量(即常量)或事實最終(effectivefinal)變量。事實最終變量是指一個變量被初始化后就不再為其賦新值。44458-12lambda表達式訪問外圍作用域的變量必須是常量或

[填空1]

變量。(只填中文)作答填空題1分內(nèi)容468.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.2.3方法引用方法引用也稱為函數(shù)引用,是指在lambda表達式中引用一個已經(jīng)存在的方法,使其替代lambda表達式完成接口的實現(xiàn)。根據(jù)方法類型,可以分為:靜態(tài)方法引用、實例方法引用、構(gòu)造方法引用。靜態(tài)方法引用靜態(tài)方法引用的一般語法形式:類名::靜態(tài)方法名程序清單8-10給出了一個靜態(tài)方法引用的示例:ReferStaticMethod.java(1)靜態(tài)方法引用,只需要靜態(tài)方法名,不需要在方法名后加圓括號。(2)被引用的靜態(tài)方法的參數(shù)列表和返回值,與lambda表達式實現(xiàn)的接口中抽象方法的參數(shù)列表和返回值一致。被引用的靜態(tài)方法的方法體,與lambda表達式的方法體一致。478.2.3方法引用實例方法引用實例方法引用的一般語法形式:對象名::實例方法名示例:程序清單8-11ReferInstanceMethod.java(1)實例方法引用與靜態(tài)方法不同,需要使用對象名,對象名可以是匿名的。(2)實例方法引用,只需要實例方法名,不需要在方法名后加圓括號。(3)被引用的實例方法的參數(shù)列表和返回值,與lambda表達式實現(xiàn)的接口中抽象方法的參數(shù)列表和返回值一致。被引用的實例方法的方法體,與lambda表達式的方法體一致488.2.3方法引用構(gòu)造方法引用構(gòu)造方法引用的一般語法形式:類名::new示例:程序清單8-12ReferConstructor.java49508-13根據(jù)方法引用的方法類型,可以分為

[填空1]

引用、

[填空2]

引用、

[填空3]

引用。作答填空題1.5分內(nèi)容518.1內(nèi)嵌類8.1.1成員內(nèi)部類8.1.2局部內(nèi)部類8.1.3匿名內(nèi)部類8.2.2

lambda表達式作用域8.2.3方法引用8.2.4lambda表達式與ArrayList8.1.4靜態(tài)內(nèi)嵌類8.2lambda表達式8.2.1lambda表達式語法8.2.5Comparator接口8.2.4lambda表達式與ArrayListArrayList中有兩個方法可以使用lambda表達式,這兩個方法是:forEach()、removeIf。(1)publicvoidforEach(Consumer<?superE>action)該方法可對當前列表的每個元素執(zhí)行給定的操作,直到處理完所有元素或該操作引發(fā)異常為止。如果指定了迭代順序,則操作將按迭代順序執(zhí)行。操作引發(fā)的異常會中繼到調(diào)用方。(2)publicbooleanremoveIf(Predicate<?superE>filter)該方法刪除當前列表中滿足給定謂詞(即某種條件)的所有元素。迭代期間或謂詞引發(fā)的錯誤或運行時異常會中繼到調(diào)用方。示例:程序清單8-13ListWithLambda.java528.2.4lambda表達式與ArrayList補充:Consumer接口是一個函數(shù)式接口,它定義了一個接受單個參數(shù)并且不返回結(jié)果的操作。Consumer接口包含一個抽象方法voidaccept(Tt),該方法接受一個參數(shù),表示要執(zhí)行的操作。Consumer接口通常用于表示一些需要對輸入進行處理但不產(chǎn)生返回值的操作。它可以被用于各種場景,例如集合操作、事件處理等。Predicate接口是一個函數(shù)式接口,用于表示一個斷言(predicate),即接受一個參數(shù)并返回一個布爾值的操作。它定義了一個名為test的抽象方法,該方法接受一個參數(shù)并返回一個布爾值,用于表示對給定輸入的條件判斷。Predicate接口通常用于在函數(shù)式編程中進行條件過濾或測試。它提供了一種方便的方式來定義和組合條件,以便對集合元素、對象或任何其他類型的數(shù)據(jù)進行過濾或測試。53548-14成績列表對象scoreList存儲了一個班的Java課程成績,請使用removeIf方法篩選出不及格的成績:

[填空

溫馨提示

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

評論

0/150

提交評論