版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
011第7章面向?qū)ο?2030405060708097.1面向?qū)ο蟮幕A(chǔ)7.2類7.3修飾符7.4對象7.5變量7.6方法7.7抽象類和抽象方法7.8軟件包7.9思考和練習(xí)7.1.1計算機編程語言的發(fā)展階段(1)機器語言機器語言是計算機能直接運行的語言,就是二進制語言,實際上就是機器指令組成的語言。機器語言執(zhí)行效率最高,但是使用機器語言編寫程序的話就非常繁瑣、難于理解,維護非常困難。(2)匯編語言而匯編語言則介于高級語言和機器語言之間,它使用了一些容易被人讀懂的助記符號,,是符號化的機器語言。匯編語言應(yīng)屬于低級語言,雖然需要編譯,但是執(zhí)行起來和機器語言沒有多大的區(qū)別,但是程序員容易理解,可讀性強,雖然執(zhí)行效率較機器語言低一些,但是容易理解和編程。但是,與自然語言比較來說,還是比較難于理解,不容易實現(xiàn)復(fù)雜的編程。7.1面向?qū)ο蟮幕A(chǔ)介紹Java,就免不了要介紹面向?qū)ο蟮募夹g(shù)。使用面向?qū)ο蟮恼Z言很多,包括C++、C#、PHP、Delphi,等等。要熟悉面向?qū)ο蟮乃枷?,首先要了解類和對象?(3)面向過程的高級語言高級語言詳細來分,可分解成面向過程的高級語言和面向?qū)ο蟮母呒壵Z言。最初開始是面向過程的高級語言。它屏蔽了機器語言的細節(jié),提高了編程語言的識別能力,程序中采用了一些復(fù)雜的命令和容易理解的執(zhí)行語句,具有移植性好、容易理解、易于編程和普及度高的特點。(4)面向?qū)ο蟮母呒壵Z言面向?qū)ο蟮某绦蛘Z言是目前最高級的程序設(shè)計語言。面向?qū)ο蟮某绦蛘Z言直接描述客觀事物及其它們之間的聯(lián)系,將客觀事物看作是屬性和方法的統(tǒng)一,提出了類和對象的概念,Java語言就是典型的面向?qū)ο蟮母呒壋绦蛟O(shè)計語言。7.1面向?qū)ο蟮幕A(chǔ)7.1.2面向?qū)ο缶幊陶Z言的重要特性(1)封裝性所謂封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信任的類或者對象操作,對不可信任的類或者對象進行信息隱藏。(2)繼承性所謂繼承是指可以讓某個類型的對象獲得另一個類型的對象的屬性和方法。它支持按級分類的概念。(3)多態(tài)性所謂多態(tài)就是指一個類實例的相同方法在不同情形有不同表現(xiàn)形式。多態(tài)機制使具有不同內(nèi)部結(jié)構(gòu)的對象可以共享相同的外部接口。7.1面向?qū)ο蟮幕A(chǔ)57.1面向?qū)ο蟮幕A(chǔ)7.1.3面向?qū)ο缶幊陶Z言的基本原則面向?qū)ο蟮某绦蛘Z言與有五大基本原則
:(1)單一職責(zé)原則SRP(Single
Responsibility
Principle)是指一個類的功能要單一,不能包羅萬象。如同一個人一樣,分配的工作不能太多,否則一天到晚雖然忙忙碌碌的,但效率卻不高。(2)開放封閉原則OCP(Open-Close
Principle)
一個模塊在擴展性方面應(yīng)該是開放的,而在更改性方面應(yīng)該是封閉的。(3)里式代換原則
LSP(the
Liskov-Substitution
Principle)子類應(yīng)當可以替換父類并出現(xiàn)在父類能夠出現(xiàn)的任何地方。(4)依賴原則
DIP(the
Dependency
Inversion
Principle)下層依賴上層,具體依賴抽象。(5)接口分離原則
ISP(the
Interface
Segregation
Principle)
模塊間要通過抽象接口隔離開,而不是通過具體的類強耦合起來。7.1.4程序設(shè)計語言的結(jié)構(gòu)(1)面向過程的程序設(shè)計在面向過程程序設(shè)計中,問題被看作一系列需要完成的任務(wù),函數(shù)則用于完成這些任務(wù),解決問題的焦點集中于函數(shù)。面向過程程序設(shè)計語言的特點是:具有嚴格的語法面向過程程序設(shè)計語言與計算機硬件結(jié)構(gòu)無關(guān)面向過程程序設(shè)計語言語句接近自然表達方式面向過程程序設(shè)計語言提供大量函數(shù)面向過程程序設(shè)計語言適合模塊化設(shè)計面向過程程序設(shè)計語言不同硬件結(jié)構(gòu)對應(yīng)不同的編譯器面向過程語言設(shè)計問題解決過程中的步驟7.1面向?qū)ο蟮幕A(chǔ)77.1面向?qū)ο蟮幕A(chǔ)(2)面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟪绦蛟O(shè)計(Object-orientedprogramming,OOP)是一種程序設(shè)計范型,同時也是一種程序開發(fā)的方法。對象指的是類的實例。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性。
當我們提到面向?qū)ο蟮臅r候,它不僅指一種程序設(shè)計方法。更多意義上是一種程序開發(fā)方式。在這一方面,我們必須了解更多關(guān)于面向?qū)ο笙到y(tǒng)分析和面向?qū)ο笤O(shè)計(ObjectOrientedDesign,簡稱OOD)方面的知識。7.2.1類在Java中,類的定義如下所示:[修飾符]class類名{
屬性定義
構(gòu)造器定義
方法定義}7.2類類是具體對象的共同特征(屬性和方法)的抽象表示,而對象是類的實例。97.2類7.2.1類在Java中,類的定義如下所示:[修飾符]class類名{
屬性定義
構(gòu)造器定義
方法定義}定義一個類時,一般包括三個主要的部分:屬性定義、方法定義和構(gòu)造器定義(構(gòu)造函數(shù))。各個成員之間的順序無關(guān)緊要。一般排列順序習(xí)慣上是先屬性定義,再構(gòu)造器定義,然后是其他方法定義。類前面的修飾符可以是public、final或者static,或者省略。類名是一個合法的標識符(字母、數(shù)字或者下劃線,不能以數(shù)字開始)。類是具體對象的共同特征(屬性和方法)的抽象表示,而對象是類的實例。下面以人這個類為例,來說明類的定義。publicclassclass1{publicstaticvoidmain(Stringargs[]){ personJohn=newperson();John.age=37;J="John";John.weight=70;John.height=180;John.show();}}classperson{//屬性定義Stringname;//屬性:人名intage;//屬性:年齡intweight;//屬性:體重intheight;//屬性:身高7.2類117.2類//構(gòu)造器定義voidperson(){ name=""; age=0; weight=0; height=0;}//方法定義,show是方法名
publicvoidshow(){System.out.print("Mynameis"+name+"\n");System.out.print("Myageis"+age+"\n");System.out.print("Myweightis"+weight+"kg\n");System.out.print("Myheightis"+height+"cm\n");}}上面程序運行結(jié)果:MynameisJohnMyageis37Myweightis70kgMyheightis180cm7.2.2屬性屬性用于定義該類或者該類實例所包含的數(shù)據(jù)。如上面例子中的name、age、weight和height。在Java中定義屬性的語法結(jié)構(gòu)如下:[修飾符]屬性類型屬性名稱[=默認值]修飾符:可以是public、private、protected、static、final之一或者組合。其中public、private、protected只能出現(xiàn)其中之一,可以與static、final組合使用。屬性類型:可以是Java的基本數(shù)據(jù)類型或者引用類型。屬性名稱:合法的標識符。像類名一樣,是一個合法的標識符(字母、數(shù)字或者下劃線,不能以數(shù)字開始)。一般程序員默認是,屬性名稱是一個或者多個有實際含義的單詞連接而成,第一個單詞的首字母小寫,后面每個單詞首字母大寫,其他字母小寫,單詞和單詞之間不使用任何分隔符和連字符。默認值:可以為屬性設(shè)置一個默認的數(shù)值。7.2類137.2類方法用于定義該類或者該類實例的行為特征或者功能實現(xiàn)。在Java中定義方法的語法結(jié)構(gòu)如下:[修飾符]方法返回值的數(shù)據(jù)類型方法名稱[=形式參數(shù)列表]{
程序體}修飾符:可以是public、private、protected、static、final、abstract之一或者組合。其中public、private、protected只能出現(xiàn)其中之一;final、abstract只能出現(xiàn)其中之一。它們可以與static使用。方法返回值的數(shù)據(jù)類型:這個是該方法返回的數(shù)據(jù)類型,可以是Java基本數(shù)據(jù)類型或者引用類型。一般返回值通過return語句返回。如果沒有返回值,則定義為void。方法名稱:與屬性名稱定義類似,也是一個標識符,不過一般是以動詞開始。形式參數(shù)列表:這里與C語言函數(shù)定義的形式參數(shù)列表類似,是該方法可以接受的參數(shù)列表。多個參數(shù)之間用逗號隔開。每個參數(shù)有自己的數(shù)據(jù)類型。調(diào)用時與一般函數(shù)調(diào)用類似,每個參數(shù)的先后順序不能搞混。7.2.3方法7.2.4構(gòu)造器(構(gòu)造方法)構(gòu)造器有時也稱為構(gòu)造方法,是一種特殊的方法。構(gòu)造器用于構(gòu)造該類的實例。在Java中定義方法的語法結(jié)構(gòu)如下:[修飾符]構(gòu)造器名稱(形式參數(shù)列表)修飾符:可以是public、private、protected之一或者省略。構(gòu)造器名稱:必須與類名相同。形式參數(shù)列表:與定義方法時的形式參數(shù)列表相同。構(gòu)造器可以不定義返回值類型。7.2類157.3修飾符前面一節(jié)反復(fù)介紹了public、private、protected等修飾符,為了深刻地理解這些修飾符,有必要詳細介紹。(1)public修飾符如果屬性和方法定義為public類型,那么此屬性和方法在所有的類及其子類中、在同一包的類或者不同包的類中,都可以訪問這些屬性和方法。如7.2節(jié)中的show方法前面的public就是這個意思。(2)private修飾符如果屬性和方法定義為private類型,那么此屬性和方法只能在自己的類中被訪問,在其他類中不能訪問。(3)protected修飾符如果屬性和方法定義為protected類型,那么此屬性和方法只能在自己的類和其子類中被訪問。(4)其他修飾符除了public、private、protected三個經(jīng)常使用的修飾符外,還有下面的修飾符:(1)默認修飾符:沒有指定訪問控制修飾符時,就表示是默認修飾符。這時的屬性和方法只能在自己的類中或者與該類在用一個包中的類中訪問。(2)static:表示靜態(tài)修飾符。修飾的方法稱為靜態(tài)方法,修飾的變量成為靜態(tài)變量。靜態(tài)變量的作用域是整個類。(3)final:被final修飾符定義的變量在程序整個執(zhí)行過程中最多被賦值一次,因此經(jīng)常用它定義常量。(4)transient:只能修飾非靜態(tài)的變量。7.3修飾符177.3修飾符(5)volatile:一旦一個共享變量(類的成員變量、類的靜態(tài)成員變量)被volatile修飾之后,那么就具備了兩層語義:1)保證了不同線程對這個變量進行操作時的可見性,即一個線程修改了某個變量的值,這新值對其他線程來說是立即可見的。2)禁止進行指令重排序。(6)abstract:被abstract修飾的方法稱為抽象方法。(7)synchronized:只能修改方法,不能修飾類和變量。7.4.1對象的創(chuàng)建創(chuàng)建對象的語法格式是:類名對象名對象名=new類的構(gòu)造方法();也可以一行處理:類名對象名=new類的構(gòu)造方法();例如:PersonJohn;John=newPerson();7.4對象Java中使用類和對象的方法就是先定義類,再用類定義對象,最后通過對象來引用類的屬性和方法。
197.4對象或者:PersonJohn=newPerson();實際上,我們在前面定義基本變量也采取了類似的方法,例如:Stringstr1;str1=newString("Hello,Java");這里String實際上就可以看作是一個類。7.4.2對象的使用使用對象來引用類的屬性的語法格式是:對象.屬性
例如:John.age=37;J="John";John.weight=70;John.height=180;使用對象來引用類的方法的語法格式是:對象.方法名(參數(shù))例如:John.show();7.4對象217.4對象7.4.3對象的消亡為了提高程序的效率,防止出現(xiàn)占用內(nèi)存過多的情況,就需要及時處理不需要的對象。Java是通過垃圾收集器來處理和釋放不再引用的對象所占有的空間的。清除對象所占有的空間是自動進行的。有時候通過給對象賦值null來給對象顯式地清除對象引用。例如:PersonJohn;John=newPerson();John=null;7.5.1類中的變量類中變量一般分為成員變量和局部變量。成員變量是類中屬性部分定義的變量,成員變量又可以分為實例變量和靜態(tài)變量。靜態(tài)變量就是用static修飾的成員變量。局部變量是指在方法體中定義的變量或者方法的形式參數(shù)。成員變量的語法格式如下:[訪問控制修飾符][變量類型]變量名稱局部變量的語法格式如下:[變量類型]變量名稱7.5變量Java中使用類和對象的方法就是先定義類,再用類定義對象,最后通過對象來引用類的屬性和方法。237.5變量publicclassclass1{publicstaticvoidmain(Stringargs[]){ints=100;//s是成員變量staticintv=25;//v是靜態(tài)變量(成員變量)System.out.print(sum(100));}publicstaticintsum(intnum){//num是局部變量intn=num;//n是局部變量if(n>0){returnn+sum(n-1);//調(diào)用遞歸方法 }else{ return0;//當n=0時,循環(huán)結(jié)束}}}7.5.2變量的初始化和賦值Java系統(tǒng)中變量使用前必須要賦值。(1)成員變量的初始化和賦值系統(tǒng)對成員變量的初始化和賦值有默認值,其中數(shù)值類型變量默認賦值0,邏輯類型變量默認賦值false,引用類型變量默認賦值null。(2)局部變量的初始化和賦值系統(tǒng)對局部變量不進行自動初始化,要求程序員在程序中顯式地給予賦值。方法中的局部變量只有方法被調(diào)用時才被分配內(nèi)存空間,調(diào)用完畢,所占空間將被系統(tǒng)釋放回收。(3)對象的初始化和賦值Java系統(tǒng)中,對象的初始化和賦值是必須使用new運算符,并調(diào)用構(gòu)造函數(shù)進行初始化和賦值。7.5變量257.6方法7.6.1方法的分類方法是類的動態(tài)屬性,對象的行為是由其方法來實現(xiàn)的。類中的方法分為實例方法和靜態(tài)方法。實例方法可以操作成員變量,包括靜態(tài)變量,而靜態(tài)方法只能操作靜態(tài)變量。靜態(tài)方法可以通過類名直接調(diào)用,而實例方法只能通過對象進行調(diào)用。一個類中定義的方法之間可以互相調(diào)用,但是靜態(tài)方法只能調(diào)用靜態(tài)方法,不能調(diào)用實例方法。在創(chuàng)建對象之前,實例變量沒有分配內(nèi)存,實例方法也沒有入口地址。publicclassclass1{ inti;//實例變量 staticintj;//靜態(tài)變量 voidsetValue1(intx,inty)//實例方法 { i=x; j=y; } staticvoidsetValue2(intm,intn)//靜態(tài)方法 { //i=m+n;//錯誤,不能給實例變量i賦值 j=m*n; } voidshowValue() { System.out.print("i="+i+"\n"); System.out.print("j="+j+"\n"); } publicstaticvoidmain(Stringargs[]){ class1c1=newclass1(); c1.setValue1(50,100); c1.showValue(); c1.setValue2(45,10); c1.showValue();class1.setValue2(30,60);//通過類名直接訪問靜態(tài)方法//class1.setValue1(25,50);//通過類名直接訪問實例方法是非法的 } }7.6方法277.6方法程序運行結(jié)果i=50j=100i=50j=4507.6.2方法中的數(shù)據(jù)傳遞方法中的數(shù)據(jù)傳遞有值傳遞、引用傳遞、返回值和實例變量和靜態(tài)變量傳遞方式幾種:(1)方法的值傳遞這里講的內(nèi)容與C語言中的的值傳遞一樣。即實際參數(shù)(實參)的值單向傳遞給形式參數(shù)(形參),實參和形參除了對應(yīng)傳遞外,不發(fā)生任何關(guān)系。前面7.6.1中介紹的例子setValue1(intx,inty)的x和y和setValue2(intm,intn)的m和n都屬于這種值傳遞。7.6方法297.6方法(2)方法的引用傳遞這里講的內(nèi)容與C語言中的地址傳遞類似。形參和實參指向同一個地址,因此任何對形參的改變都會影響到對應(yīng)的實參。這里的實參一般是數(shù)組或者引用類型。例如:publicclassclass1{ inti; intj; intarea(intx,inty) { returnx*y; } voidsetValue1(class1c)//引用地址傳遞 { c.i=c.i*c.i*c.i; c.j=c.j*c.j*c.j; } voidsetValue2(intm,intn) { i=m; j=n; } staticvoidsetValue3(intp[],intq)
//數(shù)組地址傳遞 { for(inti=0;i<p.length;i++) p[i]=p[i]+q; }7.6方法317.6方法voidshowValue() { System.out.println("i="+i); System.out.println("j="+j); } publicstaticvoidmain(Stringargs[]){ class1c0=newclass1(); c0.setValue2(4,5); c0.showValue(); c0.setValue1(c0); c0.showValue();
intarr[]=newint[4]; for(inti=0;i<arr.length;i++) arr[i]=i; for(inti=0;i<arr.length;i++) System.out.println("arr["+i+"]="+arr[i]); setValue3(arr,5); for(inti=0;i<arr.length;i++) System.out.println("arr["+i+"]="+arr[i]); } }程序運行結(jié)果i=4j=5i=64j=125arr[0]=0arr[1]=1arr[2]=2arr[3]=3arr[0]=5arr[1]=6arr[2]=7arr[3]=87.6方法337.6方法(3)方法的返回值返回值方法不是在形參和實參之間進行,而是當方法調(diào)用結(jié)束后,直接將返回值帶回給調(diào)用方法的程序中。一般被調(diào)用的方法的返回值類型要定義,使用return語句返回需要返回的數(shù)值。例如上例中:intarea(intx,inty){returnx*y; }(4)實例變量和靜態(tài)變量傳遞方式實例變量和靜態(tài)變量傳遞方式實際上是利用在類中定義的實例變量和靜態(tài)變量在每個方法中都可以使用來進行數(shù)據(jù)傳遞的,實際上就是共享變量的方式。7.6方法357.6方法7.6.3類中的三個重要方法(1)構(gòu)造方法構(gòu)造方法前面已經(jīng)有所介紹。這里再詳細敘述一下。publicclassclass1{inti;intj;publicclass1(class1c0){//TODOAuto-generatedconstructorstubc0.i=100;c0.j=200;}publicclass1(){//TODOAuto-generatedconstructorstubi=2;j=3;}publicstaticvoidmain(Stringargs[]){class1c0=newclass1();System.out.println("i="+c0.i); System.out.println("j="+c0.j); class1c1=newclass1(c0);System.out.println("i="+c0.i); System.out.println("j="+c0.j); } }7.6方法377.6方法程序運行結(jié)果i=2j=3i=100j=200(2)main方法實際上,我們前面所舉的例子都包含有main(Stringargs[])方法。Java的程序運行都是從main方法開始的,一個程序只能有一個main方法,這與C語言很相似。main方法中的參數(shù)Stringargs[]是用來傳遞命令行參數(shù)的。args[i-1]存儲著所傳遞的第i個參數(shù)。起哄,字符串數(shù)據(jù)args[]存儲傳遞的參數(shù),args.length存儲所傳遞參數(shù)的個數(shù)。通過下面的例子就可以驗證參數(shù)的個數(shù)和內(nèi)容:publicclassclass1{ voidshowParameter(inti,Stringstr){ System.out.println("+第"+i+"個參數(shù)是"+str); } publicstaticvoidmain(Stringargs[]){class1p0=newclass1();for(inti=0;i<args.length;i++) p0.showParameter(i+1,args[i]);} }7.6方法397.6方法7.6.4遞歸調(diào)用方法如果一個方法在其方法體內(nèi)直接或者間接調(diào)用其自身,就稱為方法的遞歸。方法的遞歸包含了一種隱式的循環(huán),它會重復(fù)某段代碼,但這段重復(fù)執(zhí)行無需循環(huán)控制。例如有下面的題目:s(n)=1+2+3+4+......例如,要求s(100)的值,題目就可以用遞歸方法來實現(xiàn)。publicclassclass1{publicstaticvoidmain(Stringargs[]){System.out.print(sum(100));}publicstaticintsum(intnum){if(num>0){returnnum+sum(num-1);//調(diào)用遞歸方法 }else{ return0;//當num=0時,循環(huán)結(jié)束}}}程序運行結(jié)果:50507.6方法417.6方法在上例的代碼中,求解過程如下:sum(100)=100+sum(99)sum(99)=99+sum(98)sum(98)=98+sum(97)……sum(3)=3+sum(2)sum(2)=2+sum(1)sum(1)=1+sum(0)sum(0)=0有抽象方法的類只能被定義為抽象類,但抽象類中可以沒有抽象方法。抽象類是指只聲明了方法而不去實現(xiàn)方法的類,抽象類不能被實例化,也就是說不能創(chuàng)建對象。抽象類和抽象方法是用abstract修飾符來進行定義的。示例:7.7抽象類和抽象方法437.7抽象類和抽象方法//第一個類文件packagetest;publicabstractclassClass2{//定義了一個抽象類inti;intj;publicClass2(intx,inty){ i=x; j=y; System.out.println("這是抽象類的構(gòu)造函數(shù)!");}publicabstractintshow();//定義了一個抽象方法,抽象方法不能有實現(xiàn)}//第二個類文件packagetest;publicclassClass3extendsClass2{publicClass3(intx,inty){super(x,y);//TODOAuto-generatedconstructorstub}publicintshow(){//TODOAuto-generatedmethodstubSystem.out.println("這是第1個下位類的實現(xiàn),輸出是i+j="+(i+j));returni+j;}}7.7抽象類和抽象方法457.7
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皮膚黑色素瘤的臨床護理
- 《數(shù)字證書及公鑰》課件
- 化膿性鼻竇炎的健康宣教
- 天皰瘡的臨床護理
- 《單片機原理及應(yīng)用 》課件-第8章
- 手癬的臨床護理
- 變應(yīng)性接觸性皮炎的臨床護理
- 《齒輪西農(nóng)版》課件
- JJF(陜) 050-2021 光電式皮帶張力計校準規(guī)范
- 反比例函數(shù)復(fù)習(xí)課件
- 芯片散熱市場分析報告
- 城市公園環(huán)境設(shè)計前期調(diào)研與分析
- 重大隱患判定標準培訓(xùn)課件
- 力帆汽車ERP項目實施建議-德勤-SAP-v1.1
- 2024年陜西中陜核工業(yè)集團招聘筆試參考題庫含答案解析
- 眼視光學(xué)專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
- 30題供應(yīng)鏈管理經(jīng)理崗位常見面試問題含HR問題考察點及參考回答
- 無人機路徑規(guī)劃與優(yōu)化
- 酒駕后雙方賠償收據(jù)范本
- 受性侵犯的女生的心理輔導(dǎo)方案
- (施工單位)投標人承擔項目優(yōu)勢
評論
0/150
提交評論