版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章Java概述Java概述21.1.1Java的誕生前身:OAK(JamesGosling1990)Java大事記90年,Sun公司開(kāi)始Green工程93年,WWW席捲全球94年,開(kāi)始定位於Internet95.1,Java命名Hotjava,第一個(gè)支持Java的流覽器
Netscape2.0Java概述31.1.2Java的發(fā)展發(fā)展:面向網(wǎng)路應(yīng)用,類庫(kù)不斷豐富,性能不斷提高,應(yīng)用領(lǐng)域不斷拓展。1995.5.23Java誕生(Java1.0.2API)1997.2.18JDK1.1VJ++6.0、cafe、JBuilder….支持1998.12JDK1.2 (Java2SDKv1.2StandardEdition)網(wǎng)址(查詢新動(dòng)向)Java概述4Java的發(fā)展Java版本與Java開(kāi)發(fā)環(huán)境的關(guān)係Java1.2開(kāi)始,JDK更名為SDKJDK1.2開(kāi)發(fā)Java1.2,JDK1.3開(kāi)發(fā)Java1.3,JDK1.4開(kāi)發(fā)Java1.4Java1.x統(tǒng)稱為Java2程式JDK1.5Java概述5Java2.0開(kāi)始,JDK分為三個(gè)版本J2EE(企業(yè)級(jí)版本)J2SE(標(biāo)準(zhǔn)版本)J2ME(微型版本)1.1.3Java的現(xiàn)狀與應(yīng)用J2MEJava概述61.2.1Java是什麼Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-
performance,multi-threaded,dynamiclanguage.一種OOP語(yǔ)言一個(gè)平臺(tái)(JVM和JavaAPI)Java概述71.2.2Java的特點(diǎn)Java=“C++”–“複雜性和奇異性”+“安全性和可移植性”Java概述8Java的特點(diǎn)面向?qū)ο笸耆额?、?duì)象:OOA,OOD,OOP以類的形式組織代碼,數(shù)據(jù)類型封裝、繼承、多態(tài)Java概述9Java的特點(diǎn)簡(jiǎn)單:Java最初是為家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語(yǔ)言,因此它必須簡(jiǎn)單明瞭。其簡(jiǎn)單性主要體現(xiàn)在三個(gè)方面。C++like摒棄了C++中容易引發(fā)程式錯(cuò)誤的一些特性,如指針、結(jié)構(gòu)、枚舉等,並能進(jìn)行自動(dòng)記憶體管理。提供了豐富的類庫(kù)Java概述10Java的特點(diǎn)分佈式健壯性(魯棒性)檢查數(shù)據(jù)類型的匹配,數(shù)組下標(biāo)越界不支持指針,保護(hù)記憶體數(shù)據(jù)、程式自動(dòng)記憶體管理,碎片收集(垃圾回收機(jī)制)例外控制機(jī)制,正確處理運(yùn)行時(shí)錯(cuò)誤安全性刪除指針和釋放記憶體等C++功能Java的安全體系架構(gòu)Java概述11Java的特點(diǎn)解釋執(zhí)行結(jié)構(gòu)中立:位元組碼與電腦結(jié)構(gòu)無(wú)關(guān)可移植語(yǔ)言規(guī)範(fàn)避免了與具體實(shí)現(xiàn)有關(guān)的描述多線程:支持多任務(wù)高效:JIT(Just-In-Time)及時(shí)編譯器動(dòng)態(tài):可動(dòng)態(tài)增加和修改類庫(kù)內(nèi)容Java概述121.3Java與C/C++的區(qū)別1.全局變數(shù)2.條件轉(zhuǎn)移指令3.指針4.記憶體管理5.?dāng)?shù)據(jù)類型的一致性6.類型轉(zhuǎn)換7.頭檔8.編譯預(yù)處理Java概述139.結(jié)構(gòu)體和共用體10.常量11.多重繼承12.異常處理13.面向?qū)ο蟪淌皆O(shè)計(jì)Java概述141.4.1Java的工作原理Java平臺(tái)的兩個(gè)組件JavaVM是Java平臺(tái)的基礎(chǔ)JavaAPI是預(yù)先建立的軟體組件的集合,提供豐富的功能,如GUI部件。JavaAPI被分為相關(guān)類和介面的庫(kù),這些庫(kù)稱為包(package)Java概述15JavaAPI和JavaVM將程式與硬體分離從而實(shí)現(xiàn)跨平臺(tái)功能JavaJava概述16Java虛擬機(jī)Java虛擬機(jī)(JVM)Java處理器“晶片”,一般由軟體實(shí)現(xiàn)Java虛擬機(jī)類裝入器位元組碼驗(yàn)證器解釋器位元組碼執(zhí)行Java概述17問(wèn):JVM是不是跨平臺(tái)的?不是,不同的平臺(tái)分別設(shè)計(jì)不同的JVM。Java位元組碼沒(méi)有保存特定平臺(tái)的資訊。Java概述18Java的工作方式檔類型.java Java原始檔案.class 二進(jìn)位位元組碼檔運(yùn)行機(jī)制對(duì)於大多數(shù)語(yǔ)言,要運(yùn)行程式,要麼編譯程序要麼解釋程式;而Java語(yǔ)言的程式則既要被編譯又要被解釋。Java概述19Java的工作方式
編譯程序?qū)ava根源程式翻譯為位元組碼(bytecode)程式;解釋程式Java虛擬機(jī)分析並運(yùn)行位元組碼程式。一次編寫(xiě),處處運(yùn)行Writeonce,runanywhere!Java概述20用Java根源程式先被編譯、後被解釋Java概述211.4.2Java的運(yùn)行系統(tǒng)Java的運(yùn)行系統(tǒng)是各平臺(tái)廠商對(duì)JVM的具體實(shí)現(xiàn)。對(duì)於Java中的兩類程式:JavaApplication(Java應(yīng)用程式)和JavaApplet(Java小應(yīng)用程式),存在兩種不同類型的運(yùn)行系統(tǒng);對(duì)於JavaApplication,運(yùn)行系統(tǒng)是Java解釋器;而對(duì)於JavaApplet,運(yùn)行系統(tǒng)是指Java相容的Web流覽器,該流覽器中包含了支持Applet運(yùn)行的環(huán)境。Java概述221.5.1JAVA開(kāi)發(fā)工具JDK系列(Sun)命令行JavaWorkShop(Sun)
SymanteeCAFéJCreatorJBuilder(Borland)VisualJ++(MicroSoft)JavaStudio(Sun)VisualAgeforJava(IBM)OPTIONALJava概述231.5.2JDK下載與安裝 為了鼓勵(lì)使用Java語(yǔ)言開(kāi)發(fā)軟體,SunMicrosystems公司提供了免費(fèi)的軟體開(kāi)發(fā)工具包(SDK),其中包括編譯器、虛擬機(jī)、調(diào)試器等開(kāi)發(fā)工具,稱為Java開(kāi)發(fā)工具包或JDK。
JDK(可從下載)jdk-1_5_0_08-windows-i586-pjdk-1_5_2-doc.zipJava概述24Java2SDKJava概述25安裝JDK後產(chǎn)生如下目錄結(jié)構(gòu):\bin目錄:Java開(kāi)發(fā)工具,包括Java編譯器、解釋器等\demo目錄:一些實(shí)例程式\lib目錄:Java開(kāi)發(fā)類庫(kù)\jre目錄:Java運(yùn)行環(huán)境,包括Java虛擬機(jī)、運(yùn)行類庫(kù)等…Java概述26JDK實(shí)用程式j(luò)avacJava編譯器,將Java根源程式編譯成位元組碼javaJava解釋器,直接從類檔執(zhí)行Java應(yīng)用程式,即applicationappletviewer小程式流覽器,執(zhí)行html檔上的Java小程式,即AppletJava概述27設(shè)置環(huán)境變數(shù):
PATH=e:\jdk1.5.0_08\bin;CLASSPATH=.;Java概述281.6簡(jiǎn)單的Java程式Java程式分兩種:
Java應(yīng)用程式(JavaApplication)1.普通桌面應(yīng)用2.伺服器端應(yīng)用
Java小程式(JavaApplet)(由流覽器解釋執(zhí)行)Java程式Java概述291.6.1Java應(yīng)用程式Java程式//ThisprogramprintsWelcometoJava!publicclassWelcome{ publicstaticvoidmain(String[]args){System.out.println("WelcometoJava!");}}例1:Java概述30程式解析:1.java注釋分為以下三種:(1)單行注釋:從"http://"開(kāi)始到本行結(jié)束的內(nèi)容都是注釋。(2)多行注釋:在"/*"和"*/"之間的所有內(nèi)容都是注釋。(3)文檔注釋:在注釋方面java提供了一種C/C++所不具有的文檔注釋方式。在“/**”和“*/”之間的文本,將自動(dòng)包含在用javadoc命令生成的HTML格式的文檔中。javadoc是JDK中API文檔生成器。該工具解析一組Java原始檔案中的聲明與文檔注釋,生成一組HTML頁(yè)面描述這些根源程式中定義的類、內(nèi)部類、介面、構(gòu)造方法、方法、屬性等。JDK的API文檔就是用javadoc工具生成的。2.Java語(yǔ)言區(qū)分大小寫(xiě),包括檔案名。Java概述313.關(guān)鍵字class用來(lái)聲明一個(gè)類,關(guān)鍵字public表示它是一個(gè)公共類,一個(gè)Java根源程式最多只能有一個(gè)公共類。類定義體由一對(duì){}括起來(lái)。4.Java語(yǔ)言語(yǔ)句均以半角的分號(hào);結(jié)尾。5.類體內(nèi)包含變數(shù)和函數(shù)的定義,變數(shù)稱為類的“成員變數(shù)”,函數(shù)在Java語(yǔ)言中稱為“方法”。6.在該類中定義了一個(gè)main()方法,其中public表示訪問(wèn)許可權(quán),指明所有的類都可以使用這一方法。static指明該方法是一個(gè)類方法(又稱為靜態(tài)方法),它可以通過(guò)類名直接調(diào)用;void則指明main()方法不返回任何值。對(duì)於一個(gè)應(yīng)用程式來(lái)說(shuō),main()方法是必需的,而且必須按照上述格式來(lái)定義。Java解釋器在沒(méi)有生成任何實(shí)例的情況下,以main()方法作為入口來(lái)執(zhí)行程式。Java概述327.Java程式中可以定義多個(gè)類,每個(gè)類中可以定義多個(gè)方法,但是最多只能有一個(gè)公共類,main()方法也只能有一個(gè)。main()方法定義中,String[]args是傳遞給main()方法的參數(shù),參數(shù)名為args,它是String類的一個(gè)實(shí)例,參數(shù)可以為一個(gè)或多個(gè),多個(gè)參數(shù)間用逗號(hào)分隔。8.語(yǔ)句System.out.println(“WelcometoJava”);的作用是調(diào)用系統(tǒng)類庫(kù)中的System類的成員out的println()方法實(shí)現(xiàn)字串的輸出。與println()不同的是:print()方法在當(dāng)前行輸出,而println()方法在新的一行輸出。Java概述339.java根源程式結(jié)構(gòu)10.原始檔案的命名規(guī)則:如果在根源程式中包含有公共類的定義,則該原始檔案名必須與該公共類的名字完全一致,字母的大小寫(xiě)都必須一樣。這是java語(yǔ)言的一個(gè)嚴(yán)格的規(guī)定,如果不遵守,在編譯時(shí)就會(huì)出錯(cuò)。因此,在一個(gè)java根源程式中至多只能有一個(gè)公共類的定義。如果根源程式中不包含公共類的定義,則該檔案名可以任意取名。如果在一個(gè)根源程式中有多個(gè)類定義和介面定義,則在編譯時(shí)將為每個(gè)類生成一個(gè).class檔。(每個(gè)介面編譯後也生成.class檔)Java概述34附:使用對(duì)話框輸出資訊也可使用JOptionPane的靜態(tài)方法進(jìn)行人機(jī)交互。如showMessageDialog
方法輸出資訊。Java概述35根源程式importjavax.swing.JOptionPane;public
classWelcomeInMessageDialogBox{ public
static
voidmain(String[]args){ //使用對(duì)話框輸出資訊JOptionPane.showMessageDialog(null,"WelcometoJava!","DisplayMessage",JOptionPane.INFORMATION_MESSAGE);}}Java應(yīng)用基礎(chǔ)362.1識(shí)別字、關(guān)鍵字Java語(yǔ)言使用國(guó)際字元集(Unicode)。Unicode字元集定義了一套國(guó)際標(biāo)準(zhǔn)字元集。通常的ASCII碼是8位的,而Unicode字元集中的每個(gè)字元占16位,即2個(gè)位元組,整個(gè)字元集共包括65336個(gè)字元,相容ASCII,排在Unicode字元集最前面的256個(gè)字元就是ASCII碼。Unicode除了可以表示256個(gè)ASCII碼外,還可以表示漢字、拉丁語(yǔ)、希臘字母、朝鮮語(yǔ)等。Java應(yīng)用基礎(chǔ)372.1.1識(shí)別字識(shí)別字是賦予變數(shù)、類、方法、數(shù)組、檔等的名稱。Java語(yǔ)言規(guī)定識(shí)別字是以字母、下劃線“_”或美元符號(hào)“$”開(kāi)始,隨後可跟數(shù)字、字母、下劃線或美元符號(hào)的字元序列。Java識(shí)別字大小寫(xiě)敏感,沒(méi)有長(zhǎng)度限制,可以為識(shí)別字取任意長(zhǎng)度的名字,但關(guān)鍵字不能作為識(shí)別字。Java應(yīng)用基礎(chǔ)38關(guān)於識(shí)別字為增強(qiáng)程式可讀性,Java作如下的約定:類、介面:通常使用名詞,且每個(gè)單詞的首字母要大寫(xiě)方法:通常使用動(dòng)詞,首字母小寫(xiě),其後用大寫(xiě)字母分隔每個(gè)單詞常量:全部大寫(xiě),單詞之間用下劃線分隔變數(shù):通常使用名詞,首字母小寫(xiě),其後大寫(xiě)字母分隔每個(gè)單詞,避免使用$符號(hào)。例:下麵是合法的識(shí)別字:identifier thisone UserName User_name _system_varl $max下麵是不合法的識(shí)別字:8_value (不能以數(shù)字打頭)$book*c (不能包含非法字元*)Java應(yīng)用基礎(chǔ)392.1.2關(guān)鍵字關(guān)鍵字是指對(duì)編譯器有特殊意義,在程式中不能用作其他目的的字元序列,關(guān)鍵字都是由小寫(xiě)字母組成的。Java中的關(guān)鍵字:abstract boolean break byte
case
catch char class continue default do double else extends final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient try void volatile whileJava應(yīng)用基礎(chǔ)40關(guān)於關(guān)鍵字true和false不是關(guān)鍵字,類似地,對(duì)象值null也沒(méi)有列入關(guān)鍵字。但是不能把它們派作其他用途。還有些關(guān)鍵字,如cast、future、goto、generic、inner、operator、outer、rest、var等都是Java保留的沒(méi)有意義的關(guān)鍵字。Java應(yīng)用基礎(chǔ)412.2基本數(shù)據(jù)類型數(shù)據(jù)類型規(guī)定一類數(shù)據(jù)的數(shù)據(jù)位長(zhǎng)度,取值範(fàn)圍,以及對(duì)該類數(shù)據(jù)所能進(jìn)行的操作。Java數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型(引用類型又稱為組合類型)。Java語(yǔ)言定義了8種基本數(shù)據(jù)類型,其分類及關(guān)鍵字如下:整型:byte、short、int、long浮點(diǎn)型:float、double字元型:char布爾型:booleanJava應(yīng)用基礎(chǔ)42表2.1Java中的基本數(shù)據(jù)類型Java應(yīng)用基礎(chǔ)432.3常量、變數(shù)Java語(yǔ)言中存在著兩種表徵數(shù)據(jù)的形式:常量與變數(shù)。常量:程式運(yùn)行過(guò)程中保持不變,並且不可進(jìn)行修改的量。變數(shù):用來(lái)存放數(shù)據(jù)且其值可以改變的量稱為變數(shù)。Java應(yīng)用基礎(chǔ)442.3.1常量Java語(yǔ)言中常量有兩種類型:一種稱為直接常量也稱為值常量,如12、-33、15.6;有多種類型:1、2、3、4、5另一種稱為符號(hào)常量,符號(hào)常量需要明確定義。Java語(yǔ)言中使用關(guān)鍵字final來(lái)定義符號(hào)常量,如下所示:finaldoublePI=3.1415926;其中PI即符號(hào)常量。double是該符號(hào)常量的類型。注意:符號(hào)常量實(shí)質(zhì)上是一種特殊的變數(shù),也是佔(zhàn)用記憶體空間的,不同於C語(yǔ)言編譯預(yù)處理定義的宏。Java應(yīng)用基礎(chǔ)451.整型常量(byte、short、int、long)整型常量可以用來(lái)給整型變數(shù)賦值,可以用十進(jìn)位、八進(jìn)制和十六進(jìn)制來(lái)表示。(1)十進(jìn)位整型常量由0至9的數(shù)字組成,沒(méi)有首碼,不能以0開(kāi)始,沒(méi)有小數(shù)部分。例如:124,-36等。(2)八進(jìn)制整型常量,以0為首碼,其後由0到7的數(shù)字組成,沒(méi)有小數(shù)部分。例如:0332,-0122等。(3)十六進(jìn)制整型常量,以0x或0X為首碼,其後由0到9的數(shù)字和A到F(大小寫(xiě)均可)字母組成,沒(méi)有小數(shù)部分。例如:0x3A,-0X43f等。Java應(yīng)用基礎(chǔ)462.浮點(diǎn)型常量(float、double)浮點(diǎn)型常量有兩種表示方式:(1)十進(jìn)位小數(shù)表示法,它是由整數(shù)部分和小數(shù)部分組成的。如:4.0,33.32等。小數(shù)點(diǎn)兩邊的數(shù)字不能同時(shí)省略且小數(shù)點(diǎn)不能省略。(2)科學(xué)計(jì)數(shù)法表示,它常用來(lái)表示很大或很小的數(shù),如1.2×1026在Java中表示為1.2E26。表示方法是在小數(shù)表示法後加e(或E)及指數(shù)部分。但要注意,e(或E)前面必須有數(shù)字,指數(shù)部分可正可負(fù),但都是整數(shù)(正號(hào)可省略)。例如,4.2E-5,3e6等。Java應(yīng)用基礎(chǔ)473.布爾型常量boolean布爾型常量值只有true和false,true和false必須要小寫(xiě)。true表示“邏輯真”,false表示“邏輯假”。注意,和C/C++語(yǔ)言不同,在Java語(yǔ)言中不能認(rèn)為“非0值或1”是true,“0值”是false。Java應(yīng)用基礎(chǔ)484.字元型常量Java中的字元採(cǎi)用Unicode字元集的編碼方案,是16位的無(wú)符號(hào)整數(shù),占2個(gè)位元組,表示的字元從0~65535。Unicode字元集可以支持各類文字的字元。字元型常量分為一般字元常量和轉(zhuǎn)義字元常量。對(duì)於可輸入字元,用單引號(hào)將字元括起來(lái),如‘a(chǎn)’,‘A’,‘我’等。對(duì)於不可輸入字元,採(cǎi)用轉(zhuǎn)義字元表示。Java應(yīng)用基礎(chǔ)49表2.2轉(zhuǎn)義字元Java應(yīng)用基礎(chǔ)505.字串常量字串並不是Java的基本數(shù)據(jù)類型,它是Java提供的位於java.lang包中的String類,字串常量就是字串類java.lang.String類的一個(gè)對(duì)象,故它可以使用類String中的方法,所有字串常量值都用雙引號(hào)括起來(lái)。需要注意的是null可以簡(jiǎn)單視為一個(gè)引用類型的常量值,表示不引用任何對(duì)象。在Java編碼規(guī)範(fàn)中,規(guī)定null是所謂null類型的唯一值,且規(guī)定null可轉(zhuǎn)換到任何引用類型。Java應(yīng)用基礎(chǔ)512.3.2變數(shù)每個(gè)變數(shù)都要有個(gè)名字,變數(shù)名必須是合法的識(shí)別字,並且最好具有一定的意義,有意義的變數(shù)名可以提高程式的可讀性。比如,要定義一個(gè)表示學(xué)生數(shù)量的變數(shù),用student_num做變數(shù)名要比用k更合適。所有變數(shù)在使用之前必須被定義,格式如下:數(shù)據(jù)類型關(guān)鍵字變數(shù)名[=初始值];Java應(yīng)用基礎(chǔ)52例://x為基本整型intx;//y為浮點(diǎn)數(shù)(單精確度),並且賦給初始值3.14floaty=3.14;//可以在一個(gè)語(yǔ)句中聲明多個(gè)同一類型的變數(shù)longarea,width,length;Java應(yīng)用基礎(chǔ)532.4運(yùn)算符與運(yùn)算式對(duì)各種類型的數(shù)據(jù)進(jìn)行加工的過(guò)程稱為運(yùn)算,表示各種不同運(yùn)算的符號(hào)稱為運(yùn)算符,參與運(yùn)算的數(shù)據(jù)稱為運(yùn)算元。運(yùn)算符的優(yōu)先順序與結(jié)合性如表所示。一個(gè)Java運(yùn)算式是由運(yùn)算元和運(yùn)算符按一定的語(yǔ)法規(guī)則組成的符號(hào)序列。Java應(yīng)用基礎(chǔ)54Java應(yīng)用基礎(chǔ)552.4.1賦值運(yùn)算符和賦值運(yùn)算式1.賦值運(yùn)算符Java中,“=”被稱為賦值運(yùn)算符,它的作用是設(shè)置變數(shù)的值,即將一個(gè)數(shù)據(jù)賦給一個(gè)變數(shù),實(shí)際上是將特定的值寫(xiě)到變數(shù)所對(duì)應(yīng)的記憶體單元中。賦值運(yùn)算符是雙目運(yùn)算符,因?yàn)椤?”兩邊都要有運(yùn)算元?!?”左邊是待賦值的變數(shù),右邊是要賦的值。除了“=”基本賦值運(yùn)算符外,另外還有幾個(gè)複合賦值運(yùn)算符:+=、-=、*=、/=和%=;五個(gè)由位運(yùn)算符和賦值運(yùn)算符組成的複合賦值運(yùn)算符:<<=、>>=、&=、|=、和^=。Java應(yīng)用基礎(chǔ)562.賦值運(yùn)算式我們可以用常量對(duì)變數(shù)賦值,也可以用變數(shù)對(duì)變數(shù)賦值,還可以用任何運(yùn)算式對(duì)變數(shù)賦值。用賦值運(yùn)算符連接起來(lái)的式子稱為賦值運(yùn)算式。賦值運(yùn)算式的值就是被賦值的變數(shù)的值。賦值運(yùn)算式加上分號(hào)就構(gòu)成了賦值語(yǔ)句,是極為常用的Java語(yǔ)句。示例:參看例2.3Java應(yīng)用基礎(chǔ)572.4.2算術(shù)運(yùn)算符和算術(shù)運(yùn)算式1.算術(shù)運(yùn)算符Java提供的算術(shù)運(yùn)算符包括:加(+)、減(-)、乘(*)、除(/)和取餘(%)。算術(shù)運(yùn)算符是雙目運(yùn)算符。利用算術(shù)運(yùn)算符連接起來(lái)的式子稱為算術(shù)運(yùn)算式。2.自增、自減運(yùn)算符++、--Java中還另外提供了兩個(gè)用於算術(shù)運(yùn)算的單目運(yùn)算符:自增運(yùn)算符++和自減運(yùn)算符--。其功能是使變數(shù)的值增1或減1。使用這兩個(gè)運(yùn)算符,可以讓程式更為簡(jiǎn)化、更容易閱讀。++和--運(yùn)算符有一個(gè)特點(diǎn),就是它們既可以位於變數(shù)名的左邊(稱為前自增、前自減),又可以位於變數(shù)名的右邊(後自增、後自減),但結(jié)果卻是不一樣的。++和—運(yùn)算有以下四種情況:Java應(yīng)用基礎(chǔ)58(1)i++:使用i之後,i的值加1,即先取值,後自加。等價(jià)於i=i+1。(2)++i:先使i加1,然後再使用i,即先自加,後取值。等價(jià)於i=i+1。(3)i--:使用i之後,i的值減1,即先取值,後自減。等價(jià)於i=i-1。(4)--i:先使i減1,然後再使用i,即先自減,後取值。等價(jià)於i=i-1。注意:++和--運(yùn)算符只能用於變數(shù),不能用於常量和運(yùn)算式。因?yàn)?+和--蘊(yùn)含著賦值操作。++和--運(yùn)算符經(jīng)常用於迴圈程式設(shè)計(jì)中。Java應(yīng)用基礎(chǔ)592.4.3關(guān)係運(yùn)算符和關(guān)係運(yùn)算式1.關(guān)係運(yùn)算符關(guān)係運(yùn)算符又稱比較運(yùn)算符,因?yàn)殛P(guān)係運(yùn)算實(shí)際上是比較大小的運(yùn)算。Java提供了6種關(guān)係運(yùn)算符:>、>=、<、<=、==、!=。前4種優(yōu)先順序相同,且高於後面的兩種。2.關(guān)係運(yùn)算式用關(guān)係運(yùn)算符連接的式子稱為關(guān)係運(yùn)算式。一般格式為:運(yùn)算式1關(guān)係運(yùn)算符運(yùn)算式2關(guān)係運(yùn)算式的值代表著某種關(guān)係的真假。比如,如果x的值是10,那麼,x>5的值是“真”,而x<1的值是“假”。Java應(yīng)用基礎(chǔ)602.4.4邏輯運(yùn)算符和邏輯運(yùn)算式1.邏輯運(yùn)算符Java提供了3種邏輯運(yùn)算符,&&(與)、||(或)、!(非)。a&&b:只有a與b都為true,結(jié)果才為true,否則為false。a||b:只有a與b都為false,結(jié)果才為false,否則為true。!a:與a的值相反。2.邏輯運(yùn)算式用邏輯運(yùn)算符連接起來(lái)的式子稱為邏輯運(yùn)算式,用於表示複雜的運(yùn)算條件。Java應(yīng)用基礎(chǔ)61有一點(diǎn)需要指出,在邏輯運(yùn)算式求值的過(guò)程中,並不是所有的邏輯運(yùn)算都被執(zhí)行,即在Java中要進(jìn)行所謂的短路計(jì)算。例如:(1)在求解a&&b&&c的值時(shí),只有a的值是真時(shí),才會(huì)計(jì)算b的值;只有a和b均為真時(shí),才會(huì)計(jì)算c的值。如果a為假,則不會(huì)繼續(xù)計(jì)算b和c的值,因?yàn)檎麄€(gè)運(yùn)算式的值已經(jīng)確定了。(2)在求解a||b||c的值時(shí),只有a是假時(shí),才會(huì)計(jì)算b的值;只有a和b均為假時(shí),才會(huì)計(jì)算c的值。如果a是真,就不會(huì)計(jì)算b和c的值,因?yàn)檎麄€(gè)運(yùn)算式的值已經(jīng)確定了。Java編譯程序按照“短路”計(jì)算方式來(lái)生成目標(biāo)代碼。Java應(yīng)用基礎(chǔ)622.4.5條件運(yùn)算符和條件運(yùn)算式條件運(yùn)算符是Java提供的唯一一個(gè)三目運(yùn)算符。用條件運(yùn)算符連接起來(lái)的式子稱為條件運(yùn)算式。條件運(yùn)算式的格式是:運(yùn)算式1?運(yùn)算式2:運(yùn)算式3條件運(yùn)算式的運(yùn)算規(guī)則如下:如果運(yùn)算式1的值為真,那麼整個(gè)條件運(yùn)算式的值就是運(yùn)算式2的值,否則整個(gè)條件運(yùn)算式的值是運(yùn)算式3的值。例:
4>6?3:9//整個(gè)運(yùn)算式的值為9Java應(yīng)用基礎(chǔ)632.4.6位運(yùn)算符和位運(yùn)算式位運(yùn)算符的作用在於對(duì)整數(shù)數(shù)值的二進(jìn)位表示進(jìn)行運(yùn)算,像二進(jìn)位的AND與OR等運(yùn)算。(1)按位求反運(yùn)算符~對(duì)運(yùn)算元的二進(jìn)位數(shù)據(jù)的每一個(gè)二進(jìn)位位都取反,即1變成0,而0變成1。如~8的結(jié)果為-9。(2)位與運(yùn)算符&參與運(yùn)算的兩個(gè)運(yùn)算元,相應(yīng)的二進(jìn)位數(shù)位進(jìn)行位與運(yùn)算。如5&11結(jié)果為1。(3)位或運(yùn)算符|參與運(yùn)算的兩個(gè)運(yùn)算元,相應(yīng)的二進(jìn)位數(shù)位進(jìn)行位或運(yùn)算。如5|11結(jié)果為15。(4)位異或運(yùn)算符^參與運(yùn)算的兩個(gè)運(yùn)算元,相應(yīng)的二進(jìn)位數(shù)位進(jìn)行位異或運(yùn)算。如5^11結(jié)果為14。Java應(yīng)用基礎(chǔ)64(5)保留符號(hào)位的右移運(yùn)算符>>將一個(gè)運(yùn)算元的各個(gè)二進(jìn)位位全部向右移若干位,這個(gè)位數(shù)由右運(yùn)算元來(lái)決定,移到右端的低位被捨棄,左邊空出的位全部用最高位的符號(hào)位來(lái)填充。如5>>1結(jié)果為2。-9>>1,結(jié)果為-5。(6)不保留符號(hào)位的右移運(yùn)算符>>>與>>不同的是,>>>右移後左邊空出的位用0填充。如5>>>1結(jié)果為2。-9>>>1,結(jié)果為2147483643。(7)左移運(yùn)算符<<將一個(gè)運(yùn)算元的所有二進(jìn)位位向左移若干位,右邊空出的位填0。若高位左移後溢出,則捨棄溢出的數(shù)。如5<<1結(jié)果為10。Java應(yīng)用基礎(chǔ)652.5流程控制語(yǔ)句程式控制可以定義為對(duì)程式語(yǔ)句的執(zhí)行順序進(jìn)行的規(guī)定。有三種結(jié)構(gòu):順序結(jié)構(gòu)分支結(jié)構(gòu)迴圈結(jié)構(gòu)為了實(shí)現(xiàn)程式執(zhí)行點(diǎn)的流程控制,Java提供了如下的分支、迴圈語(yǔ)句:分支控制語(yǔ)句包括:if-else、switch-case。迴圈控制語(yǔ)句包括:while、do-while和for。跳轉(zhuǎn)語(yǔ)句:break、return和continue。Java應(yīng)用基礎(chǔ)66除了上面的流程控制語(yǔ)句,還有兩類特殊的語(yǔ)句:(1)異常處理語(yǔ)句:如try-catch-finally、throw等。參見(jiàn)第6章。(2)注釋語(yǔ)句。Java與C/C++之間的差別很細(xì)微,可歸納為兩點(diǎn):(1)在C語(yǔ)言中,條件運(yùn)算式可以是數(shù)值型,而在Java條件語(yǔ)句中,條件運(yùn)算式必須是布爾型,不能是數(shù)值。(2)Java取消了對(duì)goto語(yǔ)句的支持。goto語(yǔ)句的使用一直是程式設(shè)計(jì)者爭(zhēng)論的話題,這是因?yàn)間oto語(yǔ)句的使用不僅降低了程式的可讀性,而且往往會(huì)帶來(lái)一些不可預(yù)測(cè)的錯(cuò)誤。Java應(yīng)用基礎(chǔ)672.5.1順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡(jiǎn)單、最基本的結(jié)構(gòu),在順序結(jié)構(gòu)內(nèi),順序執(zhí)行各個(gè)語(yǔ)句。圖2.1表示了一個(gè)順序結(jié)構(gòu)形式,從圖中可以看出它有一個(gè)入口a點(diǎn),一個(gè)出口b點(diǎn),在結(jié)構(gòu)內(nèi)A框和B框都是順序執(zhí)行的處理框。Java應(yīng)用基礎(chǔ)68空語(yǔ)句、運(yùn)算式語(yǔ)句、複合語(yǔ)句是Java程式依次順序執(zhí)行的語(yǔ)句,故又稱為順序結(jié)構(gòu)??照Z(yǔ)句是僅由分號(hào)構(gòu)成的語(yǔ)句,表示什麼動(dòng)作都不做。一個(gè)運(yùn)算式加上一個(gè)分號(hào)就是一個(gè)運(yùn)算式語(yǔ)句,只有少量的幾種運(yùn)算式才能構(gòu)成運(yùn)算式語(yǔ)句。它們是:由賦值運(yùn)算符構(gòu)成的運(yùn)算式、由++或--構(gòu)成的運(yùn)算式、方法調(diào)用、new運(yùn)算式。標(biāo)號(hào)語(yǔ)句的格式為:識(shí)別字:<語(yǔ)句>其中:<語(yǔ)句>可為任何合法的Java語(yǔ)句。複合語(yǔ)句是指由一對(duì)花括弧{}括起來(lái)的任意數(shù)量的語(yǔ)句,有時(shí)又稱為塊語(yǔ)句或組語(yǔ)句。示例:參看例2.4Java應(yīng)用基礎(chǔ)692.5.2選擇結(jié)構(gòu)1.if語(yǔ)句(1)簡(jiǎn)單if語(yǔ)句if(布爾運(yùn)算式){
語(yǔ)句(組);}其執(zhí)行過(guò)程是:首先計(jì)算布爾運(yùn)算式的值,若為真true,則執(zhí)行塊內(nèi)語(yǔ)句,否則,if語(yǔ)句終止執(zhí)行,即不執(zhí)行塊內(nèi)語(yǔ)句而執(zhí)行if語(yǔ)句後面的其他語(yǔ)句,如圖2.2(a)所示。示例:參看例2.5Java應(yīng)用基礎(chǔ)70(2)if-else語(yǔ)句if(布爾運(yùn)算式){
語(yǔ)句(組)A;}else{
語(yǔ)句(組)B;}其執(zhí)行過(guò)程是:首先計(jì)算布爾運(yùn)算式的值,若為真,則執(zhí)行語(yǔ)句(組)A,否則執(zhí)行語(yǔ)句(組)B,如圖2.2(b)所示。示例:參看例2.6Java應(yīng)用基礎(chǔ)71(3)if語(yǔ)句的嵌套if語(yǔ)句中的任何一個(gè)子句可以是任意可執(zhí)行語(yǔ)句,當(dāng)然也可以是一條if語(yǔ)句,這種情況稱為if語(yǔ)句的嵌套。當(dāng)出現(xiàn)if語(yǔ)句嵌套時(shí),不管書(shū)寫(xiě)格式如何,else都將與它前面最靠近的未曾配對(duì)的if語(yǔ)句相配對(duì),構(gòu)成一條完整的if語(yǔ)句。嵌套的深度沒(méi)有限制,if語(yǔ)句的嵌套可以實(shí)現(xiàn)多重選擇。示例:參看例2.7Java應(yīng)用基礎(chǔ)722.switch語(yǔ)句switch語(yǔ)句是多分支選擇語(yǔ)句,又稱開(kāi)關(guān)語(yǔ)句。
switch語(yǔ)句的一般形式如下:switch(運(yùn)算式){case常量運(yùn)算式1:
語(yǔ)句組1;break;case常量運(yùn)算式2:
語(yǔ)句組2;break;
…case常量運(yùn)算式n:
語(yǔ)句組n;break;default: 語(yǔ)句組n+1;
}Java應(yīng)用基礎(chǔ)732.5.3迴圈結(jié)構(gòu)迴圈結(jié)構(gòu)是指在一定條件下反復(fù)執(zhí)行一個(gè)程式塊的結(jié)構(gòu)。迴圈結(jié)構(gòu)也是只有一個(gè)入口,一個(gè)出口。根據(jù)迴圈條件的不同,迴圈結(jié)構(gòu)分為當(dāng)型迴圈結(jié)構(gòu)和直到型迴圈結(jié)構(gòu)兩種。Java應(yīng)用基礎(chǔ)74當(dāng)型迴圈的結(jié)構(gòu)如圖2.5,其功能是:當(dāng)給定的條件p成立時(shí),執(zhí)行A框操作,執(zhí)行完A操作後,再判斷p條件是否成立,如果成立,再次執(zhí)行A操作,如此重複執(zhí)行A操作,直到判斷p條件不成立才停止迴圈。此時(shí)不執(zhí)行A操作,而從出口b跳出迴圈結(jié)構(gòu)。Java應(yīng)用基礎(chǔ)75直到型迴圈的結(jié)構(gòu)如圖2.6,其功能是,先執(zhí)行A框操作,然後判斷給定條件p是否成立,如果成立,再次執(zhí)行A操作;然後再對(duì)p進(jìn)行判斷,如此反復(fù),直到給定的p條件不成立為止。此時(shí)不再執(zhí)行A框,從出口b跳出迴圈。Java應(yīng)用基礎(chǔ)76Java語(yǔ)言中,實(shí)現(xiàn)迴圈結(jié)構(gòu)的控制語(yǔ)句有while、do~while、for語(yǔ)句。1.while迴圈while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”迴圈結(jié)構(gòu),即先判斷運(yùn)算式,後執(zhí)行語(yǔ)句。其一般形式如下:while(迴圈條件){語(yǔ)句;//循環(huán)體}示例:參看例2.10Java應(yīng)用基礎(chǔ)772.do-while迴圈do-while語(yǔ)句用來(lái)實(shí)現(xiàn)“直到型”迴圈結(jié)構(gòu),即先執(zhí)行循環(huán)體,然後判斷迴圈條件是否成立。其一般形式如下:do{
語(yǔ)句;//循環(huán)體}while(迴圈條件);示例:參看例2.11Java應(yīng)用基礎(chǔ)783.for迴圈for語(yǔ)句是java語(yǔ)言中使用靈活方便的一種迴圈語(yǔ)句,它不僅用於迴圈次數(shù)已知的情況,還能用於迴圈次數(shù)預(yù)先不能確定只給出迴圈結(jié)束條件的情況。for語(yǔ)句的一般形式為:for(運(yùn)算式1;運(yùn)算式2;運(yùn)算式3){語(yǔ)句;//循環(huán)體}示例:參看例2.12Java應(yīng)用基礎(chǔ)794.break、continue、標(biāo)號(hào)、return語(yǔ)句、System.exit()方法Java中可以用break和continue兩個(gè)迴圈跳轉(zhuǎn)語(yǔ)句進(jìn)一步控制迴圈。這兩個(gè)語(yǔ)句的一般格式如下:break[label];//從所在的switch語(yǔ)句、迴圈語(yǔ)句中跳出。continue[label];//跳過(guò)循環(huán)體的剩餘語(yǔ)句,開(kāi)始執(zhí)行下一次迴圈。break和continue可以用在三種迴圈語(yǔ)句中的任意一種。這兩個(gè)語(yǔ)句都可以帶標(biāo)號(hào)使用,也可以不帶標(biāo)號(hào)使用。標(biāo)號(hào)是出現(xiàn)在一個(gè)語(yǔ)句之前的識(shí)別字,標(biāo)號(hào)後面要加一個(gè)冒號(hào),定義如下:label:statement;示例:參看例2.13與2.14Java應(yīng)用基礎(chǔ)80return語(yǔ)句和System.exit()方法return語(yǔ)句用來(lái)從當(dāng)前方法中退出,返回到調(diào)用該方法的語(yǔ)句處,並從緊跟該語(yǔ)句的下一條語(yǔ)句繼續(xù)執(zhí)行。如果在main()方法中執(zhí)行return語(yǔ)句,則使程式執(zhí)行返回到Java運(yùn)行系統(tǒng),因?yàn)镴ava運(yùn)行系統(tǒng)調(diào)用了main()方法。要想從程式的任意地方直接一步到位地退出程式,而不是返回到調(diào)用該方法的語(yǔ)句處,可以使用System.exit()方法。Java應(yīng)用基礎(chǔ)815.迴圈的嵌套一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的迴圈結(jié)構(gòu)稱為迴圈的嵌套,內(nèi)嵌的迴圈中還可以嵌套迴圈,這就是多重迴圈。示例:參看例2.15與2.16(a)(b)(c)Java應(yīng)用基礎(chǔ)822.6Java開(kāi)發(fā)類庫(kù)組成Java提供了豐富的標(biāo)準(zhǔn)類來(lái)幫助程式設(shè)計(jì)者更方便快捷地編寫(xiě)程式,這些標(biāo)準(zhǔn)類組成了類包,主要有:java.langjava.awtjava.appletjava.awt.imagejava.awt.peerjava.iojava.util除了java.lang之外,其餘類包都不是java語(yǔ)言所必須的。Java應(yīng)用基礎(chǔ)831.java.lang本類包中包含了各種定義Java語(yǔ)言時(shí)必須的類,這些類能夠以其他類不能使用的方式訪問(wèn)java的內(nèi)部。任何java程式都將自動(dòng)引入這個(gè)包。其中的類包括:Object類:java中最原始、最重要的類,每個(gè)java類都是它的子類,它實(shí)現(xiàn)了每個(gè)類都必須具有的基本方法?;绢愋桶b器:Boolean,Character,Number,Double,Float,Integer,Long。String類:字串類。Math類:數(shù)學(xué)函數(shù)的集合。執(zhí)行線程:類Thread,ThreadGroup,介面Runable。System類和Runtime類:可以通過(guò)類Runtime和System訪問(wèn)外部系統(tǒng)環(huán)境。System類的兩個(gè)常用功能就是訪問(wèn)標(biāo)準(zhǔn)輸入/輸出流和錯(cuò)誤流、退出程式。異常和錯(cuò)誤:類Exception,Error,介面Throwable。其他類:介面Cloneable、運(yùn)行時(shí)的類等。Java應(yīng)用基礎(chǔ)842.java.appletJavaApplet是Java編程的一個(gè)主要魅力,java.applet類包提供了Applet的運(yùn)行機(jī)制以及一些編寫(xiě)Applet非常有用的方法。3.java.awt本類包是各種窗口環(huán)境的統(tǒng)一介面(AWT代表AbstractWindowsToolkit,即抽象窗口工具包),其中的類使得創(chuàng)建諸如窗口、菜單、滾動(dòng)條、文本區(qū)、按鈕以及複選框等圖形用戶介面(GUI)的元素變得非常容易。4.java.awt.image本類包能夠以獨(dú)立於設(shè)備的方式加載並過(guò)濾位圖圖像。5.java.awt.peerjava.awt.peer是全部awt組件的對(duì)等對(duì)象介面的集合,每個(gè)介面都提供了機(jī)器相關(guān)的基本方法,awt使用這些方法來(lái)實(shí)現(xiàn)GUI,而不必關(guān)心是何種機(jī)器或操作系統(tǒng)。Java應(yīng)用基礎(chǔ)856.java.ioJava的輸入/輸出模式是完全建立在流的基礎(chǔ)之上的。流是一種位元組從一個(gè)地方到另一個(gè)地方的單向流動(dòng),可以把流附加於檔、管道和通信鏈路等。java.io類包中定義的許多種流類通過(guò)繼承的方式進(jìn)行組織,其中也包括一些用來(lái)訪問(wèn)本地檔系統(tǒng)上的檔流類。7.類包用來(lái)完成與網(wǎng)路相關(guān)的功能:URL、WWW連接以及更為通用的Socket網(wǎng)路通信。8.java.utiljava.util類包包含了一些實(shí)用類和有用的數(shù)據(jù)結(jié)構(gòu),如字典(Dictionary)、散列表(Hashtable)、堆疊(Stack)、向量(Vector)以及枚舉類(Enumeration)等,使用它們開(kāi)發(fā)者可以更方便快捷地編程。Java應(yīng)用基礎(chǔ)869.java.rmi包、java.rmi.registry包和java.rmi.server包這三個(gè)包用來(lái)實(shí)現(xiàn)RMl(remotemethodinvocation,遠(yuǎn)程方法調(diào)用)功能。利用RMI功能,用戶程式可以在遠(yuǎn)程電腦(伺服器)上創(chuàng)建對(duì)象,並在本地電腦(客戶機(jī))上使用這個(gè)對(duì)象。10.java.sql包java.sql包是實(shí)現(xiàn)JDBC(Javadatabaseconnection)的類庫(kù)。利用這個(gè)包可以使Java程式具有訪問(wèn)不同種類的資料庫(kù)(如Oracle,Sybase,DB2,SQLServer等)的功能,只要安裝了合適的驅(qū)動(dòng)程式,同一個(gè)Java程式不需修改就可以存取、修改這些不同的資料庫(kù)中的數(shù)據(jù)。JDBC的這種功能,再加上Java程式本身具有的平臺(tái)無(wú)關(guān)性,大大拓寬了Java程式的應(yīng)用範(fàn)圍,尤其是商業(yè)應(yīng)用的適用領(lǐng)域。類和對(duì)象873.1概述3.1.1對(duì)象(object)3.1.2類(class)3.1.3消息(message)3.1.4面向?qū)ο笙到y(tǒng)的特性1.抽象性(abstract) 2.封裝性(encapsulation)3.繼承性(inheritance)4.多態(tài)性(polymorphism)類和對(duì)象883.2類和對(duì)象的定義及使用進(jìn)行Java程式設(shè)計(jì),實(shí)際上就是定義類的過(guò)程。一個(gè)Java根源程式檔往往是由許多個(gè)類組成的。從用戶的角度看,Java根源程式中的類分為兩種:
1.系統(tǒng)定義的類,即Java類庫(kù)?;悾核蠮AVA的類都派生自O(shè)bjectJava的類可組織在包(package)中Java提供的標(biāo)準(zhǔn)類庫(kù)分佈在一系列的包中,如java.lang,java.awt,等,jdk1.1後加入javax.swing等2.用戶自己定義的類。編程的過(guò)程就是繼承基類或標(biāo)準(zhǔn)類而創(chuàng)建、定義特殊子類的過(guò)程類和對(duì)象893.2.1類的定義Java中類包括成員變數(shù)和成員方法兩部分。類的成員變數(shù)可以是基本數(shù)據(jù)類型的數(shù)據(jù)或數(shù)組,也可以是一個(gè)類的實(shí)例;類的方法用於處理該類的數(shù)據(jù)。
1.類的定義格式:[類的修飾字]class類名稱[extends
父類名稱][implements
介面名稱列表]{變數(shù)定義及初始化;方法定義及方法體;}類體類和對(duì)象90類的修飾字:
[public|default(可缺省,非公開(kāi)類)][abstract|final]public:允許其他類(沒(méi)有限制)訪問(wèn)本類,一個(gè)原始檔案僅可以有一個(gè)public類,且與檔同名。default(缺省):可被當(dāng)前包中的其他類訪問(wèn);如果定義時(shí)沒(méi)有public,則所有的類都是friendly;abstract:沒(méi)有實(shí)例的抽象概念類final:不能再被擴(kuò)展,不包含子類的類;易於安全性的實(shí)現(xiàn),或用於創(chuàng)建固定功能的類每個(gè)類都擁有自己的名字空間,即指類及其方法和變數(shù)可以在一定的範(fàn)圍內(nèi)知道彼此的存在,可以使用。父類繼承聲明:extends
父類名(見(jiàn)繼承)實(shí)現(xiàn)介面(interface):implements
介面名關(guān)於類定義的說(shuō)明類和對(duì)象91例:定義圓類//Circle.javapublicclassCircle{privatedoubleradius=1;//圓的半徑
privatestaticintnumberOfObjects=0;//創(chuàng)建的圓的個(gè)數(shù)
//以半徑1創(chuàng)建一個(gè)圓,圓的個(gè)數(shù)加1
publicCircle(){numberOfObjects++;}//以半徑newRadius創(chuàng)建一個(gè)圓,圓的個(gè)數(shù)加1
publicCircle(doublenewRadius){radius=newRadius;numberOfObjects++;}類和對(duì)象92//獲取圓的半徑
publicdoublegetRadius(){returnradius;}//設(shè)置圓的半徑
publicvoidsetRadius(doublenewRadius){radius=(newRadius>=0)?newRadius:0;}//獲取圓的個(gè)數(shù)
publicstaticintgetNumberOfObjects(){returnnumberOfObjects;}//返回圓的面積
publicdoublefindArea(){returnradius*radius*3.14159;}}類和對(duì)象932.類定義中成員變數(shù)的聲明修飾符訪問(wèn)控制符(訪問(wèn)許可權(quán))public:可被所有其他類引用protected:該類自身、子類、同一包中的其他類private:僅可被該類自身引用和修改,不能被其他任何類(包括子類)引用default(缺省):本包中的類[變數(shù)修飾字]變數(shù)數(shù)據(jù)類型變數(shù)名1,變數(shù)名2[=變數(shù)初值]…;[public|protected|private][static][final][transient][volatile]類和對(duì)象94static:類變數(shù)或類字段,對(duì)所有的實(shí)例一致,引用時(shí)首碼可使用類名或?qū)ο竺?,屬於類。final:數(shù)值不變常量,定義同時(shí)應(yīng)對(duì)其進(jìn)行初始化volatile:非同步控制修飾符,表示多個(gè)併發(fā)線程共用的變數(shù),這使得各線程對(duì)該變數(shù)的訪問(wèn)保持一致。transient:與對(duì)象序列化有關(guān)類和對(duì)象953.類定義中方法的聲明訪問(wèn)控制符(許可權(quán)):public、private、protected、default(缺?。方法修飾字]返回類型方法名稱(參數(shù)1,參數(shù)2,…)[throwsexceptionList]{…(statements;)//方法體:方法的內(nèi)容}[public|protected|private][static][final|abstract][native][synchronized]類和對(duì)象96修飾符(Modifier):static:靜態(tài)方法,又稱類方法使用類名或?qū)ο竺鳛槭状a,建議使用類名在方法體中只能使用static變數(shù)和static方法或訪問(wèn)自己的局部變數(shù)abstract:只有介面沒(méi)有語(yǔ)句,要在子類中通過(guò)重新定義(override)來(lái)實(shí)現(xiàn)final:不能被重新定義(override)類和對(duì)象97throws:通告本方法中會(huì)產(chǎn)生的例外(異常)類型,提醒調(diào)用者要對(duì)相應(yīng)的可能例外進(jìn)行處理。當(dāng)執(zhí)行此方法併發(fā)生了例外時(shí),程式會(huì)轉(zhuǎn)入調(diào)用者編制的例外處理程式段。類和對(duì)象983.2.2創(chuàng)建對(duì)象創(chuàng)建一個(gè)類,就創(chuàng)建了一種新的數(shù)據(jù)類型;聲明一個(gè)類的變數(shù),就是聲明了該類的一個(gè)實(shí)例,即對(duì)象。創(chuàng)建對(duì)象包括聲明對(duì)象、實(shí)例化對(duì)象即為對(duì)象分配存儲(chǔ)空間兩步。1.聲明對(duì)象類名對(duì)象名表;例:Circle
circleOne,circleTwo;類和對(duì)象992.建立對(duì)象使用new運(yùn)算符和類的構(gòu)造方法為聲明的對(duì)象分配記憶體空間,如果類中沒(méi)有構(gòu)造方法,系統(tǒng)會(huì)調(diào)用默認(rèn)的無(wú)參構(gòu)造方法。格式:對(duì)象名=new構(gòu)造方法(形參列表);
例如:circleOne=newCircle();//此時(shí)circleOne引用被分配記憶體空間的其實(shí)地址circleTwo=newCircle(2.0);類和對(duì)象1003.2.3對(duì)象的使用在程式中創(chuàng)建對(duì)象的目的是使用對(duì)象。創(chuàng)建一個(gè)對(duì)象就要為對(duì)象的各個(gè)成員變數(shù)分配存儲(chǔ)空間??梢酝ㄟ^(guò)引用對(duì)象的成員來(lái)使用對(duì)象:對(duì)象數(shù)據(jù)成員的引用方式如下:對(duì)象名.數(shù)據(jù)成員名對(duì)象的成員方法的引用方式如下:對(duì)象名.成員方法名(實(shí)際參數(shù)表)示例:參看例3.1類和對(duì)象1013.2.4對(duì)象的清除。Java運(yùn)行時(shí)系統(tǒng)通過(guò)垃圾自動(dòng)回收機(jī)制週期性地釋放無(wú)用對(duì)象所使用的記憶體,完成垃圾的自動(dòng)回收。當(dāng)一個(gè)對(duì)象的引用為空時(shí),該對(duì)象稱為一個(gè)無(wú)用對(duì)象。垃圾收集器以較低優(yōu)先順序在系統(tǒng)空閒週期中執(zhí)行,一次垃圾的收集速度比較慢,在某些情況下,我們也可以通過(guò)調(diào)用System類的gc()方法,即調(diào)用System.gc()顯示執(zhí)行垃圾收集。類和對(duì)象1023.3實(shí)例變數(shù)、實(shí)例方法和類變數(shù)、類方法在類的數(shù)據(jù)成員和方法成員前用static關(guān)鍵字修飾的分別稱為類變數(shù)和類方法,也稱為靜態(tài)變數(shù)和靜態(tài)方法,非靜態(tài)的又分別稱為實(shí)例變數(shù)和實(shí)例方法。在生成每個(gè)類的實(shí)例對(duì)象時(shí),Java運(yùn)行時(shí)系統(tǒng)為每個(gè)對(duì)象分配一塊記憶體,然後可以通過(guò)對(duì)象引用變數(shù)來(lái)訪問(wèn)這些對(duì)象的實(shí)例變數(shù)。不同對(duì)象的實(shí)例變數(shù)是不同的。類和對(duì)象1033.4this關(guān)鍵字關(guān)鍵字this用來(lái)指向當(dāng)前對(duì)象或類的實(shí)例變數(shù)。如果局部變數(shù)與實(shí)例變數(shù)重名,則局部變數(shù)優(yōu)先,同名的實(shí)例變數(shù)或類變數(shù)被隱藏。例: classTestThis{intday=1;voidsetDay(intday){
this.day=day;}}
類和對(duì)象1043.5包包(package)是Java提供的檔(即公共類)的組織方式。一個(gè)包對(duì)應(yīng)一個(gè)檔夾,一個(gè)包中可以包括許多類檔。包中還可以再有子包,稱為包等級(jí)。包的作用有四個(gè):(1)定位類:具有相似功能的類可以放置在同一個(gè)包中,這樣可以很容易地查找定位類。(2)避免命名衝突:在開(kāi)發(fā)由其他程式員共用的可複用類時(shí),會(huì)發(fā)生命名衝突,可以把類放在不同包中,通過(guò)包名引用類可以避免命名衝突。(3)可以方便地分發(fā)軟體。(4)控制類之間的訪問(wèn)(參見(jiàn)第4章訪問(wèn)控制)。注意:包是一個(gè)類名空間,同一個(gè)包中的類和介面(參見(jiàn)第4章)不能重名,不同包中的類可以重名。類和對(duì)象1053.5.1創(chuàng)建包包的創(chuàng)建就是將根源程式檔中的介面和類納入指定的包。一般情況下,Java根源程式由四部分組成:(1)一個(gè)包(package)定義語(yǔ)句(可選項(xiàng))。其作用是將本源檔中的介面和類納入指定包。原始檔案中若有包說(shuō)明語(yǔ)句,必須是第一個(gè)語(yǔ)句;(2)若干個(gè)(import)語(yǔ)句(可選項(xiàng))。其作用是引入本源檔中所需要使用的包;(3)一個(gè)public的類聲明。在一個(gè)原始檔案中只能有一個(gè)public類;(4)若干個(gè)屬於本包的類聲明(可選)。包的定義語(yǔ)句格式:package
包名;類和對(duì)象106例:packagepack1.pack2;創(chuàng)建包就是在當(dāng)前檔夾下創(chuàng)建一個(gè)子檔夾,存放這個(gè)包中包含的所有類和介面的.class檔。packagepack1.pack2;語(yǔ)句中的符號(hào)“.”代表了目錄分隔符號(hào),說(shuō)明這個(gè)語(yǔ)句創(chuàng)建了兩個(gè)檔夾。第一個(gè)是當(dāng)前檔夾下的子檔夾pack1;第二個(gè)是pack1下的子檔夾pack2,當(dāng)前包中的所有類就存放在這個(gè)檔夾裏。類和對(duì)象1073.5.2設(shè)置類路徑包是一種組織代碼的有效手段,包名指出了程式中需要使用的.class檔的所在之處。另一個(gè)能指明.class檔所在的位置是環(huán)境變數(shù)CLASSPATH。在WindowsXP或Windows2000中可以通過(guò)設(shè)置“我的電腦”屬性來(lái)設(shè)置系統(tǒng)的環(huán)境變數(shù)。對(duì)於JavaApplication程式,還可以通過(guò)為Java解釋器設(shè)置參數(shù)來(lái)指定類檔路徑。例如,對(duì)於JDK中的Java解釋器java.exe,有開(kāi)關(guān)參數(shù)-classpath;假設(shè)當(dāng)需要解釋執(zhí)行的test.class檔不在當(dāng)前目錄而在e盤的TEMP目錄下時(shí),可以使用如下的命令行語(yǔ)句:java-classpathe:\tempTest來(lái)運(yùn)行這個(gè)程式。類和對(duì)象1083.5.3包的使用Java提供了豐富的標(biāo)準(zhǔn)類來(lái)幫助程式設(shè)計(jì)者更方便快捷地編寫(xiě)程式,這些標(biāo)準(zhǔn)類組成了類包,主要有:java.langjava.awtjava.appletjava.awt.imagejava.awt.peerjava.iojava.util使用Swing組件進(jìn)行GUI設(shè)計(jì),使用javax.swing包中的類除了java.lang之外,其餘類包都不是java語(yǔ)言所必須的。若要使用,必須進(jìn)行包的導(dǎo)入。類和對(duì)象109將類組織成包的目的是為了更好地利用包中的類。通常一個(gè)類只能引用與它在同一個(gè)包中的類。如果需要使用其他包中的public類,則可以使用如下的幾種方法。(1)在引入的類前加包名例如:pack1.pack2.Format.format(23.4533,2);
(2)用import關(guān)鍵字加載需要使用的類例如上面的語(yǔ)句在程式開(kāi)始處增加了:
importpack1.pack2.Format;語(yǔ)句之後,就可以直接寫(xiě)成:Format.format(23.4533,2);(3)用import關(guān)鍵字加載整個(gè)包importpack1.pack2.*;
類和對(duì)象1103.6內(nèi)部類和匿名類3.6.1內(nèi)部類一個(gè)類被嵌套定義於另一個(gè)類中,稱為內(nèi)部類(InnerClasses)或內(nèi)隱類,包含內(nèi)部類的類稱為外部類。示例:參看例3.5類和對(duì)象1113.6.2匿名類有時(shí)在定義事件處理代碼時(shí),由於代碼短小,不必再明確定義一個(gè)類,可使用匿名內(nèi)部類。匿名內(nèi)部類是final(最終)類,非static類,匿名內(nèi)部類將類的聲明和創(chuàng)建類的實(shí)例一步完成。主要應(yīng)用在事件處理的代碼編寫(xiě)中。類和對(duì)象1123.7訪問(wèn)控制和類的封裝性3.7.1訪問(wèn)控制對(duì)類的成員變數(shù)和成員方法而言,其應(yīng)用範(fàn)圍可以通過(guò)施以一定的訪問(wèn)許可權(quán)來(lái)限定。
同一個(gè)類中同一個(gè)包中不同包中的子類不同包中的非子類
private ★ default ★ ★ protected ★ ★ ★ public ★ ★ ★ ★ 繼承性和多態(tài)性1134.1繼承性類具有繼承性,子類對(duì)父類的繼承關(guān)係體現(xiàn)了現(xiàn)實(shí)世界中特殊和一般的關(guān)係。通過(guò)繼承可以更有效地組織程式結(jié)構(gòu),明確類間關(guān)係,並充分利用已有的類來(lái)完成更複雜、深入的開(kāi)發(fā)。4.1.1派生類的定義Java中的所有類都是java.lang.Object類的子類。Java語(yǔ)言中派生類的定義格式如下:示例:參看例4.1class<子類>extends<唯一的父類名>{<類定義體>}繼承性和多態(tài)性1144.1.2super關(guān)鍵字1.數(shù)據(jù)成員的隱藏?cái)?shù)據(jù)成員的隱藏是指在子類中重新定義一個(gè)與父類中已定義的數(shù)據(jù)成員名完全相同的數(shù)據(jù)成員,即子類擁有了兩個(gè)相同名字的數(shù)據(jù)成員,一個(gè)是繼承父類的,另一個(gè)是自己定義的。當(dāng)子類要操作繼承自父類的同名數(shù)據(jù)成員時(shí),可使用關(guān)鍵字super引導(dǎo)。2.成員方法的覆蓋子類可以重新定義與父類格式完全相同(包括方法名、方法形參的個(gè)數(shù)和類型、方法返回值的類型)的成員方法,實(shí)現(xiàn)對(duì)父類方法的覆蓋。繼承性和多態(tài)性115關(guān)於方法覆蓋只有當(dāng)實(shí)例方法能被訪問(wèn)時(shí),才能進(jìn)行方法覆蓋。私有方法不能被覆蓋.靜態(tài)方法(類方法)能被繼承,但不能被覆蓋。子類在重新定義父類已有的方法時(shí),應(yīng)保持與父類完全相同的方法名、返回值類型和參數(shù)列表,否則就不是方法的覆蓋,而是子類定義自己特有的方法,與父類的方法無(wú)關(guān)。繼承性和多態(tài)性1163.super關(guān)鍵字super表示的是當(dāng)前對(duì)象的直接父類對(duì)象,是當(dāng)前對(duì)象的直接父類對(duì)象的引用。super的使用方法有三種:(1)訪問(wèn)直接父類隱藏的數(shù)據(jù)成員,其使用形式如下:super.數(shù)據(jù)成員(2)調(diào)用直接父類中被覆蓋的成員方法,其使用形式如下:super.成員方法(參數(shù))(3)調(diào)用直接父類的構(gòu)造方法,其使用形式如下:super(參數(shù))示例:參看例4.2繼承性和多態(tài)性1174.1.3protected和final關(guān)鍵字1.protected關(guān)鍵字用protected修飾的成員變數(shù)可以被三種類所引:該類自身、與它在同一個(gè)包中的其他類及在其他包中的該類的子類。2.final關(guān)鍵字使用final關(guān)鍵字可以定義常量。定義類時(shí),在class關(guān)鍵字前加關(guān)鍵字final,表示此類是最終類,不能被其他類繼承,不能做父類。用final修飾成員方法,表示此方法不能被它的子類覆蓋。繼承性和多態(tài)性1183.native關(guān)鍵字native修飾的方法稱為本地方法,此方法使用的目的是為了將其他語(yǔ)言(例如,C、C++、FORTRAN、彙編等)嵌入到Java語(yǔ)言中。這樣可以充分利用已經(jīng)存在的其他語(yǔ)言的程式功能模組,避免重複編程。繼承性和多態(tài)性1194.2多態(tài)性多態(tài)是面向?qū)ο蟪淌皆O(shè)計(jì)語(yǔ)言的一個(gè)重要特性,在Java中,可以在同一類或不同類中定義名稱相同但是操作不同的多個(gè)方法,多態(tài)性指的是運(yùn)行時(shí)判斷應(yīng)該執(zhí)行哪個(gè)方法代碼的能力,這種能力也叫動(dòng)態(tài)綁定。在Java語(yǔ)言中,多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)方法重載實(shí)現(xiàn)的,Java虛擬機(jī)根據(jù)傳遞給方法的參數(shù)個(gè)數(shù)和類型決定調(diào)用哪個(gè)重載方法。繼承性和多態(tài)性120運(yùn)行時(shí)的多態(tài)性是Java多態(tài)性的最重要的體現(xiàn),在Java語(yǔ)言的繼承關(guān)係中,子類對(duì)象與父類對(duì)象之間有一個(gè)重要特性:在任何需要父類對(duì)象的地方,都可以使用子類對(duì)象來(lái)代替,即子類對(duì)象可以作為父類對(duì)象來(lái)使用。一個(gè)對(duì)象可以通過(guò)引用子類的實(shí)例來(lái)調(diào)用子類的方法,通常,方法在父類中定義,在子類中覆蓋,子類中調(diào)用哪個(gè)方法是在運(yùn)行時(shí)決定的,取決於對(duì)象的類型,稱為運(yùn)行時(shí)的多態(tài)性。示例:參看例4.3繼承性和多態(tài)性1214.3抽象類和介面抽象類體現(xiàn)數(shù)據(jù)抽象的思想,是實(shí)現(xiàn)程式多態(tài)性的一種手段。介面則是Java中實(shí)現(xiàn)多重繼承的唯一途徑。4.3.1抽象類抽象類的作用在於將許多有關(guān)的類組織在一起,提供一個(gè)公共的類,即抽象類,而那些被它組織在一起的具體的類做為它的子類由它派生出來(lái)。定義一個(gè)抽象類的格式如下:abstractclassabstractClass{/*類定義體*/}抽象方法是指在返回值類型前加上abstract關(guān)鍵字,且沒(méi)有方法體。格式如下:abstract<返回值類型><抽象方法名>([<形式參數(shù)列表>]);示例:參看例4.4繼承性和多態(tài)性122對(duì)於抽象類與抽象方法的限制(1)凡是用abstract修飾符修飾的類被稱為抽象類。凡是用abstract修飾符修飾的成員方法被稱為抽象方法;(2)抽象類中可以有零個(gè)或多個(gè)抽象方法,也可以包含非抽象的方法;(3)抽象類中可以沒(méi)有抽象方法,但是,有抽象方法的類必須是抽象類;(4)對(duì)於抽象方法來(lái)說(shuō),在抽象類中只指定其方法名及其類型,而不書(shū)寫(xiě)其實(shí)現(xiàn)代碼;(5)抽象類可以派生子類,在抽象類派生的子類中必須實(shí)現(xiàn)抽象類中定義的所有抽象方法;繼承性和多態(tài)性123(6)抽象類不能使用new運(yùn)算符創(chuàng)建對(duì)象,但仍可在抽象類中定義構(gòu)造方法,可由派生類的構(gòu)造方法調(diào)用;(7)abstract和final不能同時(shí)修飾一個(gè)類;(8)abstract不能與private、static、final或native同時(shí)修飾一個(gè)方法;(9)abstract類中不能有private的數(shù)據(jù)成員或成員方法;(10)父類是非抽象類(即具體類),則其子類仍可是抽象類;(11)雖然不能創(chuàng)建抽象類的對(duì)象,但抽象類可以當(dāng)作數(shù)據(jù)類型使用,如作為方法形參類型、返回值類型、數(shù)組元素類型等等。
繼承性和多態(tài)性1244.3.2
介面與C++不同,Java不支持多重繼承,而是用介面實(shí)現(xiàn)比多重繼承更強(qiáng)的功能。介面則把方法的定義和類的層次區(qū)分開(kāi)來(lái),通過(guò)它可以在運(yùn)行時(shí)動(dòng)態(tài)地定位所調(diào)用的方法。同時(shí),介面可以實(shí)現(xiàn)“多重繼承”,且一個(gè)類可實(shí)現(xiàn)多個(gè)介面,正是這些機(jī)制使得介面提供了比多重繼承更簡(jiǎn)單,更靈活,而且更強(qiáng)健的功能。介面就是方法定義和常量值的集合。從本質(zhì)上講,介面是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒(méi)有方法的實(shí)現(xiàn)。繼承性和多態(tài)性1251.聲明介面聲明介面的格式如下:[修飾符]interface介面名[extends父介面名列表]{常量數(shù)據(jù)成員聲明抽象方法聲明}其中:(1)interface是聲明介面的關(guān)鍵字,可以把它看成一個(gè)特殊類;(2)介面名要求符合Java識(shí)別字命名規(guī)則;(3)修飾符有兩種:public和默認(rèn)。public修飾的介面是公共介面,可以被所有的類和介面使用;默認(rèn)修飾符的介面只能被同一個(gè)包中的其他類和介面使用;繼承性和多態(tài)性126(4)父介面列表:介面也具有繼承性。定義一個(gè)介面時(shí)可以通過(guò)extends關(guān)鍵字聲明該介面是某個(gè)已經(jīng)存在的父介面的派生介面,它將繼承父介面的所有屬性和方法。與類的繼承不同的是一個(gè)介面可以有一個(gè)以上的父介面,它們之間用逗號(hào)分隔;(5)常量數(shù)據(jù)成員聲明:常量數(shù)據(jù)成員前可以有也可省略修飾符。修飾符是publicstatic和fina1;介面中的數(shù)據(jù)成員都是用final修飾的常量,寫(xiě)法如下:修飾符數(shù)據(jù)成員類型數(shù)據(jù)成員名=常量值或數(shù)據(jù)成員名=常量值例如:publicfinalstaticdoublePI=3.14159;//等價(jià)於doublePI=3.14159;intSUM=100;//等價(jià)於finalstaticintSUM=100;繼承性和多態(tài)性127(6)介面中沒(méi)有自身的構(gòu)造方法,所有成員方法都是抽象方法;在介面中只能給出這些抽象方法的方法名、返回值和參數(shù)列表,而不能定義方法體,即僅僅規(guī)定了一組資訊交換、傳輸和處理的“介面”。格式如下:返回值類型方法名(參數(shù)列表);繼承性和多態(tài)性1282.介面的實(shí)現(xiàn)介面定義僅僅是實(shí)現(xiàn)某一特定功能的一組功能的對(duì)外介面和規(guī)範(fàn),而不能真正地實(shí)現(xiàn)這個(gè)功能,這個(gè)功能的真正實(shí)現(xiàn)是在“繼承”這個(gè)介面的各個(gè)類中完成的,要由這些類來(lái)具體定義介面中各抽象方法的方法體。一個(gè)類只能繼承一個(gè)父類,但是可實(shí)現(xiàn)多個(gè)介面。類定義的完整格式如下:[<修飾符>]class<類名>[extends<父類名>][implements<介面名1>,<介面名2>,……]{//類定義體}示例:參看例4.5繼承性和多態(tài)性129關(guān)於介面的實(shí)現(xiàn)(1)在類中,用implements關(guān)鍵字就可以調(diào)用介面。一個(gè)類可以調(diào)用多個(gè)介面,這時(shí),在implements後用逗號(hào)隔開(kāi)多個(gè)介面的名字;(2)如果實(shí)現(xiàn)某介面的類不是抽象類,則在類的定義體部分必須實(shí)現(xiàn)指定介面的所有抽象方法,即為所有抽象方法定義方法體,而且方法頭部分應(yīng)該與介面中的定義完全一致,即有完全相同的返回值和參數(shù)列表;(3)如果實(shí)現(xiàn)某介面的類是抽象類,則它可以不實(shí)現(xiàn)該介面所有的方法。(4)介面的抽象方法的訪問(wèn)限制符都己指定為public,所以類在實(shí)現(xiàn)方法時(shí),必須顯式地使用public修飾符,否則編譯系統(tǒng)警告為縮小了介面中定義的方法的訪問(wèn)控制範(fàn)圍。繼承性和多態(tài)性1303.介面和抽象類的區(qū)別Java中所有的類有共同的父類java.lang.Object,但介面沒(méi)有共同的根。介面可以當(dāng)作抽象類使用。它們的區(qū)別如下:(1)介面中的每個(gè)方法,沒(méi)有實(shí)現(xiàn)部分,都是抽象方法;抽象類中可以有具體的方法。(2)介面中的數(shù)據(jù)必須是常量;抽象類可以有各種類型的數(shù)據(jù)。(3)由於定義在介面中的所有方法都是抽象方法,介面中可以省略abstract修飾符;但是抽象類中的抽象方法必須用abstract修飾。繼承性和多態(tài)性1314.類型轉(zhuǎn)換和instanceof運(yùn)算符基本數(shù)據(jù)類型可以進(jìn)行強(qiáng)制或自動(dòng)類型轉(zhuǎn)換,也可以把一個(gè)類的對(duì)象轉(zhuǎn)換為繼承鏈中的另一個(gè)對(duì)象。將子類的實(shí)例轉(zhuǎn)換
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)業(yè)科技園區(qū)運(yùn)營(yíng)管理合同標(biāo)準(zhǔn)3篇
- 二零二五年度林權(quán)登記與不動(dòng)產(chǎn)登記網(wǎng)絡(luò)安全保障合同
- 2025年度智能控制噴錨工程勞務(wù)施工合同標(biāo)準(zhǔn)
- 二零二五年度美術(shù)教育研發(fā)中心美術(shù)教師聘用合同4篇
- 2025年度民間擔(dān)保人文化創(chuàng)意產(chǎn)業(yè)貸款合同模板
- 二零二五年度數(shù)字經(jīng)濟(jì)派遣合同就業(yè)協(xié)議書(shū)范本
- 2025年新能源汽車零部件采購(gòu)及供應(yīng)合同范本2篇
- 2025年度山西旅游行業(yè)勞動(dòng)合同書(shū)范本3篇
- 2025版智能門衛(wèi)服務(wù)與社區(qū)治安巡邏合同3篇
- 2025裝載機(jī)駕駛員聘用合同-裝載機(jī)駕駛員職業(yè)技能鑒定協(xié)議3篇
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(kù)(含答案)
- 《天潤(rùn)乳業(yè)營(yíng)運(yùn)能力及風(fēng)險(xiǎn)管理問(wèn)題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 2024-2025學(xué)年人教版生物八年級(jí)上冊(cè)期末綜合測(cè)試卷
- 2025年九省聯(lián)考新高考 語(yǔ)文試卷(含答案解析)
- 死亡病例討論總結(jié)分析
- 第二章 會(huì)展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 商戶用電申請(qǐng)表
評(píng)論
0/150
提交評(píng)論