版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第一章Java的類北京大學(xué)計(jì)算機(jī)系代亞非1第一章Java的類北京大學(xué)計(jì)算機(jī)系2第一章Java的類1.1有關(guān)面向?qū)ο蟮母拍?.2Java語(yǔ)言的特點(diǎn)1.3Java的開(kāi)發(fā)環(huán)境1.4第一個(gè)Java程序1.5Java類型系統(tǒng)1.6Java中字符串的類1.7Java中的類、方法和變量1.8Java名空間及訪問(wèn)規(guī)則1.9Java中的抽象類、接口和程序包1.10對(duì)象的構(gòu)造函數(shù)2第一章Java的類1.1有關(guān)面向?qū)ο蟮母拍?1.1有關(guān)面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)圍繞的幾個(gè)主要概念:抽象數(shù)據(jù)類型、類、類型層次(子類),繼承性、多態(tài)性。31.1有關(guān)面向?qū)ο蟮母拍蠲嫦驅(qū)ο蟪绦蛟O(shè)計(jì)圍繞的幾個(gè)主要概41.1有關(guān)面向?qū)ο蟮母拍頲lassCar{intcolor_number;intdoor_number;
intspeed;
voidbrake(){…}voidspeedUp(){…};voidslowDown(){…}}
計(jì)算機(jī)中的對(duì)象的原型
現(xiàn)實(shí)生活中的對(duì)象
數(shù)據(jù)抽象類型41.1有關(guān)面向?qū)ο蟮母拍頲lassCar{計(jì)算機(jī)中51.1有關(guān)面向?qū)ο蟮母拍钍裁词穷??類是描述?duì)象的“基本原型”,它定義一種對(duì)象所能擁有的數(shù)據(jù)和能完成的操作,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類是程序的基本單元。variablesmethods
程序中的對(duì)象是類的一個(gè)實(shí)例,是一個(gè)軟件單元,它由一組結(jié)構(gòu)化的數(shù)據(jù)和在其上的一組操作構(gòu)成。51.1有關(guān)面向?qū)ο蟮母拍钍裁词穷??variablesme61.1有關(guān)面向?qū)ο蟮母拍钭兞浚杭粗笇?duì)象的所知道的狀態(tài)方法:指對(duì)象的功能單元。什么是消息?軟件對(duì)象通過(guò)相互間傳遞消息來(lái)相互作用和通信一個(gè)消息由三部分組成:1.接受消息的對(duì)象2.要完成方法的名字3.方法需要的參數(shù)對(duì)象B對(duì)象Amessage61.1有關(guān)面向?qū)ο蟮母拍钭兞浚杭粗笇?duì)象的所知道的狀態(tài)對(duì)象71.1有關(guān)面向?qū)ο蟮母拍钜粋€(gè)例子在程序中操作對(duì)象是類的一個(gè)實(shí)例:即對(duì)象創(chuàng)建一個(gè)對(duì)象Helloobj=newHello();調(diào)用方法obj.showString(“HelloWorld!”)classHello{
}privateStrings;publicvoidshowString()
{System.out.println(s);}publicvoidchangeString(Stringstr){s=str;returns;}71.1有關(guān)面向?qū)ο蟮母拍钜粋€(gè)例子classHellop81.1有關(guān)面向?qū)ο蟮母拍钍裁词欠庋b?封裝把對(duì)象的所有組成部分組合在一起,封裝定義程序如何引用對(duì)象的數(shù)據(jù),封裝實(shí)際私有數(shù)據(jù)
方法上使用方法將類的數(shù)據(jù)隱藏起來(lái),控制用戶對(duì)類的修改和訪問(wèn)數(shù)據(jù)的程度。
方法數(shù)據(jù)對(duì)象A對(duì)象B公有數(shù)據(jù)81.1有關(guān)面向?qū)ο蟮母拍钍裁词欠庋b?私有數(shù)據(jù)上使用方法將91.1有關(guān)面向?qū)ο蟮母拍钍裁词亲宇?子類是作為另一個(gè)類的擴(kuò)充或修正所定義的一個(gè)類.bicycle(superclass)MountainbikesRacingbikesTandembikessubclass91.1有關(guān)面向?qū)ο蟮母拍钍裁词亲宇?bicycle(su101.1有關(guān)面向?qū)ο蟮母拍钍裁词抢^承?繼承是子類利用父類中定義的方法和變量就像它們屬于子類本身一樣.classCar{intcolor_number;intdoor_number;intspeed;
push_break(){…}add_oil(){…}}
classTrash_Car
extendsCar{doubleamount;fill_trash(){…}}101.1有關(guān)面向?qū)ο蟮母拍钍裁词抢^承?classCar111.1有關(guān)面向?qū)ο蟮母拍钍裁词欠椒ǖ母采w?在子類中重新定義父類中已有的方法。classCar{intcolor_number;intdoor_number;intspeed;
push_break(){speed=0;}add_oil(){…}}
classTrash_Car
extendsCar{doubleamount;fill_trash(){…}
push_break(){speed=speed-10;}}111.1有關(guān)面向?qū)ο蟮母拍钍裁词欠椒ǖ母采w?class121.1有關(guān)面向?qū)ο蟮母拍钍裁词欠椒ǖ闹剌d(多態(tài)性)?在同一個(gè)類中至少有兩個(gè)方法用同一個(gè)名字,但有不同的參數(shù)。類voidshow(intint_num)voidshow(doubledouble_num)voidshow(nitnit_um,floatfloat_um)1231.23123,1.23121.1有關(guān)面向?qū)ο蟮母拍钍裁词欠椒ǖ闹剌d(多態(tài)性)?類131.2Java語(yǔ)言的特點(diǎn)Java是什么?
Java=“C++”--“復(fù)雜性和奇異性”+“安全性和可移植性”Java由那些特性?(1)面向?qū)ο蠓庋b性、多態(tài)性、繼承性、動(dòng)態(tài)鏈接(2)操作平臺(tái)無(wú)關(guān)性嚴(yán)格的語(yǔ)言定義:“沒(méi)有依據(jù)機(jī)器的不同而不同”或“由編譯器決定”等字眼,最后的目標(biāo)碼都是一致的,初值都是確定的131.2Java語(yǔ)言的特點(diǎn)Java是什么?141.2Java語(yǔ)言的特點(diǎn)兩種工作模式的比較源程序Java編譯器SPARCpentiumPowerpc中間碼PowerpcpentiumSPARC二進(jìn)制源程序SPARCPowerpcpentiumPowerpcpentiumSPARC編譯器二進(jìn)制Java解釋器141.2Java語(yǔ)言的特點(diǎn)兩種工作模式的比較源Java編151.2Java語(yǔ)言的特點(diǎn).編譯,沒(méi)有絕對(duì)地址調(diào)入包含,繼承所用道的所有類,內(nèi)存分配確定,編程真正可執(zhí)行的機(jī)器碼Java源程序(.java文件)Java編譯器JavaBytecode(.class文件)系統(tǒng)執(zhí)行平臺(tái)Bytecode解釋器Bytecode載入器字節(jié)碼校驗(yàn)器不存在偽造的指針不違反訪問(wèn)權(quán)限不非法訪問(wèn)對(duì)象不導(dǎo)致操作棧溢出
151.2Java語(yǔ)言的特點(diǎn).編譯,沒(méi)有絕對(duì)地址調(diào)入包含,161.2Java語(yǔ)言的特點(diǎn)Java虛擬機(jī)JavainterpreterJust-in-timecompilerRuntimeSystemOperatingSystemHardware不同的操作系統(tǒng)有不同的虛擬機(jī).它類似一個(gè)小巧而高效的CPU.byte-code代碼是與平臺(tái)無(wú)關(guān)的是虛擬機(jī)的機(jī)器指令.Java字節(jié)代碼運(yùn)行的兩種方式:interpreter(解釋方式)Just-in-time(即時(shí)編譯):有代碼生成器將字節(jié)代碼轉(zhuǎn)換成本機(jī)的機(jī)器代碼,然后可以以較高速度執(zhí)行.
161.2Java語(yǔ)言的特點(diǎn)Java虛擬機(jī)JavaJust171.2Java語(yǔ)言的特點(diǎn)(3)安全問(wèn)題Java是在網(wǎng)絡(luò)環(huán)境下使用的語(yǔ)言一個(gè)安全的網(wǎng)絡(luò)至少要防止以下幾種破壞的可能性:毀滅系統(tǒng)資源消耗系統(tǒng)資源挖掘系統(tǒng)或個(gè)人機(jī)密騷擾正常工作的進(jìn)行171.2Java語(yǔ)言的特點(diǎn)(3)安全問(wèn)題181.2Java語(yǔ)言的特點(diǎn)Java源程序(.java文件)Java編譯器JavaBytecode(.class文件)Bytecode載入器Bytecode解釋器系統(tǒng)執(zhí)行平臺(tái)語(yǔ)言定義publicprotectedprivatefinal取消指針自動(dòng)回收垃圾B(niǎo)ytecode檢查限定對(duì)象的存取權(quán)限系統(tǒng)堆棧溢出參數(shù)類型一致程序執(zhí)行系統(tǒng)WWW瀏覽器限制Java小應(yīng)用程序的不正當(dāng)使用181.2Java語(yǔ)言的特點(diǎn)Java源程序Java編譯器J191.2Java語(yǔ)言的特點(diǎn)(4)多線程Java提供現(xiàn)成的類Thread,只要繼承這個(gè)類就可以編寫多線程的程序。(5)Java與C及C++的區(qū)別不再有#include和#define等于處理功能不再有structure,union及typedef不再有函數(shù)、不再有指針、不再有多重繼承不再有g(shù)oto不再有操作符重載(OperatiorOverloading)取消自動(dòng)類型轉(zhuǎn)換,要求強(qiáng)制轉(zhuǎn)換191.2Java語(yǔ)言的特點(diǎn)(4)多線程201.3Java的開(kāi)發(fā)環(huán)境Java開(kāi)發(fā)環(huán)境JDKJDK中有Java編譯器和bytecode解釋器Applwtviewer是小應(yīng)用程序的bytecode解釋器JDK的安裝直接執(zhí)行JDK.exe201.3Java的開(kāi)發(fā)環(huán)境Java開(kāi)發(fā)環(huán)境JDK211.3Java的開(kāi)發(fā)環(huán)境產(chǎn)生如下目錄結(jié)構(gòu)java\bin的目錄下包含義下主要文件:javac:Java編譯器,用來(lái)將java程序編譯成
Bytecodejava:Java編譯器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的
java應(yīng)用程序.jdb:Java調(diào)試器,用來(lái)調(diào)試java程序javap:反編譯,將類文件還原回方法和變量.javadoc:文檔生成器,創(chuàng)建HTML文件appletviwer:Java解釋器,用來(lái)解釋已經(jīng)轉(zhuǎn)換成
Bytecode的java小應(yīng)用程序.211.3Java的開(kāi)發(fā)環(huán)境產(chǎn)生如下目錄結(jié)構(gòu)221.3Java的開(kāi)發(fā)環(huán)境\java\lib子目錄庫(kù)函數(shù),其中classese.zip不要解開(kāi).在autoexec.bat中加入以下兩條命令1.PATHc:\…\java\bin2.SETCLASSPATH=.;c:\...\lib\classes.zip;c:\myclasses;221.3Java的開(kāi)發(fā)環(huán)境\java\lib子目錄231.3Java的開(kāi)發(fā)環(huán)境C:\javabinlibclasses.zipjavacjavaappletviewer用戶類文件所在目錄myclasses當(dāng)前目錄231.3Java的開(kāi)發(fā)環(huán)境C:\javabinlibcl241.3Java的開(kāi)發(fā)環(huán)境vj1.1++的使用1.進(jìn)入vj,創(chuàng)建一個(gè)project2.加入java文件3.編輯java文件4.編譯java文件5.Build一個(gè)project文件6.運(yùn)行java程序
--如果是小應(yīng)用程序,則直接在VJ環(huán)境下運(yùn)行
--如果是應(yīng)用程序,則在dos下運(yùn)行241.3Java的開(kāi)發(fā)環(huán)境vj1.1++的使用251.4你的第一個(gè)Java程序編輯存盤:主類名(含有main方法)和文件名要一致性HelloWorldApp.java編譯程序:javacHelloWorldApp.java運(yùn)行程序:javaHelloWorldApp“myjava”運(yùn)行結(jié)果:Hi,myjavaclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“Hi,”+args[0]);}}Java應(yīng)用和Java小應(yīng)用程序251.4你的第一個(gè)Java程序編輯存盤:主類名(含有ma261.4你的第一個(gè)Java程序1.聲明一個(gè)類:publicclassHelloWorldApp{},類名的第一個(gè)字母要大寫2.一個(gè)類中可有很多方法,main方法是運(yùn)行程序的第一個(gè)方法,方法名的第一個(gè)字母要小寫.3.System.out.println是向屏幕輸出,相當(dāng)于C中的printf();publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“Hi,”+args[0]);}}261.4你的第一個(gè)Java程序1.聲明一個(gè)類:pu271.4你的第一個(gè)Java程序4.命令行參數(shù)的獲取
c:>javaHelloWorldAppmyjava!6.字符串的拼接publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“Hi,”+args[0]);}}271.4你的第一個(gè)Java程序publicclass281.4你的第一個(gè)Java程序Java小應(yīng)用程序不能直接執(zhí)行和使用,必須要在瀏覽器中執(zhí)行importjava.applet.Applet;importjava.awt.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(“HelloWorld”,0,50);}}編輯存盤:主類名(extendsApplet)和文件名一致編譯代碼:javacHelloApplet.java編寫HTML文件:HelloApplet.html281.4你的第一個(gè)Java程序Java小應(yīng)用程序不能直接291.4你的第一個(gè)Java程序運(yùn)行applet程序:1.appletviwerHelloApplet.html2.在瀏覽器中運(yùn)行運(yùn)行結(jié)果:HelloWorld!<html><body><appletcode=“HellApplet.class”width=200height=100></applet></body></html>291.4你的第一個(gè)Java程序運(yùn)行applet程序:H301.4你的第一個(gè)Java程序理解程序1.import語(yǔ)句相當(dāng)于C語(yǔ)言中的include每2.每一個(gè)applet都是java.applet.Applet的子類用extends繼承3.applet中沒(méi)有main方法importjava.applet.Applet;importjava.awt.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(“HelloWorld”,0,50);}}301.4你的第一個(gè)Java程序理解程序importja311.4你的第一個(gè)Java程序4.當(dāng)applet被瀏覽器運(yùn)行時(shí),paint語(yǔ)句自動(dòng)執(zhí)行5.在applet中與屏幕輸出有關(guān)的操作通過(guò)Graphics對(duì)象來(lái)實(shí)現(xiàn)6.一個(gè)Java源文件內(nèi)最多只能有一個(gè)public類,稱為主類,且必須和文件名同名importjava.applet.Applet;importjava.awt.*;publicclassHelloAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(“HelloWorld”,0,50);}}311.4你的第一個(gè)Java程序4.當(dāng)applet被瀏覽321.5Java類型系統(tǒng)Javatypesystemprimitivereferencenullcharnumericbooleanclassinterfacearrayintegralfloating-pointbyteshortintlongfloatdouble321.5Java類型系統(tǒng)Javatypesystem331.5Java類型系統(tǒng)byte8位2的補(bǔ)碼(byte)0short16位2的補(bǔ)碼(short)0int32位2的補(bǔ)碼0long64位2的補(bǔ)碼0Lfloat32位IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)0.0fdouble64位IEEE754浮點(diǎn)數(shù)標(biāo)準(zhǔn)0.0dchar16位同一碼字符集‘\u0000’(Unicodecharacter)331.5Java類型系統(tǒng)byte8位341.5Java類型系統(tǒng)程序:保留字,標(biāo)識(shí)符(類名、域名、方法名、符號(hào)常量、局部變量,標(biāo)號(hào)、…),操作符、界定符,字面常量。聲明一個(gè)變量intdata=10;BooleanisAlived;Java中的操作符:與C基本一致Java中不再有指針了341.5Java類型系統(tǒng)程序:保留字,標(biāo)識(shí)符(類名、域名351.5Java類型系統(tǒng)在Java中”引用“是指向一個(gè)對(duì)象在內(nèi)存中的位置,在本質(zhì)上是一種帶有很強(qiáng)的完整性和安全性的限制的指針.當(dāng)你聲明某個(gè)類,接口或數(shù)組類型的一個(gè)變量時(shí),那個(gè)變量的值總是某個(gè)對(duì)象的引用或者是null引用.指針就是簡(jiǎn)單的地址而已,引用除了表示地址而外,還象被引用的數(shù)據(jù)對(duì)象的縮影,還提供其他信息.指針可以有++,--運(yùn)算,引用不可以運(yùn)算.351.5Java類型系統(tǒng)在Java中”引用“是指向一個(gè)對(duì)361.5Java類型系統(tǒng)s1s210001s2=s1;astring10001classMydate{intyear;intmonth;intday;}
Mydatetoday=newMyDate()00010008todays1=“astring”;例:Strings1;Strings2;361.5Java類型系統(tǒng)s1s210001s2=s1;a371.5Java類型系統(tǒng)能夠動(dòng)態(tài)取得的內(nèi)存有兩種,一種是對(duì)象實(shí)體,一種數(shù)組.Java用new申請(qǐng)內(nèi)存,不需要自己釋放不用的內(nèi)存.在Java中,定義數(shù)組時(shí)不必給出數(shù)組的大小,因?yàn)镴ava的數(shù)組是動(dòng)態(tài)分配的。數(shù)組變量實(shí)際上是一個(gè)引用變量,因此要實(shí)例化才能使用。例:intArray[];Array=newint[8];371.5Java類型系統(tǒng)能夠動(dòng)態(tài)取得的內(nèi)存有兩種,一種是381.5Java類型系統(tǒng)例:StringarrayOfString[]=newString[10];每個(gè)數(shù)組元素包含一個(gè)對(duì)字符串對(duì)象的引用,此時(shí)值分配了包含字符串引用的空間,并沒(méi)有對(duì)字符串本身分配內(nèi)存,此時(shí)不能訪問(wèn)。arrayOfStringfor(inti=0;i<arrayString.length;i++)arrayOfString[i]=newString(“Hello”+i)arrayOfString[0]arrayOfString[1]arrayOfString[8]arrayOfString[9]對(duì)數(shù)組的引用對(duì)字符串的引用381.5Java類型系統(tǒng)例:StringarrayOf391.6Java中的字符串Java中的字符串類String和StringBufferString類的定義和實(shí)例的生成例:Stringstr;str=“thisisastring”或:Stringstr1=newString(“hello”);或:Stringstr2=“aaaa”;String類與其它類型的轉(zhuǎn)換例1:將實(shí)型數(shù)轉(zhuǎn)換成字符串System.out.println(String.valueOf(Math.PI));.391.6Java中的字符串Java中的字符串類.401.6Java中的字符串有兩個(gè)字符串str1,str2str1=str2;是指兩個(gè)引用指向同一個(gè)地址str1.equals(str2)是指兩個(gè)字符串內(nèi)容相等獲取String對(duì)象的信息例如:Strings=“thisisastring”;intlen=s.length();booleanresult=s.equal(“thisisa特test”);charch=s.charAt(6);401.6Java中的字符串有兩個(gè)字符串str1,str2411.6Java中的字符串StringBuffer的字符串的內(nèi)容是可以改變的創(chuàng)建StringBuffer對(duì)象StringBufferstr=newStringbuffer(“hello”);獲取StringBuffer對(duì)象的信息intlen=str.length();例:StringBuffersb=newStringBuffer(“DrinkJava!”);sb.insert(6,”Hot”);System.out.println(sb.toString());
DrinkHotJava!System.out.println接受的是String類411.6Java中的字符串StringBuffer的字符421.7Java中的類、方法和變量試用一個(gè)簡(jiǎn)單的類classCar{intcar_number;
voidset_number(intcar_num){car_number=car_num;}
voidshow_number(){System.out.println(“MycarNo.is:”+car_number);}}classCarDemo{publicstaticvoidmain(Stringargs[]){CarDemocar=newCar();DemoCar.set_number(3838);DemoCar.show_number();}}Mycarnumberis3838421.7Java中的類、方法和變量試用一個(gè)簡(jiǎn)單的類cla431.7Java中的類、方法和變量類的繼承關(guān)系classCar{intcar_number;voidset_number(intcar_num){car_number=car_num;}
voidshow_number(){System.out.println(“MycarNo.is:”+car_number);}}classTrashCarextendsCar{intcapacity;voidset_capacity(inttrash_car_capacity){capacity=trash_car_capacity;}
voidshow_capacity();{System.out.println(“Mycapacityis:”+capacity);}}431.7Java中的類、方法和變量類的繼承classC441.7Java中的類、方法和變量TrashCar中繼承了Car中的兩個(gè)方法classCarDemo{publicstaticvoidmain(Stringargs[]){TrashCarDemoTrashCar=newTrashCar();DemoTrashCar.set_number(4949);DemoTrashCar.set_capacity(20);DemoTrashCar.show_number();DemoTrashCar.show_capacity();}}
Car是父類,TrashCar是子類441.7Java中的類、方法和變量TrashCar中繼承451.7Java中的類、方法和變量何時(shí)選擇繼承性?一個(gè)很好的經(jīng)驗(yàn):“B是一個(gè)A嗎?”如果是則讓B做A的子類.常犯的錯(cuò)誤A有一個(gè)B嗎?例如讓汽車輪子成為汽車的子類是錯(cuò)誤的451.7Java中的類、方法和變量何時(shí)選擇繼承性?常犯的461.7Java中的類、方法和變量類的嚴(yán)格定義及修飾字[類的修飾字]class類名稱[extends父類名稱]{….}public,abstract,final或者沒(méi)有[變量修飾字]變量數(shù)據(jù)類型變量名1,變量名2[=變量初值]…;[方法修飾字]方法的返回值類型方法名稱(參數(shù)1,參數(shù)2,…{…//方法的內(nèi)容}方法和變量的定義及修飾字public、protected、private461.7Java中的類、方法和變量類的嚴(yán)格定義及修飾字[471.8Java名空間及訪問(wèn)規(guī)則每個(gè)類都創(chuàng)造了有自己的名字空間,指方法和變量可以知道彼此的存在,可以使用。abstract類不能直接產(chǎn)生屬于這個(gè)類的對(duì)象final類不能被其他任何類所繼承(安全的考慮)public類不但可以被同一程序包中的其它類使用,別的程序包中的類也可以使用.friendly(缺省)類只能被本包中的其它類使用471.8Java名空間及訪問(wèn)規(guī)則每個(gè)類都創(chuàng)造了有自己的名481.8Java名空間及訪問(wèn)規(guī)則變量和方法的修飾字public、protected、privatepublic:任何其它類、對(duì)象只要可以看到這個(gè)類的話,那么它就可以存取變量的數(shù)據(jù),或使用方法。classABC{publicintpub_i=5;
publicvoidshow)(){System.out.println(“pub_i”+pub_i);}481.8Java名空間及訪問(wèn)規(guī)則變量和方法的修飾字pub491.8Java名空間及訪問(wèn)規(guī)則classDemo{publicstaticvoidmain(Stringargs[]){ABCabc=newABC();System.out.println(“abc.pub_i”+abc.pub_i);abc.pub_i=10;abc.show();}}abc.pub_i=5pub_i=10;491.8Java名空間及訪問(wèn)規(guī)則classDemoab501.8Java名空間及訪問(wèn)規(guī)則protected變量和方法如果一個(gè)類中變量或方法有修飾字protected,同一類,同一包可以使用。不同包的類要使用,必須是該類的子類可以存取變量或調(diào)用publicclassABC{protectedintpro_i=5;
protectedvoidshow(){System.out.println(“pro_i=”+pro_i;)}}
501.8Java名空間及訪問(wèn)規(guī)則protected變量511.8Java名空間及訪問(wèn)規(guī)則不同中的類不能使用classDEF{publicstaticvoidmain(Stringargs[]){ABCabc=newABC();System.out.println(“_i=“+_i);abc.pub_i=10;abc.show();}}511.8Java名空間及訪問(wèn)規(guī)則不同中的類不能使用cl52importmytest.pack.ABC;classDEFextendsABC{publicstaticvoidmain(Stringagrs[]){DEFdef=newDEF();System.out.println(def.i);def.i=10;def.show();}}pro_i=5pro_i=101.8Java名空間及訪問(wèn)規(guī)則不同包但是是子類52importmytest.pack.ABC;pro_i531.8Java名空間及訪問(wèn)規(guī)則private不允許任何其他類存取和調(diào)用friendly(前邊沒(méi)有修飾字的情況)在同一程序包中出現(xiàn)的類才可以直接使用它的數(shù)據(jù)和方法.531.8Java名空間及訪問(wèn)規(guī)則private541.8Java名空間及訪問(wèn)規(guī)則當(dāng)子類中的變量名與父類的相同,原來(lái)的變量被遮蓋.classA{intdata_a=3;}classBextendsA{intdata_a=5;}classCextendsB{voidprint_out(){System.out.println(“data_a=”+data_a);System.out.println(“A.data_a=”+A.data_a);System.out.println(“B.data_a=”+B.data_a);}}data_a=5A.data_a=3B.data_a=5classdemo{publicstaticvoidmain(Stringargs[]){Cc=newC();c.println_out();}}541.8Java名空間及訪問(wèn)規(guī)則當(dāng)子類中的變量名與父類的551.8Java名空間及訪問(wèn)規(guī)則方法的覆蓋(overriding)和重載(overloading)子孫類中定義的方法和祖先類中某個(gè)方法同名,同參數(shù)行,則祖先類中的該方法被覆蓋.方法的重載是指一個(gè)對(duì)象的多態(tài)性,即多個(gè)方法用相同的名稱,但參數(shù)行不同.類voidshow(intint_num)voidshow(doubledouble_num)voidshow(nitnit_um,floatfloat_um)1231.23123,1.23551.8Java名空間及訪問(wèn)規(guī)則方法的覆蓋(overri561.8Java名空間及訪問(wèn)規(guī)則到此為止finalfinal在方法之前,防止該方法被覆蓋.final在類之前,標(biāo)是該類不能被繼承final在變量之前,定義一個(gè)常量.屬于類的變量和方法staticstatic在變量或方法之前,
表明它們是屬于類的,classABCD{chardata;staticint_share_data;}classDemo{ABCDa,b,c,d}objectbchardataobjectcchardataObjectbchardatastaticintshare_dataobjectbchardata561.8Java名空間及訪問(wèn)規(guī)則到此為止fin571.8Java名空間及訪問(wèn)規(guī)則靜態(tài)變量在各實(shí)例間共享如果是public靜態(tài)變量,則其它類可以不通過(guò)實(shí)例化訪問(wèn)它們靜態(tài)方法稱為類的方法,因此不用實(shí)例化即可調(diào)用(面向過(guò)程)一個(gè)對(duì)象的方法可以訪問(wèn)對(duì)象的數(shù)據(jù)成員,盡管不屬于方法的局部變量一個(gè)類的方法只能訪問(wèn)自己的局部變量571.8Java名空間及訪問(wèn)規(guī)則靜態(tài)變量在各實(shí)例間共享581.8Java名空間及訪問(wèn)規(guī)則例:不正確的引用classStaticError{Stringmystring=“hello”;publicstaticvoidmain(Stringargs[]){System.out.println(mystring);}}錯(cuò)誤信息:can’tmakeastaticreferencetononstaticvariable.為什么不正確?只有對(duì)象的方法可以訪問(wèn)對(duì)象的變量.581.8Java名空間及訪問(wèn)規(guī)則例:不正確的引用591.8Java名空間及訪問(wèn)規(guī)則解決的辦法:1.將變量改稱類變量classStaticError{staticStringmystring=“hello”;publicstaticvoidmain(Stringargs[]){System.out.println(mystring);}}591.8Java名空間及訪問(wèn)規(guī)則解決的辦法:601.8Java名空間及訪問(wèn)規(guī)則2.先創(chuàng)建一個(gè)類的實(shí)例classNoStaticError{publicstaticvoidmain(Stringargs[]){Stringmystring=“hello”;System.out.println(mystring);}}}601.8Java名空間及訪問(wèn)規(guī)則2.先創(chuàng)建一個(gè)類的實(shí)例611.9Java中的抽象類、接口和程序包抽象類是指不能直接被實(shí)例化的類,因此一般作為其它類的超類,與final類正好相反抽象類中的抽象的方法-在該類中定義但不在該類中提供實(shí)現(xiàn),由繼承類提供細(xì)節(jié)publicabstractclassSomeAbstractClass{voidmethod1(){System.out.println(“Hi,Java”);}voidmethod2();}定義抽象方法的類必須是抽象類.611.9Java中的抽象類、接口和程序包抽象類是指不能621.9Java中的抽象類、接口和程序包//已有兩個(gè)類Circle和Rectangle,完成相關(guān)參數(shù)的計(jì)算classCircle{publicintr;Circle(intr){this.r=r}//this指"這個(gè)對(duì)象的"publicintarea(){return3*r*r;}//取近似}classRectange{publicintwidth,height;//這里不需"this"Rectangle(intw,inth){width=w,height=h;}publicintarea(){returnwidth*height;}}621.9Java中的抽象類、接口和程序包//已有兩個(gè)類C631.9Java中的抽象類、接口和程序包假設(shè)有若干個(gè)Circle,以及若干個(gè)Rectangle,希望計(jì)算它們的總面積,直截了當(dāng)?shù)淖龇ㄊ菍⑺鼈兎謩e放到兩個(gè)數(shù)組中,用兩個(gè)循環(huán),加上一個(gè)加法,這種做法是不漂亮的如果還有其它形狀,triangle,ellipses等,上述方法顯得“累贅”,我們希望有一種統(tǒng)一的表示,例如用一個(gè)數(shù)組shape[],接受所有的形狀,然后用for(i=0;i<shape.length;i++){area_total+=shape[i].area();631.9Java中的抽象類、接口和程序包假設(shè)有若干個(gè)C641.9Java中的抽象、接口和程序包abstractclassShape{abstractfloatarea();}classCircleextendsShape{publicintr;Circle(intr){this.r=r;}publicfloatarea(){return3.14*r*r;}}classSquareextendsShape{publicintwidth,height;Rectangle(intw,inth){width=w,height=h;}publicfloatarea(){returnwidth*height;}}641.9Java中的抽象、接口和程序包abstract651.9Java中的抽象類、接口和程序包利用接口可實(shí)現(xiàn)多重繼承(可同時(shí)實(shí)現(xiàn)多個(gè)接口)接口的作用和抽象類類似,指定原型,不直接定義方法的內(nèi)容.關(guān)鍵字implement用來(lái)實(shí)現(xiàn)方法,即在使用時(shí)要用給出方法的實(shí)際內(nèi)容接口中的方法和變量是public的interfaceStack{voidpush(objectx);objectpop();}classAextendsAppletimplementsStack{voidpush(objectx){…;//具體內(nèi)容
}objectpop(){…;//具體內(nèi)容}}
651.9Java中的抽象類、接口和程序包利用接口可實(shí)現(xiàn)多661.9Java中的抽象類、接口和程序包程序包:相當(dāng)于其它語(yǔ)言中的庫(kù)函數(shù)打包packageGraphics;classSquare{…;}classCircle{…;}classTriangle{…;}使用程序包中的類要用import命令.表示路徑,*表示使用包中的所有類importjava.io.FileInputStream;importjava.io.*;iojavaFileInputStream661.9Java中的抽象類、接口和程序包程序包:相當(dāng)于其671.10對(duì)象的構(gòu)造函數(shù)使用new來(lái)做內(nèi)存配置classDemo1//數(shù)組的配置{publicstaticvoidmain(Stringargs[]){intarray[][];
array=newint[5][5];array[1][4]=5;}}
classmyClass//對(duì)象實(shí)體的產(chǎn)生{intdata=5;}classDemo2{publicstaticvoidmain(Stringargs[]){myClassobj;//建立一個(gè)引用
obj=newmyClass();System.out.println(obj.data);}}671.10對(duì)象的構(gòu)造函數(shù)使用new來(lái)做內(nèi)存配置class681.10對(duì)象的構(gòu)造函數(shù)Constructor和finalizerconstructor(構(gòu)造函數(shù)),在一個(gè)類中和類同名的方法叫構(gòu)造函數(shù).系統(tǒng)在產(chǎn)生對(duì)象時(shí)會(huì)自動(dòng)執(zhí)行.classPoint{intx,y;Point(){x=0;y=0;}Point(intnew_x,intnew_y){x=new_x,y=new_y;}}
classUsePoint{Pointpoint_A=newPoint();Pointpoint_B=newPoint(5,7);}681.10對(duì)象的構(gòu)造函數(shù)Constructor和fina691.10對(duì)象的構(gòu)造函數(shù)構(gòu)造函數(shù)應(yīng)包含哪些內(nèi)容?構(gòu)造函數(shù)多半定義一些初值或內(nèi)存配置工作一個(gè)類可以有多個(gè)構(gòu)造函數(shù)(重載),根據(jù)參數(shù)的不同決定執(zhí)行哪一個(gè).如果程序中沒(méi)有定義構(gòu)造函數(shù),則創(chuàng)造實(shí)例時(shí)使用的是缺省函數(shù),它是一個(gè)無(wú)內(nèi)容的空函數(shù).691.10對(duì)象的構(gòu)造函數(shù)構(gòu)造函數(shù)應(yīng)包含哪些內(nèi)容?701.10對(duì)象的構(gòu)造函數(shù)thisthis指自己這個(gè)對(duì)象this的作用是要將自己這個(gè)對(duì)象當(dāng)作參數(shù),傳送給別的對(duì)象中的方法.classThisClass{publicstaticvoidmain(){Bankbank=newBank();bank.someMethod(this);}}classCircle{intr;Circle(intr){this.r=r;}publicarea(){returnr*r*3;}}701.10對(duì)象的構(gòu)造函數(shù)thisclassThisCl71super指這個(gè)對(duì)象的父類super用來(lái)引用父類中的方法及變量數(shù)據(jù).publicclassappleextendsfruits{publicapple(intprice){super(price);}}以上句子表示使用超類的構(gòu)造函數(shù)生成實(shí)例super必須是子類構(gòu)造器的第一條語(yǔ)句1.10對(duì)象的構(gòu)造函數(shù)71super指這個(gè)對(duì)象的父類1.10對(duì)象的構(gòu)造函數(shù)72小結(jié)一個(gè)Java程序(包括小應(yīng)用程序)由若干個(gè)類組成,它們分布在由CLASSPATH指定的一個(gè)目錄中一個(gè)Java程序中只能由一個(gè)主類,并且與文件同名.CLASSPATH指定多個(gè)目錄,它們和起來(lái)被看成是這個(gè)目錄的根,根中的類構(gòu)成缺省包目錄樹(shù)中每個(gè)子目錄中的類的集合對(duì)應(yīng)Java一個(gè)包(package),子目錄的層次與包的記法的層次對(duì)應(yīng)72小結(jié)一個(gè)Java程序(包括小應(yīng)用程序)由若干個(gè)類組成,它73小結(jié)C:\javabinlibclasses.zipjavacjavaappletviewerjavasourcemyclass讓PATH包含…\java\binSETCLASSPATH=.;C:\...\myclassesimportjava.io.*;importjava.awt.Graphics;importmycalss.calculate.*;publicclasstest{}myjava.javacalculateABCpackagemyclass.calculateclassA{}classB{}classC{}73小結(jié)C:\javabinlibclasses.zipja74小結(jié)名空間及訪問(wèn)規(guī)則--package,class/object,member,局部變量--public,private,protected,default成員的可視性描述publicprotected缺省privateyesyesyesyesyesyesyesyesnoyes*nonoyesnonono同一類中同一包中不同包的子類中非子類也不同包74小結(jié)名空間及訪問(wèn)規(guī)則成員的可視性描述publicp75小結(jié)對(duì)象模型Java的類和對(duì)象(一般,抽象,接口)--繼承機(jī)制(單繼承,多實(shí)現(xiàn))static,import,final的含義和作用75小結(jié)對(duì)象模型76小結(jié)避免在類中使用太多的基本類型privateStringsenderName;privateStringsenderStreet;privateStringsenderCity;privateStringsenderState;privateStringsenderZip;privateStringreceiverName;privateStringreceiverStreet;privateStringreceiverCity;privateStringreceiverState;privateStringreceiverZip;addresssenderaddressreceiver76小結(jié)避免在類中使用太多的基本類型addresssend77第2章Java小應(yīng)用北京大學(xué)計(jì)算機(jī)系代亞非77第2章Java小應(yīng)用北京大學(xué)計(jì)算機(jī)系78第2章Java小應(yīng)用2.1所有小應(yīng)用程序的根源2.2小試身手2.3圖形操作2.4URL類2.5載入現(xiàn)有圖像文件2.6動(dòng)畫效果2.7播放聲音2.8小結(jié)78第2章Java小應(yīng)用2.1所有小應(yīng)用程序的根源792.1所有小應(yīng)用程序的根源2.1.1小應(yīng)用的特點(diǎn)回憶一下小應(yīng)用程序的書寫格式
importjava.applet.*;publicclassMyAppletextendsApplet{;}applet都繼承自java.applet.Applet類,由Sun公司事先定義好了.每個(gè)小應(yīng)用都有一個(gè)主程序類,之前必須加上public.792.1所有小應(yīng)用程序的根源2.1.1小應(yīng)用的特點(diǎn)802.1所有小應(yīng)用程序的根源http://someLocation/file.html1.BrowserloadsURL<Html><Appletcode=….></Applet>2.BrowserloadsHTMLdocumentAppletclass3.BrowserloadsappletclassesLocation:http://someLocation/file.htmlLoading...4.Browserrunapplet802.1所有小應(yīng)用程序的根源http://someLoc812.1所有小應(yīng)用程序的根源Applet的限制appletBrowserSERVER本地程序fileSERVERlocalconnectionconnectionApplet被下載的與applet無(wú)關(guān)的本地方法812.1所有小應(yīng)用程序的根源Applet的限制apple822.1所有小應(yīng)用程序的根源2.1.2applet的生命周期paint()雖不在生命周期內(nèi),但它的作用相當(dāng)于applet的靈魂Java.applet.Appletpublicvoidinit()publicvoiddestroy()publicvoidstart()publicvoidstop()publicvoidpaint(Graphicsg)822.1所有小應(yīng)用程序的根源2.1.2applet的生832.1所有小應(yīng)用程序的根源一個(gè)applet的可視周期initstartstopdestroy離開(kāi)web頁(yè)面重新裝入或改變頁(yè)面大小或返回Web頁(yè)面832.1所有小應(yīng)用程序的根源一個(gè)applet的可視周期i842.1所有小應(yīng)用程序的根源有關(guān)paint()方法Applet本身是一個(gè)容器,因此任何輸出都必須用圖形方法paint()當(dāng)小應(yīng)用首次被裝載,以及每次窗口放大、縮小、刷新時(shí)都要調(diào)用paint方法paint()是由瀏覽器調(diào)用的,而不是由程序調(diào)用,當(dāng)程序希望調(diào)用paint方法時(shí),用repaint命令paint方法的參數(shù)是Graphics類的對(duì)象g,它在java.awt.Graphics內(nèi)paint(Graphicdg){。。。}842.1所有小應(yīng)用程序的根源有關(guān)paint()方法852.1所有小應(yīng)用程序的根源AWTthread(waiting)update(){cleararaecallpaint()paint()repaint()Exposure852.1所有小應(yīng)用程序的根源AWTthread(wai862.2小試身手2.2.1起始頁(yè)上的時(shí)間和日期介紹兩個(gè)類:1.類名:Date
創(chuàng)建一個(gè)實(shí)例DatetimeNow=newDate();2.類名Font
創(chuàng)建一個(gè)實(shí)例FontmsgFont=newFont(“TimesRoman”,Font.ITALIC,30);0MonDec0714:23:50GMT+08:001998862.2小試身手2.2.1起始頁(yè)上的時(shí)間和日期0Mon872.2小試身手
看下面的例子,想一想生命周期的四個(gè)方法哪去了?importjava.awt.*;importjava.util.Date;publicclassshowDateextendsjava.applet.Applet{DatetimeNow=newDate();FontmsgFont=newFont(“TimesRoman”,Font.ITALIC,30);publicvoidpaint(Graphicsg){g.setFont(msgFont);g.setColor(Color.blue);g.darwString(timeNow.toString(),5,50);}872.2小試身手看下面的例子,想一想生命周期的四個(gè)方882.2小試身手2.2.2在起始頁(yè)中加入applethtml中有關(guān)的代碼
<APPLETCODE=“showdate.class”width=600height=80></APPLET>CODEBASE的作用當(dāng)class文件與起始頁(yè)文件不在同一個(gè)目錄下時(shí),使用CODEBASE說(shuō)明
<APPLETCODE=“showdate.class”width=600height=80>
CODEBASE=“\myjava\class”</APPLET>882.2小試身手2.2.2在起始頁(yè)中加入applet892.2小試身手<APPLETCODE=“showdate.class”width=600height=80>CODEBASE=“\myjava\class”</APPLET>C:\publicIndex.htmlmyjavaclassshowdatejavacodeC:\publicIndex.htmlmyjavaclassshowdatejavacode<APPLETCODE=“showdate.class”width=600height=80></APPLET>892.2小試身手<APPLETC:\publicInd902.2小試身手ALIGN,HSPACE,VSPACEJavaapplet其它文字其它文字vspacehspace<APPLETCODE=“showdate.class”width=600height=80>vspace=100hspace=100</APPLET>902.2小試身手ALIGN,HSPACE,VSPACEJ912.2小試身手向applet傳遞參數(shù)的兩個(gè)步驟
1.在起始頁(yè)中要有<PARAM>標(biāo)簽
2.在applet中要有g(shù)etParameter方法在起始頁(yè)中有:<appletcode=showdatewidth=600heigt=80><paramname=remvalue=“時(shí)間是:”></applet>在applet中有:stringtitle=getParameter(rem);在顯示時(shí)間的命令中加入title:g.drawString(title+timeNow.toString(),5,50);912.2小試身手向applet傳遞參數(shù)的兩個(gè)步驟922.2小試身手importjava.awt.*;importjava.util.Date;publicclassshowDateextendsjava.applet.Applet{DatetimeNow=newDate();Stringtitle;FontmsgFont=newFont(“TimesRoman”,Font.ITALIC,30);publicvoidinit(){title=getParameter(“rem”);if(title==null)title=“”;}publicvoidpaint(Graphicsg){g.setFont(msgFont);g.setColor(Color.blue);g.darwString(title+timeNow.toString(),5,50);}922.2小試身手importjava.awt.*;i932.2小試身手例:利用一個(gè)可以顯示運(yùn)行字符串的類,顯示自己的字符串(htmlpara.html)<appletcode=htmlpara.classwidth=300heigh=200><paramname=MESSAGEvalue=”thisisatest"><paramname=FONTvalue="BOLD"><paramname=POINT_SIZEvalue=20></applet>932.2小試身手例:利用一個(gè)可以顯示運(yùn)行字符串的類,顯示942.2小試身手publicvoidinit(){ Stringparamete; parameter=getParameter("MESSAGE"); if(parameter!=null) message=parameter;parameter=getParameter("FONT"); if(parameter!=null) font_to_use=parameter;parameter=getParameter("POINT_SIZE");if(parameter!=null) point_size=Integer.parseInt(parameter);}942.2小試身手publicvoidinit()952.3圖形處理2.3.1圖形坐標(biāo)系統(tǒng)任何與繪圖有關(guān)的操作第一個(gè)要用的是java.awt.Graphics類Graphics類的對(duì)象不是由new產(chǎn)生的,而是由系統(tǒng)或其他方式直接將生好的Graphics對(duì)象當(dāng)作方法的參數(shù),再交給程序設(shè)計(jì)者去處理.例如:paint(Graphicsg)xy0952.3圖形處理2.3.1圖形坐標(biāo)系統(tǒng)xy0962.3圖形處理Graphics的方法paint(Graphicsg){g.clearRect(); g.copyArea();g.drawAre();g.drawLine();g.drawOval();g.drawRect();g.drawPolygon();g.fillArc();g.fillOval();g.fillPolygen();g.fillRect();g.getColor(); g.getFont()g.setFont();g.setColor(); g.getFontMetrics()g.fillRoundRect()}962.3圖形處理Graphics的方法972.3圖形處理2.3.2字型和顏色的設(shè)置
字型設(shè)置的方法
Fontfont=newFont(“TimesRoman”,Font.ITALIC,24);g.setFont(font);在小應(yīng)用程序中顯示輸出的方法
g.drawString(String,intx,inty);g.drawChars(chardata[],intoffset,intlength,intx,inty);972.3圖形處理2.3.2字型和顏色的設(shè)置982.3圖形處理g.drawBytes(bytedata[],intoffset,intlength,intx,inty);例:g.drawString(“Thisisatest”,5,10);獲取字體的屬性
Fontfont=g.getFont();Font類中常用的方法
GetFamily() getName() getSize() getStyle()isItalic() isPlain() isBold() toString() 982.3圖形處理g.drawBytes(bytedat992.3圖形處理importjava.awt.Graphics;importjava.awt.Font;publicclassdrawtextextendsjava.applet.Applet{Fontfn=newFont("TimesRoman",Font.ITALIC,20); publicvoidpaint(Graphicsg) {g.setFont(fn); g.drawString(”Fontdemo”,5,10);}}Fontdemo992.3圖形處理importjava.awt.Grap1002.3圖形處理獲取更詳細(xì)的數(shù)據(jù) 請(qǐng)查閱有關(guān)FontMetrics類的方法
fontMetrics=getFontMetrics(font);FontMetrics中比較重要的方法有:stringWidth,charWidth,getAscent,getDescent,getLeading,getHeigh1002.3圖形處理獲取更詳細(xì)的數(shù)據(jù)1012.3圖形處理
顏色的調(diào)整Color對(duì)象的使用創(chuàng)造自己的顏色:Colormycolor=newColor(intred,intblue,intgreen);g.setColor(Color.yellow)g.setColor(mycolor);例:隨機(jī)產(chǎn)生顏色,并畫圓1012.3圖形處理顏色的調(diào)整1022.3圖形處理importjava.awt.Graphics;importjava.awt.Color;publicclassdrawcircleextendsjava.applet.Applet{ publicvoidpaint(Graphicsg){ intred,green,blue,x; for(x=0;x<370;x+=30){
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026新疆生產(chǎn)建設(shè)兵團(tuán)第一師中級(jí)人民法院司法警務(wù)輔助人員招聘16人備考考試試題附答案解析
- 2026浙江金華市武義經(jīng)濟(jì)開(kāi)發(fā)區(qū)管理委員會(huì)招聘4人備考考試試題附答案解析
- 2026中國(guó)航空工業(yè)集團(tuán)津電招聘?jìng)淇伎荚囋囶}附答案解析
- 2026中國(guó)人民大學(xué)綜合服務(wù)中心招聘2人備考考試題庫(kù)附答案解析
- 2026年?yáng)|營(yíng)市東營(yíng)區(qū)事業(yè)單位公開(kāi)招聘工作人員(60人)備考考試試題附答案解析
- 2026山東事業(yè)單位統(tǒng)考濱州市惠民縣招聘43人參考考試試題附答案解析
- 2026北京市順義區(qū)醫(yī)院第一批招聘編外25人備考考試試題附答案解析
- 成都市食品生產(chǎn)許可制度
- 食品生產(chǎn)廠消毒制度
- 煙葉生產(chǎn)網(wǎng)格化管理制度
- 2025年湖北能源集團(tuán)股份有限公司招聘筆試真題
- ARK+Invest+年度旗艦報(bào)告《Big+Ideas+2026》重磅發(fā)布
- 2026山西臨汾市大寧縣招聘第四次全國(guó)農(nóng)業(yè)普查辦公室人員8人備考題庫(kù)及一套完整答案詳解
- 2026年及未來(lái)5年中國(guó)激光干涉儀行業(yè)市場(chǎng)前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 禮品卡使用規(guī)范與制度
- 2026年廈門市外事辦公室翻譯崗位遴選專業(yè)能力測(cè)試含答案
- 2025年總經(jīng)理安全生產(chǎn)責(zé)任書
- DB42∕T 2390-2025 城市更新規(guī)劃編制技術(shù)規(guī)程
- 殘疾人職業(yè)技能培訓(xùn)方案
- T-CFIAS 3037-2025 飼料添加劑 蛋白鋅
- 眼鏡銷售培訓(xùn)課程
評(píng)論
0/150
提交評(píng)論