




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java平臺(tái)安裝目錄/Contents01020304Java概述JDK的安裝Eclipse安裝與使用第一個(gè)Java程序的編寫(xiě)01Java概述一種高級(jí)計(jì)算機(jī)語(yǔ)言可編寫(xiě)跨平臺(tái)應(yīng)用軟件完全面向?qū)ο笥蒘UN公司(已被Oracle公司收購(gòu))于1995年5月推出簡(jiǎn)單易用、安全可靠應(yīng)用領(lǐng)域廣泛Java概述JavaSE標(biāo)準(zhǔn)版(JavaPlatformStandardEdition)Java的三大技術(shù)平臺(tái)為開(kāi)發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案JavaEE企業(yè)版(JavaPlatformEnterpriseEdition)JavaME小型版(JavaPlatformMicroEdition)為開(kāi)發(fā)企業(yè)級(jí)應(yīng)用程序提供的解決方案為開(kāi)發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)備提供的解決方案Java的三大技術(shù)平臺(tái)02JDK的安裝JavaDevelopmentKit,即Java開(kāi)發(fā)工具包SUN公司提供了一套Java開(kāi)發(fā)環(huán)境整個(gè)Java的核心包括Java編譯器、Java運(yùn)行環(huán)境、Java工具、Java基礎(chǔ)類(lèi)庫(kù)等JDKJREJavaRuntimeEnvironment,即Java運(yùn)行環(huán)境JRE通常已包含在JDK中若僅用于運(yùn)行Java程序,而非Java開(kāi)發(fā),可以直接下載JRE,并在系統(tǒng)中安裝即可。JDK-JRE-JVM的概念javavirtualmachine,即Java虛擬機(jī)整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分所有的java程序會(huì)首先被編譯為.class的類(lèi)文件,這種類(lèi)文件可以在虛擬機(jī)上執(zhí)行。JVMJDK、JRE及JVM的關(guān)系JDK(JavaDevelopmentKit)是針對(duì)Java開(kāi)發(fā)員的產(chǎn)品,是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境JRE、Java工具和Java基礎(chǔ)類(lèi)庫(kù)。JRE(JavaRuntimeEnvironment)是運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實(shí)現(xiàn)及Java核心類(lèi)庫(kù)。JVM(JavaVirtualMachine)是Java虛擬機(jī)的縮寫(xiě),是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,能夠運(yùn)行以Java語(yǔ)言寫(xiě)作的軟件程序。JDK的安裝Oracle公司提供了多種操作系統(tǒng)的JDK,可以根據(jù)自己使用的操作系統(tǒng),從Oracle官方網(wǎng)站下載相應(yīng)的JDK安裝文件,具體步驟如下:雙擊從Oracle官網(wǎng)下載的安裝文件,進(jìn)入JDK安裝界面單擊【下一步】按鈕進(jìn)入JDK的自定義安裝界面在自定義安裝功能和路徑界面選擇安裝目錄,或直接采用默認(rèn)的安裝目錄,單擊【確定】按鈕在對(duì)所有的安裝選項(xiàng)做出選擇后,單擊【下一步】按鈕開(kāi)始安裝JDK。安裝完畢后會(huì)進(jìn)入安裝完成界面單擊【關(guān)閉】按鈕,關(guān)閉當(dāng)前窗口,完成JDK安裝12345JDK的安裝JDK安裝完畢后,會(huì)在硬盤(pán)上生成一個(gè)目錄,該目錄被稱(chēng)為JDK安裝目錄。如下圖所示:03Eclipse的安裝與使用112345為了提高程序的開(kāi)發(fā)效率,大部分軟件開(kāi)發(fā)人員都是使用集成開(kāi)發(fā)工具(IDE)來(lái)進(jìn)行Java程序開(kāi)發(fā)的。EclipseJava開(kāi)發(fā)工具——Eclipse在實(shí)際項(xiàng)目開(kāi)發(fā)過(guò)程中,由于使用記事本編寫(xiě)代碼速度慢,且不容易排錯(cuò),所以程序員很少用它來(lái)編寫(xiě)代碼。在本課程中,將使用一種Java常用的IDE集成開(kāi)發(fā)環(huán)境:EclipseEclipse由IBM開(kāi)發(fā),功能完整且成熟;開(kāi)源、可擴(kuò)展Eclipse具有強(qiáng)大的代碼編排功能,可以幫助程序開(kāi)發(fā)人員完成語(yǔ)法修正、代碼修正、補(bǔ)全文字、信息提示等編碼工作Eclipse的安裝Eclipse是針對(duì)Java編程的集成開(kāi)發(fā)環(huán)境(IDE),登錄Eclipse官網(wǎng)免費(fèi)下載。Eclipse安裝時(shí)只需將下載好的ZIP包解壓保存到指定目錄下(例如D:\eclipse)就可以使用了。Eclipse的啟動(dòng)非常簡(jiǎn)單,直接在Eclipse安裝文件中運(yùn)行eclipse.exe文件即可,接下來(lái)會(huì)出現(xiàn)如下圖所示的啟動(dòng)界面。Eclipse的使用Eclipse啟動(dòng)完成后會(huì)彈出一個(gè)對(duì)話框,提示選擇工作空間(Workspace),如下圖所示:工作空間用于保存Eclipse中創(chuàng)建的項(xiàng)目和相關(guān)設(shè)置。此處使用Eclipse提供的默認(rèn)路徑為工作空間,也可以單擊【Browse】按鈕來(lái)更改,工作空間設(shè)置完成后,單擊【OK】按鈕即可。
注意:Eclipse每次啟動(dòng)都會(huì)出現(xiàn)選擇工作空間的對(duì)話框,如果不想每次都選擇工作空間,可以將此圖【Usethisasthedefaultanddonotaskagain】復(fù)選框選中,這就相當(dāng)于為Eclipse工具選擇了默認(rèn)的工作空間,再次啟動(dòng)時(shí)將不再出現(xiàn)提示對(duì)話框。Eclipse的使用在Eclipse歡迎界面單擊關(guān)閉歡迎界面窗口,就進(jìn)入Eclipse工作臺(tái)界面,Eclipse工作臺(tái)主要由標(biāo)題欄、菜單欄、工具欄、透視圖四部分組成,如下圖所示:03第一個(gè)Java程序的編寫(xiě)第一個(gè)Java程序的編寫(xiě)通過(guò)前面的學(xué)習(xí),讀者對(duì)Eclipse開(kāi)發(fā)工具應(yīng)該有了一個(gè)基本的認(rèn)識(shí)。接下來(lái)通過(guò)Eclipse創(chuàng)建一個(gè)Java程序,并實(shí)現(xiàn)在控制臺(tái)上打印“HelloWorld!”,具體步驟如下:新建Java項(xiàng)目在當(dāng)前項(xiàng)目中新建一個(gè)包在當(dāng)前包中新建一個(gè)Java類(lèi)在類(lèi)文件中編寫(xiě)main()方法,并在方法中編寫(xiě)一條輸出語(yǔ)句:
System.out.println(“HelloWorld”);01020304運(yùn)行當(dāng)前的類(lèi)文件在控制臺(tái)查看結(jié)果變量與常量目錄/Contents0102030405Java代碼的基本格式Java中的關(guān)鍵字Java中的常量Java中的變量數(shù)據(jù)類(lèi)型及類(lèi)型轉(zhuǎn)換01Java代碼的基本格式Java代碼的基本格式Java中的程序代碼都必須放在一個(gè)類(lèi)中。類(lèi)需要使用class關(guān)鍵字定義,在class前面可以有一些修飾符,格式如下:注意:(1)Java中的程序代碼可分為結(jié)構(gòu)定義語(yǔ)句和功能執(zhí)行語(yǔ)句,其中,結(jié)構(gòu)定義語(yǔ)句用于聲明一個(gè)類(lèi)或方法,功能執(zhí)行語(yǔ)句用于實(shí)現(xiàn)具體的功能。(2)每條功能執(zhí)行語(yǔ)句的最后都必須用分號(hào)(;)結(jié)束。(3)Java語(yǔ)言嚴(yán)格區(qū)分大小寫(xiě)。Java中的標(biāo)識(shí)符在編程過(guò)程中,經(jīng)常需要在程序中定義一些符號(hào)來(lái)標(biāo)記一些名稱(chēng),如,包名、類(lèi)名、方法名、參數(shù)名、變量名等,這些符號(hào)被稱(chēng)為標(biāo)識(shí)符。標(biāo)識(shí)符可以由任意順序的大小寫(xiě)字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,但不能以數(shù)字開(kāi)頭,不能是Java中的關(guān)鍵字。定義標(biāo)識(shí)符時(shí)還應(yīng)該遵循以下規(guī)則:1、包名所有字母一律小寫(xiě)。例如:cn.itcast.test。2、類(lèi)名和接口名每個(gè)單詞的首字母都要大寫(xiě)。如:ArrayList、Iterator。3、常量名所有字母都大寫(xiě),單詞之間用下劃線連接。例如:DAY_OF_MONTH。4、變量名和方法名的第一個(gè)單詞首字母小寫(xiě),從第二個(gè)單詞開(kāi)始每個(gè)單詞首字母大寫(xiě)。例如:lineNumber、getLineNumber。5、在程序中,應(yīng)該盡量使用有意義的英文單詞來(lái)定義標(biāo)識(shí)符,使得程序便于閱讀。例如使用userName表示用戶(hù)名,password表示密碼。02Java中的關(guān)鍵字Java中的關(guān)鍵字關(guān)鍵字是編程語(yǔ)言里事先定義好并賦予了特殊含義的單詞,也稱(chēng)作保留字。和其它語(yǔ)言一樣,Java中保留了許多關(guān)鍵字,例如,class、public等。下面列舉的是Java中所有的關(guān)鍵字。03Java中的常量Java中的常量常量就是在程序中固定不變的值,是不能改變的數(shù)據(jù)。在Java中,常量包括整型常量、浮點(diǎn)數(shù)常量、布爾常量、字符常量等。整型常量:整數(shù)類(lèi)型的數(shù)據(jù)。例:125浮點(diǎn)型常量:就是在數(shù)學(xué)中用到的小數(shù),分為float單精度浮點(diǎn)數(shù)和double雙精度浮點(diǎn)數(shù)兩種類(lèi)型。例:2.36字符常量:用于表示一個(gè)字符,用一對(duì)單引號(hào)(‘’)引起來(lái),它可以是英文字母、數(shù)字、標(biāo)點(diǎn)符號(hào)、以及一些特殊字符。例:’k’字符串常量:用于表示一串連續(xù)的字符,一個(gè)字符串常量要用一對(duì)英文半角格式的雙引號(hào)(“”)引起來(lái)?!眐ing”布爾常量:即布爾型的兩個(gè)值true和false,用于區(qū)分真與假。例:truenull常量:只有一個(gè)值null,表示對(duì)象的引用為空。04Java中的變量Java中的變量計(jì)算機(jī)使用內(nèi)存來(lái)存儲(chǔ)計(jì)算時(shí)所使用的數(shù)據(jù)。程序運(yùn)行期間,隨時(shí)可能產(chǎn)生一些臨時(shí)數(shù)據(jù),應(yīng)用程序會(huì)將這些數(shù)據(jù)保存在一些內(nèi)存單元中,這些內(nèi)存單元我們稱(chēng)之為變量。每個(gè)內(nèi)存單元都用一個(gè)標(biāo)識(shí)符來(lái)標(biāo)識(shí),也就是變量名;內(nèi)存單元中存儲(chǔ)的數(shù)據(jù)就是變量的值。數(shù)據(jù)各式各樣,要先根據(jù)數(shù)據(jù)的類(lèi)型為它申請(qǐng)一塊合適的空間Java中的變量房間房間名字房間類(lèi)型入住的客人變量變量名變量類(lèi)型變量值對(duì)應(yīng)變量的聲明語(yǔ)法1
數(shù)據(jù)類(lèi)型變量名;
變量名=值;
舉例: intage; age=19;語(yǔ)法2
數(shù)據(jù)類(lèi)型變量名=值;
舉例: intage=19;變量的賦值左下圖第二行代碼的作用就是為變量賦值,在執(zhí)行第二行代碼時(shí),程序首先取出變量x的值,與3相加后,將結(jié)果賦值給變量y,此時(shí)變量x和y在內(nèi)存中的狀態(tài)發(fā)生了變化,如圖所示。05數(shù)據(jù)類(lèi)型及類(lèi)型轉(zhuǎn)換變量的數(shù)據(jù)類(lèi)型Java是一門(mén)強(qiáng)類(lèi)型的編程語(yǔ)言,它對(duì)變量的數(shù)據(jù)類(lèi)型有嚴(yán)格的限定。在定義變量時(shí)必須聲明變量的類(lèi)型,在為變量賦值時(shí)必須賦予和變量同一種類(lèi)型的值,否則程序會(huì)報(bào)錯(cuò)。變量的數(shù)據(jù)類(lèi)型1、整數(shù)類(lèi)型變量用來(lái)存儲(chǔ)整數(shù)數(shù)值,即沒(méi)有小數(shù)部分的值。整數(shù)類(lèi)型分為4種不同的類(lèi)型:字節(jié)型(byte)、短整型(short)、整型(int)和長(zhǎng)整型(long)。占用空間指的是不同類(lèi)型的變量分別占用的內(nèi)存大小取值范圍是變量存儲(chǔ)的值不能超出的范圍為一個(gè)long類(lèi)型的變量賦值時(shí)需要注意一點(diǎn),所賦值的后面要加上一個(gè)字母“L”(或小寫(xiě)“l(fā)”),說(shuō)明賦值為long類(lèi)型。變量的數(shù)據(jù)類(lèi)型2、浮點(diǎn)數(shù)類(lèi)型變量浮點(diǎn)數(shù)類(lèi)型變量用來(lái)存儲(chǔ)小數(shù)數(shù)值。浮點(diǎn)數(shù)類(lèi)型分為兩種:?jiǎn)尉雀↑c(diǎn)數(shù)(float)、雙精度浮點(diǎn)數(shù)(double),double型所表示的浮點(diǎn)數(shù)比f(wàn)loat型更精確。在取值范圍中,E表示以10為底的指數(shù),E后面的“+”號(hào)和“-”號(hào)代表正指數(shù)和負(fù)指數(shù),例如1.4E-45表示1.4*10-45。在為一個(gè)float類(lèi)型的變量賦值時(shí)需要注意一點(diǎn),所賦值的后面一定要加上字母“F”(或“f”),而為double類(lèi)型的變量賦值時(shí),可以在所賦值的后面加上字符“D”(或“d”),也可不加。在程序中也可以為一個(gè)浮點(diǎn)數(shù)類(lèi)型變量賦予一個(gè)整數(shù)數(shù)值.變量的數(shù)據(jù)類(lèi)型3、字符類(lèi)型變量用于存儲(chǔ)一個(gè)單一字符,在Java中用char表示。每個(gè)char類(lèi)型的字符變量都會(huì)占用2個(gè)字節(jié)。賦值時(shí),要用英文半角格式的單引號(hào)('')把字符括起來(lái),如'a',也可以賦值為0~65535范圍內(nèi)的整數(shù),計(jì)算機(jī)會(huì)自動(dòng)將這些整數(shù)轉(zhuǎn)化為所對(duì)應(yīng)的字符,如數(shù)值97對(duì)應(yīng)的字符為'a'。變量的數(shù)據(jù)類(lèi)型4、布爾類(lèi)型變量布爾類(lèi)型變量用來(lái)存儲(chǔ)布爾值,在Java中用boolean表示,該類(lèi)型的變量只有兩個(gè)值,即true和false。具體示例如下:數(shù)據(jù)的類(lèi)型轉(zhuǎn)換當(dāng)把一種數(shù)據(jù)類(lèi)型的值賦給另一種數(shù)據(jù)類(lèi)型的變量時(shí),需要進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換。根據(jù)轉(zhuǎn)換方式的不同,數(shù)據(jù)類(lèi)型轉(zhuǎn)換可分為兩種:自動(dòng)類(lèi)型轉(zhuǎn)換強(qiáng)制類(lèi)型轉(zhuǎn)換數(shù)據(jù)的類(lèi)型轉(zhuǎn)換1、自動(dòng)類(lèi)型轉(zhuǎn)換也叫隱式類(lèi)型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類(lèi)型在轉(zhuǎn)換的過(guò)程中不需要顯式地進(jìn)行聲明。要實(shí)現(xiàn)自動(dòng)類(lèi)型轉(zhuǎn)換,必須同時(shí)滿(mǎn)足兩個(gè)條件,第一是兩種數(shù)據(jù)類(lèi)型彼此兼容,第二是目標(biāo)類(lèi)型的取值范圍大于源類(lèi)型的取值范圍。數(shù)據(jù)的類(lèi)型轉(zhuǎn)換1、自動(dòng)類(lèi)型轉(zhuǎn)換整數(shù)類(lèi)型之間可以實(shí)現(xiàn)轉(zhuǎn)換,如byte類(lèi)型的數(shù)據(jù)可以賦值給short、int、long類(lèi)型的變量,short、char類(lèi)型的數(shù)據(jù)可以賦值給int、long類(lèi)型的變量,int類(lèi)型的數(shù)據(jù)可以賦值給long類(lèi)型的變量整數(shù)類(lèi)型轉(zhuǎn)換為float類(lèi)型,如byte、char、short、int類(lèi)型的數(shù)據(jù)可以賦值給float類(lèi)型的變量。其它類(lèi)型轉(zhuǎn)換為double類(lèi)型,如byte、char、short、int、long、float類(lèi)型的數(shù)據(jù)可以賦值給double類(lèi)型的變量。數(shù)據(jù)的類(lèi)型轉(zhuǎn)換2、強(qiáng)制類(lèi)型轉(zhuǎn)換強(qiáng)制類(lèi)型轉(zhuǎn)換也叫顯式類(lèi)型轉(zhuǎn)換,指的是兩種數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換需要進(jìn)行顯式地聲明。當(dāng)兩種類(lèi)型彼此不兼容,或者目標(biāo)類(lèi)型取值范圍小于源類(lèi)型時(shí),自動(dòng)類(lèi)型轉(zhuǎn)換無(wú)法進(jìn)行,這時(shí)就需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。強(qiáng)制類(lèi)型轉(zhuǎn)換的格式如下所示:Java中的運(yùn)算符目錄/Contents0102030405算數(shù)運(yùn)算符賦值運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符運(yùn)算符的優(yōu)先級(jí)01算術(shù)運(yùn)算符算數(shù)運(yùn)算符算術(shù)運(yùn)算符就是用來(lái)處理四則運(yùn)算的符號(hào),這是最簡(jiǎn)單、最常用的運(yùn)算符號(hào)。算數(shù)運(yùn)算符(1)在進(jìn)行自增(++)和自減(--)的運(yùn)算時(shí),如果運(yùn)算符放在操作數(shù)的前面則是先進(jìn)行自增或自減運(yùn)算,再進(jìn)行其它運(yùn)算。反之,如果運(yùn)算符放在操作數(shù)的后面則是先進(jìn)行其它運(yùn)算再進(jìn)行自增或自減運(yùn)算。算術(shù)運(yùn)算符看上去比較簡(jiǎn)單,也很容易理解,但在實(shí)際使用時(shí)有很多需要注意的問(wèn)題,具體如下:(2)在進(jìn)行除法運(yùn)算時(shí),當(dāng)除數(shù)和被除數(shù)都為整數(shù)時(shí),得到的結(jié)果也是一個(gè)整數(shù)。如果除法運(yùn)算有小數(shù)參與,得到的結(jié)果會(huì)是一個(gè)小數(shù)。(3)在進(jìn)行取模(%)運(yùn)算時(shí),運(yùn)算結(jié)果的正負(fù)取決于被模數(shù)(%左邊的數(shù))的符號(hào),與模數(shù)(%右邊的數(shù))的符號(hào)無(wú)關(guān)。02賦值運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符的作用就是將常量、變量或表達(dá)式的值賦給某一個(gè)變量,表中列出了Java中的賦值運(yùn)算符及用法。賦值運(yùn)算符在賦值運(yùn)算符的使用中,需要注意以下幾個(gè)問(wèn)題:(1)在Java中可以通過(guò)一條賦值語(yǔ)句對(duì)多個(gè)變量進(jìn)行賦值。(2)除了“=”,其它的都是特殊的賦值運(yùn)算符,以“+=”為例,x+=3就相當(dāng)于x=x+3,首先會(huì)進(jìn)行加法運(yùn)算x+3,再將運(yùn)算結(jié)果賦值給變量x。-=、*=、/=、%=賦值運(yùn)算符都可依此類(lèi)推。03比較運(yùn)算符比較運(yùn)算符比較運(yùn)算符用于對(duì)兩個(gè)數(shù)值或變量進(jìn)行比較,其結(jié)果是一個(gè)布爾值,即true或false。比較運(yùn)算符在使用時(shí)需要注意一個(gè)問(wèn)題,不能將比較運(yùn)算符“==”誤寫(xiě)成賦值運(yùn)算符“=”。04邏輯運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符用于對(duì)布爾型的數(shù)據(jù)進(jìn)行操作,其結(jié)果仍是一個(gè)布爾型。邏輯運(yùn)算符在使用邏輯運(yùn)算符的過(guò)程中,需要注意以下幾個(gè)細(xì)節(jié):(1)邏輯運(yùn)算符可以針對(duì)結(jié)果為布爾值的表達(dá)式進(jìn)行運(yùn)算。如:x>3&&y!=0。(2)運(yùn)算符“&”和“&&”都表示與操作,當(dāng)且僅當(dāng)運(yùn)算符兩邊的操作數(shù)都為true時(shí),其結(jié)果才為true,否則結(jié)果為false。當(dāng)運(yùn)算符“&”和“&&”的右邊為表達(dá)式時(shí),兩者在使用上還有一定的區(qū)別。在使用“&”進(jìn)行運(yùn)算時(shí),不論左邊為true或者false,右邊的表達(dá)式都會(huì)進(jìn)行運(yùn)算。如果使用“&&”進(jìn)行運(yùn)算,當(dāng)左邊為false時(shí),右邊的表達(dá)式不會(huì)進(jìn)行運(yùn)算,因此“&&”被稱(chēng)作短路與。(3)運(yùn)算符“|”和“||”都表示或操作,當(dāng)運(yùn)算符兩邊的操作數(shù)任何一邊的值為true時(shí),其結(jié)果為true,當(dāng)兩邊的值都為false時(shí),其結(jié)果才為false。同與操作類(lèi)似,“||”表示短路或,當(dāng)運(yùn)算符“||”的左邊為true時(shí),右邊的表達(dá)式不會(huì)進(jìn)行運(yùn)算。(4)運(yùn)算符“^”表示異或操作,當(dāng)運(yùn)算符兩邊的布爾值相同時(shí)(都為true或都為false),其結(jié)果為false。當(dāng)兩邊布爾值不相同時(shí),其結(jié)果為true。05運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)在對(duì)一些比較復(fù)雜的表達(dá)式進(jìn)行運(yùn)算時(shí),要明確表達(dá)式中所有運(yùn)算符參與運(yùn)算的先后順序,把這種順序稱(chēng)作運(yùn)算符的優(yōu)先級(jí)。分支結(jié)構(gòu)-1if語(yǔ)句目錄/Contents010203單分支if語(yǔ)句雙分支if…else…語(yǔ)句多分支if…elseif……else語(yǔ)句01單分支if語(yǔ)句單分支if語(yǔ)句if語(yǔ)句是指如果滿(mǎn)足某種條件,就進(jìn)行某種處理,其語(yǔ)法格式如下所示:上述語(yǔ)法格式中,判斷條件是一個(gè)布爾值,當(dāng)值為true時(shí),才會(huì)執(zhí)行{}中的語(yǔ)句。單分支if語(yǔ)句if語(yǔ)句的執(zhí)行流程如下圖所示。02雙分支if…else……語(yǔ)句雙分支if…else……語(yǔ)句if…else語(yǔ)句是指如果滿(mǎn)足某種條件,就進(jìn)行某種處理,否則就進(jìn)行另一種處理,其語(yǔ)法格式如下所示:雙分支if…else……語(yǔ)句if…else語(yǔ)句的執(zhí)行流程如下圖所示。雙分支if…else……語(yǔ)句在Java中有一種特殊的運(yùn)算叫做三元運(yùn)算,它和if-else語(yǔ)句類(lèi)似,語(yǔ)法如下:三元運(yùn)算通常用于對(duì)某個(gè)變量進(jìn)行賦值,當(dāng)判斷條件成立時(shí),運(yùn)算結(jié)果為表達(dá)式1的值,否則結(jié)果為表達(dá)式2的值。03多分支if…elseif……else語(yǔ)句多分支if…elseif……else語(yǔ)句if…elseif…else語(yǔ)句用于對(duì)多個(gè)條件進(jìn)行判斷,進(jìn)行多種不同的處理,其語(yǔ)法格式如下所示:多分支if…elseif……else語(yǔ)句if…elseif…else語(yǔ)句的執(zhí)行流程如下圖所示:分支結(jié)構(gòu)-2switch語(yǔ)句Switch條件語(yǔ)句switch語(yǔ)句也是一種很常見(jiàn)的選擇語(yǔ)句。和if條件語(yǔ)句不同,它只能針對(duì)某個(gè)表達(dá)式的值做出判斷,從而決定執(zhí)行哪一段代碼。使用switch關(guān)鍵字來(lái)描述一個(gè)表達(dá)式,使用case關(guān)鍵字來(lái)描述和表達(dá)式結(jié)果比較的目標(biāo)值,當(dāng)表達(dá)式的值和某個(gè)目標(biāo)值匹配時(shí),會(huì)執(zhí)行對(duì)應(yīng)case下的語(yǔ)句,switch語(yǔ)句的基本語(yǔ)法見(jiàn)右圖:Switch條件語(yǔ)句例如,在程序中使用數(shù)字1~7表示周一到周日如果想根據(jù)某個(gè)輸入的數(shù)字輸出中文格式的星期值,可以通過(guò)右邊所示的代碼來(lái)實(shí)現(xiàn)。Switch條件語(yǔ)句switchcase語(yǔ)句有如下規(guī)則:switch語(yǔ)句中的變量類(lèi)型可以是:byte、short、int或者char。從JavaSE7開(kāi)始,switch支持字符串String類(lèi)型了,同時(shí)case標(biāo)簽必須為字符串常量或字面量。switch語(yǔ)句可以擁有多個(gè)case語(yǔ)句。每個(gè)case后面跟一個(gè)要比較的值和冒號(hào)。case語(yǔ)句中的值的數(shù)據(jù)類(lèi)型必須與變量的數(shù)據(jù)類(lèi)型相同,而且只能是常量。當(dāng)變量的值與case語(yǔ)句的值相等時(shí),那么case語(yǔ)句之后的語(yǔ)句開(kāi)始執(zhí)行,直到break語(yǔ)句出現(xiàn)才會(huì)跳出switch語(yǔ)句。當(dāng)遇到break語(yǔ)句時(shí),switch語(yǔ)句終止。程序跳轉(zhuǎn)到switch語(yǔ)句后面的語(yǔ)句執(zhí)行。case語(yǔ)句不必須要包含break語(yǔ)句。如果沒(méi)有break語(yǔ)句出現(xiàn),程序會(huì)繼續(xù)執(zhí)行下一條case語(yǔ)句,直到出現(xiàn)break語(yǔ)句。switch語(yǔ)句可以包含一個(gè)default分支,該分支一般是switch語(yǔ)句的最后一個(gè)分支(可以在任何位置,但建議在最后一個(gè))。default在沒(méi)有case語(yǔ)句的值和變量值相等的時(shí)候執(zhí)行。default分支不需要break語(yǔ)句。循環(huán)結(jié)構(gòu)-1while和do…while…語(yǔ)句目錄/Contents0102while循環(huán)語(yǔ)句do…while…語(yǔ)句03while與do…while…的區(qū)別01while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句while語(yǔ)句和if條件語(yǔ)句有點(diǎn)類(lèi)似,都是根據(jù)條件判斷來(lái)決定是否執(zhí)行后面的代碼,區(qū)別在于,while循環(huán)語(yǔ)句會(huì)反復(fù)地進(jìn)行條件判斷,只要條件成立,{}內(nèi)的執(zhí)行語(yǔ)句就會(huì)執(zhí)行,直到條件不成立,while循環(huán)結(jié)束。while循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下所示:while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句的執(zhí)行流程如下圖所示。02do…while…語(yǔ)句do…while…循環(huán)語(yǔ)句do…while循環(huán)語(yǔ)句和while循環(huán)語(yǔ)句功能類(lèi)似先執(zhí)行一次循環(huán)體,然后在判斷布爾表達(dá)式是不是true,如果是就繼續(xù)執(zhí)行循環(huán)體,在判斷布爾表達(dá)式,直到為false就結(jié)束循環(huán)。while循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下所示:do…while…循環(huán)語(yǔ)句do…while循環(huán)語(yǔ)句的執(zhí)行流程如下圖所示。03while與do…while…的區(qū)別while與do…while…的區(qū)別while是先判斷在執(zhí)行如果判斷不成立,就不會(huì)執(zhí)行;do…while…是先執(zhí)行再判斷,不管判斷是否成立都會(huì)執(zhí)行一次inta=8;
while(a<10){
System.out.println(“a的值為:”+a);
}System.out.println(程序結(jié)束”);輸出結(jié)果:程序結(jié)束inta=8;
do{
System.out.println(“a的值為:”+a);
}
while(a<10);System.out.println(程序結(jié)束”);輸出結(jié)果:a的值為8
程序結(jié)束循環(huán)結(jié)構(gòu)-2for語(yǔ)句目錄/Contents0102for循環(huán)語(yǔ)句循環(huán)嵌套語(yǔ)句01for循環(huán)語(yǔ)句for循環(huán)語(yǔ)句for循環(huán)語(yǔ)句是最常用的循環(huán)語(yǔ)句,一般用在循環(huán)次數(shù)已知的情況下,其語(yǔ)法格式如下所示:在上述語(yǔ)法格式中,for后面的()中包括三部分內(nèi)容,初始化表達(dá)式、循環(huán)條件和操作表達(dá)式,它們之間用“;”分隔,{}中的執(zhí)行語(yǔ)句為循環(huán)體for循環(huán)語(yǔ)句如果用①表示初始化表達(dá)式、②表示循環(huán)條件、③表示操作表達(dá)式、④表示循環(huán)體,則for循環(huán)的執(zhí)行流程如下所示:02循環(huán)嵌套語(yǔ)句循環(huán)嵌套語(yǔ)句嵌套循環(huán)是指在一個(gè)循環(huán)語(yǔ)句的循環(huán)體中再定義一個(gè)循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)。while、do…while、for循環(huán)語(yǔ)句都可以進(jìn)行嵌套,并且它們之間也可以互相嵌套,如最常見(jiàn)的在for循環(huán)中嵌套for循環(huán),格式如下:循環(huán)結(jié)構(gòu)-3跳轉(zhuǎn)語(yǔ)句目錄/Contents0102break語(yǔ)句continue語(yǔ)句02break與continue的區(qū)別01break語(yǔ)句break語(yǔ)句跳轉(zhuǎn)語(yǔ)句用于實(shí)現(xiàn)循環(huán)過(guò)程中流程的跳轉(zhuǎn),Java中的跳轉(zhuǎn)語(yǔ)句有break和continue。break語(yǔ)句:直接跳出當(dāng)前循環(huán)體(while、for、dowhile)或程序塊(switch)。其中switch…case…執(zhí)行時(shí),一定會(huì)先進(jìn)行匹配,匹配成功返回當(dāng)前case的值,再根據(jù)是否有break,判斷是否繼續(xù)輸出,或是跳出判斷。一旦執(zhí)行break,整個(gè)switch語(yǔ)句立刻結(jié)束。用在循環(huán)語(yǔ)句中時(shí),一旦執(zhí)行,整個(gè)循環(huán)結(jié)束。for
(int
i=
0;i<
5;i++){
if
(i==
2){
System.out.println(“跳出for循環(huán)");
break;
}
System.out.println(i);}System.out.println(“程序結(jié)束”);02continue語(yǔ)句continue語(yǔ)句continue語(yǔ)句:用在循環(huán)語(yǔ)句中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。一旦執(zhí)行,立刻跳過(guò)當(dāng)前循環(huán)剩余內(nèi)容,馬上開(kāi)始下一次循環(huán)。for
(int
i=
0;i<
5;i++){
if
(i==
2){
System.out.println(“跳出本次循環(huán),進(jìn)行下一次循環(huán)");
continue;
}System.out.println(i);
}
System.out.println(“程序結(jié)束”);
03break與continue的區(qū)別break與continue的區(qū)別前面的例子,運(yùn)行后的結(jié)果比較:在break測(cè)試中,當(dāng)i==2,直接跳出了for循環(huán),不再執(zhí)行之后的循環(huán)測(cè)試continue時(shí),當(dāng)i==3,直接跳過(guò)了continue之后的輸出語(yǔ)句,進(jìn)入下一次循環(huán)。因此,break與continue的區(qū)別如下:break是跳出來(lái)整個(gè)循環(huán),不會(huì)再執(zhí)行接下來(lái)的循環(huán)。continue至少跳過(guò)一次循環(huán),后面的循環(huán)如果滿(mǎn)足條件,依舊會(huì)執(zhí)行。方法情境引入需求:假設(shè)有一個(gè)游戲程序,程序在運(yùn)行過(guò)程中,要不斷地發(fā)射炮彈。發(fā)射炮彈的動(dòng)作需要編寫(xiě)100行的代碼,在每次實(shí)現(xiàn)發(fā)射炮彈的地方都需要重復(fù)地編寫(xiě)這100行代碼,這樣程序會(huì)變得很臃腫,可讀性也非常差。方法概述情境引入為了解決代碼重復(fù)編寫(xiě)的問(wèn)題,可以將發(fā)射炮彈的代碼提取出來(lái),放在一個(gè){}中,并為這段代碼起個(gè)名字,這樣在每次發(fā)射炮彈的地方通過(guò)這個(gè)名字來(lái)調(diào)用發(fā)射炮彈的代碼就可以了。上述過(guò)程中,所提取出來(lái)的代碼可以被看作是程序中定義的一個(gè)方法,程序在需要發(fā)射炮彈時(shí)調(diào)用該方法即可。方法概述方法的定義及格式完成特定功能的一段代碼方法:修飾符返回值類(lèi)型方法名(參數(shù)類(lèi)型參數(shù)名1,參數(shù)類(lèi)型參數(shù)名2…){
方法體; return返回值;}格式:方法格式的解釋說(shuō)明修飾符
publicstatic返回值類(lèi)型
用于限定返回值的數(shù)據(jù)類(lèi)型方法名
一個(gè)名稱(chēng)要符合命名規(guī)則,用于調(diào)用方法參數(shù)類(lèi)型
限定調(diào)用方法時(shí)傳入?yún)?shù)的數(shù)據(jù)類(lèi)型方法格式的解釋說(shuō)明參數(shù)名
一個(gè)變量名,接收調(diào)用方法時(shí)傳入的參數(shù)方法體
完成功能的代碼return
結(jié)束方法以及返回方法指定類(lèi)型的值
返回值
由return帶回的結(jié)果,返回給調(diào)用者方法案例返回值類(lèi)型明確功能結(jié)果的數(shù)據(jù)類(lèi)型參數(shù)列表明確有幾個(gè)參數(shù),以及參數(shù)的類(lèi)型如何寫(xiě)一個(gè)方法呢?兩個(gè)明確案例:求兩個(gè)整型數(shù)據(jù)之和有返回值的方法練習(xí)練習(xí)一:鍵盤(pán)錄入兩個(gè)數(shù)據(jù),返回兩個(gè)數(shù)中的較大值練習(xí)二:鍵盤(pán)錄入兩個(gè)數(shù)據(jù),比較兩個(gè)數(shù)是否相等有返回值的方法調(diào)用單獨(dú)調(diào)用,沒(méi)有意義輸出調(diào)用,有意義,但不推薦,因?yàn)椴灰欢ㄐ枰呀Y(jié)果輸出賦值調(diào)用,推薦方式方法注意事項(xiàng)方法不調(diào)用不執(zhí)行方法與方法是平級(jí)關(guān)系,不能嵌套定義方法定義的時(shí)候參數(shù)之間用逗號(hào)隔開(kāi)方法調(diào)用的時(shí)候不用再傳遞數(shù)據(jù)類(lèi)型如果方法有明確的返回值,一定要有return帶回一個(gè)值沒(méi)有返回值的方法調(diào)用沒(méi)有返回值的方法就是返回值類(lèi)型為void的方法只能單獨(dú)調(diào)用返回值為void類(lèi)型的方法練習(xí)練習(xí)一:鍵盤(pán)錄入行數(shù)和列數(shù),輸出對(duì)應(yīng)的星形練習(xí)二:鍵盤(pán)錄入一個(gè)數(shù)據(jù)n(1<=n<=9),輸出對(duì)應(yīng)的nn乘法表方法的重載在同一個(gè)類(lèi)中,允許存在一個(gè)以上的同名方法,只要它們的參數(shù)個(gè)數(shù)或者參數(shù)類(lèi)型不同即可。方法重載概述方法重載方法重載方法重載特點(diǎn)與返回值類(lèi)型無(wú)關(guān),只看方法名和參數(shù)列表在調(diào)用時(shí),虛擬機(jī)通過(guò)參數(shù)列表的不同來(lái)區(qū)分同名方法方法重載案例比較兩個(gè)數(shù)據(jù)是否相等。參數(shù)類(lèi)型分別為兩個(gè)byte類(lèi)型,兩個(gè)short類(lèi)型,兩個(gè)int類(lèi)型,兩個(gè)long類(lèi)型,并在main方法中進(jìn)行測(cè)試方法重載數(shù)組一維數(shù)組情境引入數(shù)組概述需求:現(xiàn)在需要統(tǒng)計(jì)某班級(jí)學(xué)生的《Java程序設(shè)計(jì)》課程成績(jī)情況,例如計(jì)算該門(mén)課程的平均成績(jī)、找到最高分等。假設(shè)該班級(jí)有50名學(xué)生。intstu1=95;intstu2=89;intstu3=79;intstu4=64;intstu5=76;intstu6=88;……avg=(stu1+stu2+stu3+stu4+stu5…+stu50)/5050個(gè)變量50個(gè)變量太繁瑣數(shù)組概述數(shù)組概念數(shù)組是存儲(chǔ)同一種數(shù)據(jù)類(lèi)型多個(gè)元素的集合。也可以看成是一個(gè)容器。數(shù)組既可以存儲(chǔ)基本數(shù)據(jù)類(lèi)型,也可以存儲(chǔ)引用數(shù)據(jù)類(lèi)型。數(shù)組概念數(shù)組定義格式格式1:數(shù)據(jù)類(lèi)型[]數(shù)組名;格式2:數(shù)據(jù)類(lèi)型數(shù)組名[];數(shù)組初始化Java中的數(shù)組必須先初始化,然后才能使用。所謂初始化:就是為數(shù)組中的數(shù)組元素分配內(nèi)存空間,并為每個(gè)數(shù)組元素賦值。數(shù)組初始化數(shù)組的初始化方式動(dòng)態(tài)初始化:初始化時(shí)只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組分配初始值。靜態(tài)初始化:初始化時(shí)指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度。數(shù)組初始化數(shù)據(jù)類(lèi)型[]數(shù)組名=new數(shù)據(jù)類(lèi)型[數(shù)組長(zhǎng)度];格式:創(chuàng)建數(shù)組對(duì)象int[]arrs=newint[3];解釋?zhuān)憾x了一個(gè)int類(lèi)型的數(shù)組,數(shù)組名稱(chēng)為arrs,這個(gè)數(shù)組中可以存放3個(gè)int類(lèi)型的值。示例1:動(dòng)態(tài)初始化:初始化時(shí)只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組分配初始值。數(shù)組長(zhǎng)度其實(shí)就是數(shù)組中元素的個(gè)數(shù)數(shù)組元素的獲取數(shù)組名[索引]索引其實(shí)就是每個(gè)元素的編號(hào),從0開(kāi)始,最大索引是數(shù)組的長(zhǎng)度-1。格式:Java中的內(nèi)存分配Java程序在運(yùn)行時(shí),需要在內(nèi)存中的分配空間。為了提高運(yùn)算效率,就對(duì)空間進(jìn)行了不同區(qū)域的劃分,因?yàn)槊恳黄瑓^(qū)域都有特定的處理數(shù)據(jù)方式和內(nèi)存管理方式。Java中的內(nèi)存分配棧堆方法區(qū)本地方法區(qū)寄存器存儲(chǔ)局部變量存儲(chǔ)new關(guān)鍵字創(chuàng)建的對(duì)象面向?qū)ο蟛糠种v和系統(tǒng)相關(guān)給CPU使用Java中的內(nèi)存圖解數(shù)組元素默認(rèn)值數(shù)據(jù)類(lèi)型默認(rèn)初始化值byte,short,int,long0float,double0.0char‘\u0000’booleanfalse引用類(lèi)型null數(shù)組的賦值定義一個(gè)數(shù)組,輸出該數(shù)組元素值。給數(shù)組元素賦值,再次輸出該數(shù)組元素值。示例2:數(shù)組元素的賦值數(shù)組的賦值定義第一個(gè)數(shù)組,定義完畢后,給數(shù)組元素賦值。賦值完畢后,在輸出數(shù)組名稱(chēng)和元素。定義第二個(gè)數(shù)組,定義完畢后,給數(shù)組元素賦值。賦值完畢后,在輸出數(shù)組名稱(chēng)和元素。定義第三個(gè)數(shù)組,把第一個(gè)數(shù)組的地址值賦值給它。(注意類(lèi)型一致),通過(guò)第三個(gè)數(shù)組的名稱(chēng)去把元素重復(fù)賦值。最后,再次輸出第一個(gè)數(shù)組數(shù)組名稱(chēng)和元素。示例22:數(shù)組地址賦值數(shù)組初始化數(shù)據(jù)類(lèi)型[]數(shù)組名=new數(shù)據(jù)類(lèi)型[]{元素1,元素2,…};格式:int[]arr=newint[]{1,2,3};解釋?zhuān)憾x了一個(gè)int類(lèi)型的數(shù)組,這個(gè)數(shù)組中可以存放3個(gè)int類(lèi)型的值,并且值分別是1,2,3。簡(jiǎn)化的寫(xiě)法int[]arr={1,2,3};示例3:靜態(tài)初始化:初始化時(shí)指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度。數(shù)組操作常見(jiàn)的兩個(gè)問(wèn)題數(shù)組索引越界常見(jiàn)問(wèn)題ArrayIndexOutOfBoundsException訪問(wèn)了數(shù)組中不存在的索引??罩羔槷惓ullPointerException數(shù)組引用沒(méi)有指向?qū)嶓w,卻在操作實(shí)體中的元素。示例4:在程序中演示數(shù)組的常用操作依次輸出數(shù)組中的每一個(gè)元素?cái)?shù)組的遍歷根據(jù)鍵盤(pán)錄入索引,查找對(duì)應(yīng)星期數(shù)組查表法獲取數(shù)組中的最大值最小值數(shù)組獲取最值查找指定元素在數(shù)組中第一次出現(xiàn)的索引數(shù)組元素查找數(shù)組常用操作數(shù)組二維數(shù)組情境引入二維數(shù)組概述需求:我們計(jì)算機(jī)軟件技術(shù)專(zhuān)業(yè)每個(gè)班有很多個(gè)學(xué)生,所以,可以用數(shù)組來(lái)存儲(chǔ),而我們又同時(shí)有很多個(gè)班。這個(gè)也應(yīng)該用一個(gè)數(shù)組來(lái)存儲(chǔ)。如何來(lái)表示這樣的數(shù)據(jù)呢?Java就提供了二維數(shù)組供我們使用。二維數(shù)組其實(shí)就是一個(gè)元素為一維數(shù)組的數(shù)組。數(shù)據(jù)類(lèi)型[][]變量名=new數(shù)據(jù)類(lèi)型[m][n];m表示這個(gè)二維數(shù)組有多少個(gè)一維數(shù)組n表示每一個(gè)一維數(shù)組的元素個(gè)數(shù)格式1:二維數(shù)組定義格式二維數(shù)組定義格式舉例:int[][]arr=newint[3][2];定義了一個(gè)二維數(shù)組arr這個(gè)二維數(shù)組有3個(gè)一維數(shù)組,名稱(chēng)是arr[0],arr[1],arr[2]每個(gè)一維數(shù)組有2個(gè)元素,可以通過(guò)arr[m][n]來(lái)獲取,表示獲取第m+1個(gè)一維數(shù)組的第n+1個(gè)元素int[][]arr=newint[3][];arr[0]=newint[2];arr[1]=newint[3]arr[2]=newint[1];舉例:二維數(shù)組定義格式數(shù)據(jù)類(lèi)型[][]變量名=new數(shù)據(jù)類(lèi)型[m][];m表示這個(gè)二維數(shù)組有多少個(gè)一維數(shù)組沒(méi)有直接給出一維數(shù)組元素個(gè)數(shù),可動(dòng)態(tài)給出格式2:格式3:二維數(shù)組定義格式簡(jiǎn)化版格式:舉例:數(shù)據(jù)類(lèi)型[][]變量名=new數(shù)據(jù)類(lèi)型[][]{{元素…},{元素…},{元素…}};數(shù)據(jù)類(lèi)型[][]變量名={{元素…},{元素…},{元素…}};int[][]arr={{1,2,3},{4,5},{6}};公司年銷(xiāo)售額求和某公司按照季度和月份統(tǒng)計(jì)的數(shù)據(jù)如下:?jiǎn)挝?萬(wàn)元)第一季度:22,66,44第二季度:77,33,88第三季度:25,45,65第四季度:11,66,99二維數(shù)組遍歷——練習(xí)類(lèi)與對(duì)象類(lèi)與對(duì)象關(guān)系
我們學(xué)習(xí)編程語(yǔ)言,就是為了模擬現(xiàn)實(shí)世界的事物,實(shí)現(xiàn)信息化。比如:去超市買(mǎi)東西的計(jì)費(fèi)系統(tǒng),去銀行辦業(yè)務(wù)的系統(tǒng)。類(lèi)與對(duì)象關(guān)系
我們?nèi)绾伪硎疽粋€(gè)現(xiàn)實(shí)世界事物呢?屬性就是該事物的描述信息行為就是該事物能夠做什么
舉例:學(xué)生事物類(lèi)與對(duì)象關(guān)系一組相關(guān)的屬性和行為的集合類(lèi):該類(lèi)事物的具體體現(xiàn)對(duì)象:類(lèi)
學(xué)生對(duì)象學(xué)生張三舉例:類(lèi)的定義現(xiàn)實(shí)世界的事物屬性
人的身高,體重等行為
人可以學(xué)習(xí),吃飯等Java中用class描述事物成員變量
就是事物的屬性成員方法
就是事物的行為定義類(lèi)——定義類(lèi)的成員成員變量成員方法)類(lèi)與對(duì)象案例學(xué)生類(lèi)(講解):手機(jī)類(lèi)(學(xué)生練習(xí))如何定義按照事物到類(lèi)的過(guò)程一步步分析如何使用創(chuàng)建對(duì)象:類(lèi)名對(duì)象名=new類(lèi)名();對(duì)象名.成員變量對(duì)象名.成員方法對(duì)象內(nèi)存圖一個(gè)對(duì)象的基本初始化過(guò)程一個(gè)對(duì)象的內(nèi)存圖類(lèi)與對(duì)象成員變量、局部變量與構(gòu)造方法成員變量與局部變量的區(qū)別成員變量
類(lèi)中方法外局部變量
方法內(nèi)或者方法聲明上在類(lèi)中的位置不同成員變量
隨著對(duì)象的存在而存在,隨著對(duì)象的消失而消失局部變量隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失生命周期不同成員變量
堆內(nèi)存局部變量
棧內(nèi)存在內(nèi)存中的位置不同成員變量
有默認(rèn)的初始化值局部變量
沒(méi)有默認(rèn)的初始化值,必須先定義,賦值,才能使用。初始化值不同成員變量和局部變量的區(qū)別構(gòu)造方法給對(duì)象的數(shù)據(jù)進(jìn)行初始化作用:方法名與類(lèi)名相同沒(méi)有返回值類(lèi)型,連void都沒(méi)有沒(méi)有具體的返回值格式:構(gòu)造方法如果你不提供構(gòu)造方法,系統(tǒng)會(huì)給出默認(rèn)構(gòu)造方法如果你提供了構(gòu)造方法,系統(tǒng)將不再提供構(gòu)造方法也是可以重載的注意事項(xiàng):一個(gè)基本類(lèi)的標(biāo)準(zhǔn)代碼寫(xiě)法
類(lèi)成員變量構(gòu)造方法無(wú)參構(gòu)造方法帶參構(gòu)造方法成員方法getXxx()setXxx()給成員變量賦值的方式無(wú)參構(gòu)造方法+setXxx()帶參構(gòu)造方法一個(gè)基本類(lèi)的標(biāo)準(zhǔn)代碼案例標(biāo)準(zhǔn)的學(xué)生類(lèi)(講解)加入一個(gè)方法show(),輸出學(xué)生對(duì)象的成員變量信息。標(biāo)準(zhǔn)的手機(jī)類(lèi)(練習(xí))注意目前的代碼是為了練習(xí)的一種標(biāo)準(zhǔn)格式給成員變量賦值有兩種方式,可以只寫(xiě)一種如果不單獨(dú)獲取數(shù)據(jù),可以不寫(xiě)getXxx()方法類(lèi)的初始化過(guò)程Students=newStudent();在內(nèi)存中做了哪些事情?加載Student.class文件進(jìn)內(nèi)存在棧內(nèi)存為s開(kāi)辟空間在堆內(nèi)存為學(xué)生對(duì)象開(kāi)辟空間對(duì)學(xué)生對(duì)象的成員變量進(jìn)行默認(rèn)初始化對(duì)學(xué)生對(duì)象的成員變量進(jìn)行顯示初始化通過(guò)構(gòu)造方法對(duì)學(xué)生對(duì)象的成員變量賦值學(xué)生對(duì)象初始化完畢,把對(duì)象地址賦值給s變量面向?qū)ο缶毩?xí)練習(xí)1:定義一個(gè)類(lèi)Demo,其中定義一個(gè)求兩個(gè)數(shù)據(jù)和的方法,定義一個(gè)測(cè)試了Test,進(jìn)行測(cè)試。練習(xí)2:定義一個(gè)長(zhǎng)方形類(lèi),定義求周長(zhǎng)和面積的方法,然后定義一個(gè)測(cè)試了Test2,進(jìn)行測(cè)試。練習(xí)3:定義一個(gè)員工類(lèi),自己分析出幾個(gè)成員,然后給出成員變量,構(gòu)造方法,getXxx()/setXxx()方法,以及一個(gè)顯示所有成員信息的方法。并測(cè)試。練習(xí)4:定義一個(gè)類(lèi)MyMath,提供基本的加減乘除功能,然后進(jìn)行測(cè)試。封裝封裝概述隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問(wèn)方式封裝:提高代碼的復(fù)用性。提高程序的安全性。好處:將不需要對(duì)外提供的內(nèi)容都隱藏起來(lái)。把屬性隱藏,提供公共方法對(duì)其訪問(wèn)。原則:private關(guān)鍵字一個(gè)權(quán)限修飾符??尚揎棾蓡T(成員變量和成員方法)被private修飾的成員只在本類(lèi)中才能訪問(wèn)。private關(guān)鍵字:把成員變量用private修飾提供對(duì)應(yīng)的getXxx()/setXxx()方法private的應(yīng)用:案例演示this關(guān)鍵字代表所在類(lèi)的對(duì)象引用this:局部變量名稱(chēng)與成員變量名稱(chēng)沖突什么時(shí)候使用this呢?static關(guān)鍵字可以修飾成員變量和成員方法static:
隨著類(lèi)的加載而加載優(yōu)先于對(duì)象存在被類(lèi)的所有對(duì)象共享判斷是否使用靜態(tài)關(guān)鍵字的條件可以通過(guò)類(lèi)名調(diào)用特點(diǎn):static關(guān)鍵字
在靜態(tài)方法中是沒(méi)有this關(guān)鍵字的靜態(tài)方法只能訪問(wèn)靜態(tài)的成員變量和靜態(tài)的成員方法注意事項(xiàng):靜態(tài)的內(nèi)存圖靜態(tài)的內(nèi)容存在于方法區(qū)的靜態(tài)區(qū)靜態(tài)變量和成員變量的區(qū)別所屬不同靜態(tài)變量屬于類(lèi),所以也稱(chēng)為為類(lèi)變量成員變量屬于對(duì)象,所以也稱(chēng)為實(shí)例變量(對(duì)象變量)內(nèi)存中位置不同靜態(tài)變量存儲(chǔ)于方法區(qū)的靜態(tài)區(qū)成員變量存儲(chǔ)于堆內(nèi)存內(nèi)存出現(xiàn)時(shí)間不同
靜態(tài)變量隨著類(lèi)的加載而加載,隨著類(lèi)的消失而消失
成員變量隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失調(diào)用不同
靜態(tài)變量可以通過(guò)類(lèi)名調(diào)用,也可以通過(guò)對(duì)象調(diào)用
成員變量只能通過(guò)對(duì)象名調(diào)用代碼塊局部代碼塊
聲明在方法中;限定變量的作用域;用于提高內(nèi)存利用率構(gòu)造代碼塊
聲明在類(lèi)中方法外;每次調(diào)用構(gòu)造方法前,都會(huì)先執(zhí)行構(gòu)造代碼塊。作用:可以把多個(gè)構(gòu)造方法中的共同代碼放到一起,對(duì)對(duì)象進(jìn)行初始化。靜態(tài)代碼塊
聲明在類(lèi)中方法外,并加上static修飾;用于給類(lèi)進(jìn)行初始化,在類(lèi)加載的時(shí)候就執(zhí)行,并且只執(zhí)行一次。同步代碼塊代碼塊:使用{}括起來(lái)的代碼根據(jù)其位置和聲明的不同,可以分為代碼塊——課堂練習(xí)先看程序,再寫(xiě)程序的執(zhí)行結(jié)果。classStudent{ static{ System.out.println("Student靜態(tài)代碼塊"); }
{ System.out.println("Student構(gòu)造代碼塊"); }
publicStudent(){ System.out.println("Student構(gòu)造方法"); }}代碼塊——課堂練習(xí)先看程序,再寫(xiě)程序的執(zhí)行結(jié)果。classStudentDemo{ static{ System.out.println("我是StudentDemo類(lèi)中的靜態(tài)代碼塊"); }
publicstaticvoidmain(String[]args){ System.out.println("我是main方法");
Students1=newStudent(); Students2=newStudent(); }}第4章面向?qū)ο缶幊汤^承情境引入我們?cè)谧鍪虑榈臅r(shí)候,如果在現(xiàn)有一定基礎(chǔ)之上再創(chuàng)作新的內(nèi)容,就會(huì)比較輕松一些。
在程序開(kāi)發(fā)中,我們?cè)鯓硬拍芴岣叽a的可重用性,從而達(dá)到提高效率的目的呢?生活中的繼承生活中,繼承的例子隨處可見(jiàn)167動(dòng)物食草動(dòng)物食肉動(dòng)物誰(shuí)是父類(lèi)?誰(shuí)是子類(lèi)?能說(shuō)出繼承的特點(diǎn)嗎?繼承需要符合的關(guān)系:父類(lèi)更通用、子類(lèi)更具體生活中的繼承子類(lèi)具有父類(lèi)的一般特性(包括屬性和行為),以及自身特殊的特性168巴士是汽車(chē)嗎?卡車(chē)是汽車(chē)嗎?出租車(chē)是汽車(chē)嗎?最大載客數(shù)量報(bào)站引擎數(shù)量外觀顏色剎車(chē)加速汽車(chē)最大載重量卸貨所屬公司最大載客數(shù)量打發(fā)票屬性行為請(qǐng)問(wèn):出租車(chē)包含哪些屬性和行為呢?為什么需要繼承?開(kāi)發(fā)教師類(lèi),其中教師分為Java教師以及.NET教師,各自的要求如下:Java教師屬性:姓名、所屬教研室方法:授課(步驟:打開(kāi)Eclipse、實(shí)施理論課授課)、自我介紹.NET教師屬性:姓名、所屬教研室方法:授課(步驟:打開(kāi)Visualstudio2005、實(shí)施理論課授課)、自我介紹169請(qǐng)問(wèn):以下這個(gè)解決方案中存在著什么問(wèn)題?170publicclassDotNetTeacher{privateStringname;//教師姓名privateStringdepartment;//教研室publicDotNetTeacher(StringmyName,StringmyDepat){name=myName;department=myDepart;}publicvoidgiveLession(){System.out.println("啟動(dòng)VisualStudio2005");System.out.println("知識(shí)點(diǎn)講解");System.out.println("總結(jié)提問(wèn)");}publicvoidintroduction(){ System.out.println("大家好!我是" +department+"的"+name+".");}}publicclassJavaTeacher{privateStringname;//教師姓名privateStringdepartment;//教研室publicJavaTeacher(StringmyName,StringmyDepart){name=myName;department=myDepart;}publicvoidgiveLession(){System.out.println("啟動(dòng)
Eclipse");System.out.println("知識(shí)點(diǎn)講解");System.out.println("總結(jié)提問(wèn)");}publicvoidintroduction(){ System.out.println("大家好!我是" +department+"的"+name+".");}}代碼存在重復(fù),違背了“writeonce,onlyonce”的原則如何改進(jìn)?有沒(méi)有可能建立繼承關(guān)系,讓子類(lèi)自動(dòng)繼承父類(lèi)的屬性和方法?171Java教師是教師嗎?.NET教師是教師嗎?publicclassTeacher{privateStringname;//教師姓名privateStringdepartment;//教研室publicTeacher(StringmyName,StringmyDepart){name=myName;department=myDepart;}publicvoidgiveLesson(){System.out.println("知識(shí)點(diǎn)講解");System.out.println("總結(jié)提問(wèn)");}publicvoidintroduction(){ System.out.println("大家好!我是“
+department+"的"+name+"。");}}現(xiàn)在,所有子類(lèi)中相同的代碼都抽取到父類(lèi)中了屬
性行
為姓名教研室授課自我介紹教師Java教師.NET教師為什么需要繼承4-4172publicclassJavaTeacher2extendsTeacher{publicJavaTeacher2(StringmyName,StringmyDepart){super(myName,myDepart);}publicvoidgiveLesson(){System.out.println("啟動(dòng)Eclipse");super.giveLesson();}}publicclassDotNetTeacher2extendsTeacher{publicDotNetTeacher2(StringmyName,StringmyDepart){super(myName,myDepart);}publicvoidgiveLesson(){System.out.println("啟動(dòng)VisualStudio.NET");super.giveLesson();}}使用繼承,可以有效實(shí)現(xiàn)代碼復(fù)用子類(lèi)自動(dòng)繼承父類(lèi)的屬性和方法,子類(lèi)中不再存在重復(fù)代碼如何實(shí)現(xiàn)繼承?在Java語(yǔ)言中,用extends關(guān)鍵字來(lái)表示一個(gè)類(lèi)繼承了另一個(gè)類(lèi),例如:173publicclassJavaTeacher2
extends
AccpTeacher{//其余代碼省略}在父類(lèi)中只定義一些通用的屬性與方法,例如:publicclassTeacher{privateStringname;//教師姓名privateStringdepartment;//所在教研室publicTeacher(StringmyName,StringmyDepart){//初始化屬性值}publicvoidgiveLesson(){//授課方法的具體實(shí)現(xiàn)}publicvoidintroduction(){//自我介紹方法的具體實(shí)現(xiàn)
}}如何實(shí)現(xiàn)繼承子類(lèi)自動(dòng)繼承父類(lèi)的屬性和方法,子類(lèi)中可以定義特定的屬性和方法174publicclassTeacher{Stringname;//教師姓名Stringdepartment;//所在教研室publicTeacher(StringmyName,StringmyDepart){//初始化屬性值}publicvoidgiveLesson(){ //授課方法的具體實(shí)現(xiàn)}publicvoidintroduction(){ //自我介紹方法的具體實(shí)現(xiàn)
}}publicclassJavaTeacher2extendsTeacher{publicJavaTeacher2(StringmyName,StringmyDepart){super(myName,myDepart);}publicvoidgiveLesson(){System.out.println("啟動(dòng)Eclipse");super.giveLesson();}}由于giveLesson()方法與父類(lèi)的實(shí)現(xiàn)有所不同,因此重寫(xiě)了該方法方法重寫(xiě):子類(lèi)和父類(lèi)的方法具有相同的名稱(chēng)、參數(shù)列表、返回類(lèi)型父類(lèi)中的屬性和方法可以被子類(lèi)繼承如何實(shí)現(xiàn)繼承?子類(lèi)的構(gòu)造方法中,通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法175publicclassJavaTeacher2extendsTeacher{publicJavaTeacher2(StringmyName,StringmyDepart){super(myName,myDepart);}}方法重寫(xiě)后,通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的方法publicclassJavaTeacher2extendsTeacher{publicvoidgiveLesson(){System.out.println("啟動(dòng)Eclipse");super.giveLesson();}}通過(guò)調(diào)用父類(lèi)的構(gòu)造方法,完成對(duì)屬性值的初始化一切類(lèi)的“祖先”——Object在Java中,所有的Java類(lèi)都直接或間接地繼承了java.lang.Object類(lèi)176publicclassMyObject{//…}publicclassMyObectextends
Object{
//…}在Eclipse中調(diào)用MyObject對(duì)象的成員,會(huì)自動(dòng)彈出繼承自O(shè)bject的所有方法小結(jié)1請(qǐng)編碼實(shí)現(xiàn)動(dòng)物世界的繼承關(guān)系:動(dòng)物(Animal)具有行為:吃(eat)、睡覺(jué)(sleep)動(dòng)物包括:兔子(Rabbit),老虎(Tiger)這些動(dòng)物吃的行為各不相同(兔子吃草,老虎吃肉);但睡覺(jué)的行為是一致的。請(qǐng)通過(guò)繼承實(shí)現(xiàn)以上需求,并編寫(xiě)測(cè)試類(lèi)AnimalTest進(jìn)行測(cè)試。177感謝觀看方法重載與方法重寫(xiě)情境引入在生活中,其實(shí)我們經(jīng)常遇到方法重載的情況,例如:同一臺(tái)打印機(jī),既可以打印黑白照片,也可以打印彩色照片……生活中的方法重載181類(lèi)方法方法參數(shù)方法實(shí)現(xiàn)司機(jī)轎車(chē)巴士火車(chē)駕駛啟動(dòng)、行駛、……等待乘客上車(chē)、啟動(dòng)、行駛、到站停車(chē)、……正點(diǎn)發(fā)車(chē)、行駛、到站停車(chē)、……如果用代碼實(shí)現(xiàn),我們需要三個(gè)方法,這些方法的方法名稱(chēng)相同,參數(shù)類(lèi)型不同方法重載的代碼示例1方法重載并不陌生java.io.PrintStream類(lèi)的println方法能夠打印數(shù)據(jù)并換行,根據(jù)數(shù)據(jù)類(lèi)型的不同,有多種實(shí)現(xiàn)方式182publicclassTest{publicstaticvoidmain(String[]args){inti=0;charc='z';Stringstr="hello";System.out.println(i);System.out.println(c);System.out.println(str);}}PrintStreamprintln(int)println(char)println(String)……方法名相同,參數(shù)類(lèi)型不同調(diào)用不同的println方法方法重載方法重載的代碼示例2java.lang.Math類(lèi)的max()方法能夠從兩個(gè)數(shù)字中取出最大值,它有多種實(shí)現(xiàn)方式運(yùn)行時(shí),Java虛擬機(jī)先判斷給定參數(shù)的類(lèi)型,然后決定到底執(zhí)行哪個(gè)max()方法183Mathmax(inta,intb)max(floata,floatb)max(longa,longb)max(doublea,doubleb)publicclassTest{publicstaticvoidmain(String[]args){Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);}}方法重載構(gòu)造方法重載2-1構(gòu)造方法重載是方法重載的典型示例184publicclassTeacher7{privateStringname;//教師姓名privateStringdepartment=“軟件教研室”;//所在教研室PublicTeacher7(Stringname){ =name;//設(shè)定教師姓名}publicTeacher7(Stringname,Stringdepartment){=name;//設(shè)定教師姓名this.department=department;//設(shè)定教師教研室}publicStringintroduction(){ return"大家好!我是"+department
+"的"+name;}}構(gòu)造方法重載構(gòu)造方法重載2-2通過(guò)調(diào)用不同的構(gòu)造方法來(lái)表達(dá)對(duì)象的多種初始化行為例如:默認(rèn)情況下,教師來(lái)自軟件教研室,初始化時(shí),只需提供教師姓名有時(shí),需要提供所在教研室名稱(chēng)及教師姓名185publicclassTeacher7Test{publicstaticvoidmain(String[]args){Teacher7teacher1=newTeacher7("李芳");System.out.println(roduction());Teacher7teacher2=newTeacher7("張欣",
“網(wǎng)絡(luò)教研室");System.out.println(roduction());}}大家好!我是軟件教研室的李芳大家好!我是網(wǎng)絡(luò)教研室的張欣方法的重載(overload)在同一個(gè)類(lèi)中,一個(gè)以上的方法名稱(chēng)相同,參數(shù)列表不同,這種定義方法叫做方法的重載。
186例如:
publicintsummn(intm,intn){returnm+n;}publicintsummn(intm,intn,intk){returnm+n+k;}187例如:
publicintsummn(intm,intn){returnm+n;}publicintsummn(intx,inty){returnx+y;}//是重載嗎?188不是方法的重寫(xiě)在子類(lèi)中,聲明和父類(lèi)中完全相同(方法名字、參數(shù)類(lèi)型、個(gè)數(shù)和順序、返回值類(lèi)型)的方法,叫做方法的重寫(xiě)。方法的重載和方法的重寫(xiě),都是實(shí)現(xiàn)類(lèi)的多態(tài)性的重要途徑。
189重寫(xiě)隱藏了父類(lèi)中的同名成員。如果子類(lèi)中成員m是重寫(xiě)的,則在子類(lèi)中訪問(wèn)m時(shí),訪問(wèn)的是子類(lèi)中的,而不是父類(lèi)中的m。190方法重寫(xiě)示例:
classVehicle{voidrun(){System.out.println("Vehicleisrunning");}}classBikeextendsVehicle{ @override voidrun(){ System.out.println("theBikeofVehicleisrunning"); }publicstaticvoidmain(Stringargs[]){Bikeobj=newBike();obj.run();}}191
輸出結(jié)果:theBikeofVehicleisrunning訪問(wèn)被重寫(xiě)的方法:
有時(shí),需要在子類(lèi)中訪問(wèn)父類(lèi)中被重寫(xiě)的方法,可使用super關(guān)鍵字來(lái)實(shí)現(xiàn)。
super代表當(dāng)前類(lèi)的直接父類(lèi)。
192//定義Animal類(lèi)classAnimal{ Stringname="動(dòng)物";
voidshout(){//定義動(dòng)物叫的方法 System.out.println("動(dòng)物發(fā)出叫聲"); }}classDogextendsAnimal{//定義Dog類(lèi)繼承動(dòng)物類(lèi) Stringname="犬類(lèi)";
voidshout(){//重寫(xiě)父類(lèi)的shout()方法
super.shout();//訪問(wèn)父類(lèi)的成員方法
}193
//定義打印name的方法
voidprintName(){ System.out.println("name="+);//訪問(wèn)父類(lèi)的成員變量
}}//定義測(cè)試類(lèi)publicclassExample03{ publicstaticvoidmain(String[]args){ Dogdog=newDog();//創(chuàng)建一個(gè)Dog對(duì)象
dog.shout();//調(diào)用dog對(duì)象重寫(xiě)的shout()方法
dog.printName();//調(diào)用dog對(duì)象的的printName()方法
}}194動(dòng)物發(fā)出叫聲name=動(dòng)物使用super關(guān)鍵字訪問(wèn)父類(lèi)的構(gòu)造方法:
super([參數(shù)1,參數(shù)2…])//定義Animal類(lèi)classAnimal{ //定義Animal類(lèi)有參的構(gòu)造方法
publicAnimal(Stringname){ System.out.println("我是一只"+name); }}//定義Dog類(lèi)繼承Animal類(lèi)classDogextendsAnimal{ publicDog(){ super("沙皮狗");//調(diào)用父類(lèi)有參的構(gòu)造方法
}}195//定義測(cè)試類(lèi)publicclassExample04{ publicstaticvoidmain(String[]args){ Dogdog=newDog();//實(shí)例化子類(lèi)Dog對(duì)象
}}196final關(guān)鍵字final關(guān)鍵字有“無(wú)法改變”或者“最終”的含義,因此被final修飾的類(lèi)、變量和方法將具有以下特性:final修飾的類(lèi)不能被繼承。final修飾的方法不能被子類(lèi)重寫(xiě)。final修飾的變量(成員變量和局部變量)是常量,只能賦值一次。197final關(guān)鍵字修飾類(lèi)finalclassAnimal{//使用final關(guān)鍵字修飾Animal類(lèi)時(shí),子類(lèi)會(huì)報(bào)錯(cuò)classAnimal{ //方法體為空}classDogextendsAnimal{//Dog類(lèi)繼承Animal類(lèi) //方法體為空}classExample06{//定義測(cè)試類(lèi) publicstaticvoidmain(String[]args){ Dogdog=newDog();//創(chuàng)建Dog類(lèi)的實(shí)例對(duì)象 }}198final關(guān)鍵字修飾變量classAnimal{
//使用final關(guān)鍵字修飾shout()方法后,如果子類(lèi)重寫(xiě)父類(lèi)的這個(gè)方法,編譯會(huì)報(bào)錯(cuò)
//publicfinalvoidshout(){ publicvoidshout(){ //程序代碼}}//定義Dog類(lèi)繼承Animal類(lèi)classDogextendsAnimal{ //重寫(xiě)Animal類(lèi)的shout()方法
publicvoidshout(){ //程序代碼
}}199//定義測(cè)試類(lèi)classExample07{ publicstaticvoidmain(String[]args){ Dogdog=newDog();//創(chuàng)建Dog類(lèi)的實(shí)例對(duì)象
}}感謝觀看抽象類(lèi)情境引入:
當(dāng)定義一個(gè)類(lèi)時(shí),常常需要定義一些方法來(lái)描述該類(lèi)的行為特征,但有時(shí)這些方法的實(shí)現(xiàn)方式是無(wú)法確定的。例如當(dāng)我們定義Animal類(lèi)時(shí),shout()方法用于表示動(dòng)物的叫聲,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣西貴港市公安局覃塘分局招聘警務(wù)輔助人員80人模擬試卷及答案詳解(名師系列)
- 2025年內(nèi)江市市本級(jí)部分事業(yè)單位公開(kāi)考核招聘工作人員(第二批)的考前自測(cè)高頻考點(diǎn)模擬試題有答案詳解
- 2025廣西壯族自治區(qū)文化和旅游廳幼兒園勤雜工(殘疾人專(zhuān)崗)招聘1人模擬試卷附答案詳解(完整版)
- 2025安徽亳州市利辛農(nóng)商銀行社會(huì)招聘人員模擬試卷附答案詳解(突破訓(xùn)練)
- 2025鄂爾多斯市伊金霍洛旗阿勒騰席熱鎮(zhèn)社區(qū)衛(wèi)生服務(wù)中心招聘公益性崗位人員的考前自測(cè)高頻考點(diǎn)模擬試題附答案詳解(模擬題)
- 2025廣東惠州市惠陽(yáng)區(qū)教育局選調(diào)下屬事業(yè)單位工作人員15人考前自測(cè)高頻考點(diǎn)模擬試題有完整答案詳解
- 2025安徽安慶安桐城鄉(xiāng)發(fā)展集團(tuán)有限公司招聘17人模擬試卷及1套參考答案詳解
- 2025遼寧錦州醫(yī)科大學(xué)開(kāi)展“錦醫(yī)英才計(jì)劃”醫(yī)學(xué)名家遴選模擬試卷及答案詳解(奪冠)
- 2025貴州遵義市務(wù)川自治縣應(yīng)急管理局、林業(yè)局和醫(yī)保局招聘城鎮(zhèn)公益性崗位人員3人考前自測(cè)高頻考點(diǎn)模擬試題及參考答案詳解
- 2025福建三明明溪縣公安局招聘警務(wù)輔助人員13名模擬試卷及答案詳解(歷年真題)
- 2025年湖北省工程專(zhuān)業(yè)中級(jí)職務(wù)水平能力測(cè)試(電子信息)綜合能力測(cè)試題(附答案)
- 2025年甘肅省武威市涼州區(qū)清源鎮(zhèn)選聘專(zhuān)業(yè)化管理的大學(xué)生村文書(shū)模擬試卷及參考答案詳解
- rto安全操作規(guī)程
- 2025年甘肅省武威市天祝縣天堂鎮(zhèn)選聘大學(xué)生村文書(shū)考試參考試題及答案解析
- 人教版初中九年級(jí)全冊(cè)英語(yǔ)單詞表(完整版)
- 陜西省引漢濟(jì)渭三期工程環(huán)評(píng)報(bào)告
- 電子商務(wù)交易模式
- 漣源事業(yè)編招聘2022年考試《公共基礎(chǔ)知識(shí)》真題及答案解析【整理版】
- 萬(wàn)豪國(guó)際酒店委托管理合同
- 高中英語(yǔ)選擇性必修三 (7)Unit 3 Reading and Thinking
- (高職)會(huì)計(jì)基礎(chǔ)電子課件教學(xué)PPT(完整版)
評(píng)論
0/150
提交評(píng)論