第一章 java基礎(chǔ)
《第一章 java基礎(chǔ)》由會員分享,可在線閱讀,更多相關(guān)《第一章 java基礎(chǔ)(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第一章: 教案名稱: 教案大?。? 教案類型: WORD文檔 星級評定: ★★★★☆ 教案簡介: java語言的產(chǎn)生起源于Sun Microsystems公司為消費電子產(chǎn)品上應(yīng)用程序的開發(fā)尋找一門編程語言的過程中,而隨著互聯(lián)網(wǎng)時代的到來,原有的Oak軟件就順理成章的改造成java語言推向了市場,其跨平臺、面相對象、安全等特點使其得到廣泛的應(yīng)用。通過在不同的軟硬件上實現(xiàn)的java虛擬機,java的字節(jié)碼文件就可以跨平臺的進行運行,無用內(nèi)存自動回收器也給程序員帶來了極大的方便。java程序以兩種方式進行運行,一種是通過java虛擬機進行直接運行的java applicatio
2、n,另一種是通過瀏覽器進行運行的java applet,但是無論是何種方式,java都是一門純粹的面向?qū)ο蟮木幊陶Z言。面向?qū)ο缶幊痰乃悸氛J為程序都是對象的組合,因此要克服面向過程編程的思路,直接按照對象和類的思想去組織程序,面向?qū)ο笏哂械姆庋b性、繼承性、多態(tài)性等特點使其具有強大的生命力。Sun公司為全世界java開發(fā)人員提供了一套免費的軟件開發(fā)包Java2 SDK,也稱為JDK,它不僅是java的開發(fā)平臺,還是java的運行平臺。java源程序存放在.java文件中,可以通過任意一個文本編輯器編輯產(chǎn)生,源程序經(jīng)過"javac"命令編譯過后,就生成了相應(yīng)的.class文件,而用"java"命令
3、就可以運行.class文件。作為面向?qū)ο缶幊倘藛T來說,大體可以分為兩種:類創(chuàng)建者和應(yīng)用程序員,應(yīng)用程序員是類的使用者。所以對程序的可讀性和API幫助文檔就有要求,java語言本身有一套約定成俗的編程規(guī)范,同時程序員首先要學(xué)會閱讀系統(tǒng)API幫助文檔,還要學(xué)會生成自己編寫的程序的API幫助文檔。 下載一 【課前思考】 1. 一門新的語言的產(chǎn)生是否需要借鑒以前的編程語言? 2. 在java語言出現(xiàn)之前是否存在其它跨平臺的語言? 3. 有哪些編程語言是面向?qū)ο蟮??而哪些編程語言是面向過程的?從編程思路上存在著哪些本質(zhì)差別?C++語言是面向?qū)ο蟮倪€是面向過程的?
4、4. 一段優(yōu)秀的程序代碼是否應(yīng)該是可讀性極強的?程序員之間是否應(yīng)該遵循相同的編程規(guī)范? 5. 一個程序員編好的代碼如果需要讓別的程序員使用,如何提供該代碼的使用說明? 【學(xué)習(xí)目標】 了解java語言產(chǎn)生的歷史和工作原理,掌握java語言作為一門面向?qū)ο缶幊陶Z言的基本編程思路,初步接觸java程序的兩種方式:java application和java applet,掌握java程序的結(jié)構(gòu)、編程規(guī)范,學(xué)習(xí)閱讀java幫助文檔,并安裝java開發(fā)環(huán)境和幫助文檔,最后要學(xué)會編寫小的java程序并生成相應(yīng)的幫助文檔。 【學(xué)習(xí)指南】 跳過面向過程的編程思路,直接進入到面向?qū)ο蟮木幊谭?/p>
5、式。 【難 重 點】 java虛擬機 無用內(nèi)存自動回收器 java語言的特點 面向?qū)ο蟮木幊趟悸? java編程規(guī)范 java類庫幫助文檔的瀏覽和生成 【知 識 點】 1.1 java語言的發(fā)展史 1.1.1 java語言在互聯(lián)網(wǎng)時代獲得巨大成功 1.1.2 java語言的產(chǎn)生 1.2 java的工作原理 1.2.1 java虛擬機 1.2.2 無用內(nèi)存自動回收機制 1.2.3 代碼安全性檢查機制 1.2.4 java語言的特點 1.2.5 java平臺-不斷擴展的計算平臺 1.3
6、 一切都是對象 1.3.1 面向過程 1.3.2 面向?qū)ο? 1.4 構(gòu)建java程序 1.4.1 第一個java application 1.4.2 java程序的編輯 1.4.3 java程序的編譯 1.4.4 java application的執(zhí)行 1.4.5 第一個java applet 1.4.6 java applet的執(zhí)行 1.5 java程序規(guī)范 1.5.1 java源程序結(jié)構(gòu) 1.5.2 java編程規(guī)范 1.5.3 java幫助文檔 1.5.4 java注釋 1.
7、6 建立java開發(fā)環(huán)境 1.6.1 安裝java開發(fā)包JDK 1.6.2 安裝java幫助文檔 1.6.3 配置類路徑 1.1 java語言的發(fā)展史 1.1.1java語言在互聯(lián)網(wǎng)時代獲得巨大成功 大家想一想,在PC下用windows編寫的程序能夠不做修改就直接拿到UNIX系統(tǒng)上運行嗎?顯然是不可以的,因為程序的執(zhí)行最終必須轉(zhuǎn)換成為計算機硬件的機器指令來執(zhí)行,專門為某種計算機硬件和操作系統(tǒng)編寫的程序是不能夠直接放到另外的計算機硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計算機上能夠運行,就要求程序設(shè)計語言是能夠跨越各種軟件和硬件平臺的,而java滿
8、足了這一需求。 1995年,美國Sun Microsystems公司正式向IT業(yè)界推出了java語言,該語言具有安全、跨平臺、面向?qū)ο?、簡單、適用于網(wǎng)絡(luò)等顯著特點,當(dāng)時以web為主要形式的互聯(lián)網(wǎng)正在迅猛發(fā)展,java語言的出現(xiàn)迅速引起所有程序員和軟件公司的極大關(guān)注,程序員們紛紛嘗試用java語言編寫網(wǎng)絡(luò)應(yīng)用程序,并利用網(wǎng)絡(luò)把程序發(fā)布到世界各地進行運行。包括IBM、Oracle、微軟、Netscape、Apple、SGI等大公司紛紛與Sun Microsystems公司簽訂合同,授權(quán)使用java平臺技術(shù)。微軟公司總裁比爾蓋茨先生在經(jīng)過研究后認為"java語言是長時間以來最卓越的程序設(shè)計語言"
9、。目前,java語言已經(jīng)成為最流行的網(wǎng)絡(luò)編程語言,截止到2001年中,全世界大約有310萬java程序員,許多大學(xué)紛紛開設(shè)java課程,java正逐步成為世界上程序員最多的編程語言。 在經(jīng)歷了以大型機為代表的集中計算模式和以PC機為代表的分散計算模式之后,互聯(lián)網(wǎng)的出現(xiàn)使得計算模式進入了網(wǎng)絡(luò)計算時代。網(wǎng)絡(luò)計算模式的一個特點是計算機是異構(gòu)的,即計算機的類型和操作系統(tǒng)是不一樣的,例如SUN工作站的硬件是SPARC體系,軟件是UNIX中的Solaris操作系統(tǒng),而PC機的硬件是INTEL體系,操作系統(tǒng)是windows或者是Linux,因此相應(yīng)的編程語言基本上只是適用于單機系統(tǒng),例如COBOL
10、、FORTRAN、C、C++等等;網(wǎng)絡(luò)計算模式的另一個特點是代碼可以通過網(wǎng)絡(luò)在各種計算機上進行遷移,這就迫切需要一種跨平臺的編程語言,使得用它編寫的程序能夠在網(wǎng)絡(luò)中的各種計算機上能夠正常運行,java就是在這種需求下應(yīng)運而生的。正是因為java語言符合了互聯(lián)網(wǎng)時代的發(fā)展要求,才使它獲得了巨大的成功。 1.1.2 java語言的產(chǎn)生 俗話說:"有心栽花花不成,無心插柳柳成蔭"。Sun公司絕沒想到本想用于消費電子產(chǎn)品開發(fā)的編程語言卻率先在網(wǎng)絡(luò)中得到了廣泛應(yīng)用,但是也可以說是"東方不亮西方亮",正是因為java語言在設(shè)計目標上的正確性使得java語言"是金字總會發(fā)光的"。C語言是面向過程
11、的語言,也是使用率非常高的語言;而面向?qū)ο蟮乃枷胍氲骄幊陶Z言之后,C語言就被改造成為面向?qū)ο蟮腃++語言,得到了廣泛的應(yīng)用。但是C++語言必須兼容C語言,因此C++語言是面向過程和面向?qū)ο蠡旌系恼Z言。 java語言產(chǎn)生于C++語言之后,是完全的面向?qū)ο蟮木幊陶Z言,充分吸取了C++語言的優(yōu)點,采用了程序員所熟悉的C和C++語言的許多語法,同時又去掉了C語言中指針、內(nèi)存申請和釋放等影響程序健壯性的部分,可以說java語言是站在C++語言這個"巨人的肩膀上"前進的。 java語言的一個目標是跨平臺,因此采用了解釋執(zhí)行而不是編譯執(zhí)行的運行環(huán)境,在執(zhí)行過程中根據(jù)所在的不同的硬件
12、平臺把程序解釋為當(dāng)前的機器碼,實現(xiàn)跨平臺運行。而動態(tài)下載程序代碼的機制完全是為了適應(yīng)網(wǎng)絡(luò)計算的特點,程序可以根據(jù)需要把代碼實時的從服務(wù)器中下載過來執(zhí)行,在此之前還沒有任何一種語言能夠支持這一點。 java是印尼的一個小島,盛產(chǎn)咖啡,而程序員往往喜歡喝咖啡,因此取名為java語言??磥?,目前java這杯咖啡已經(jīng)飄香在世界各地?!? 任何事物的產(chǎn)生既有必然的原因也有偶然的因素,java語言的出現(xiàn)也驗證了這一點。1991年,美國Sun Microsystems公司的某個研究小組為了能夠在消費電子產(chǎn)品上開發(fā)應(yīng)用程序,積極尋找合適的編程語言。消費電子產(chǎn)品種類繁多,包括PDA、機頂盒、手機等等,
13、即使是同一類消費電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,也存在著跨平臺的問題。當(dāng)時最流行的編程語言是C和C++語言,Sun公司的研究人員就考慮是否可以采用C++語言來編寫消費電子產(chǎn)品的應(yīng)用程序,但是研究表明,對于消費電子產(chǎn)品而言C++語言過于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,Bill Joy先生領(lǐng)導(dǎo)的研究小組就著手設(shè)計和開發(fā)出一種語言,稱之為Oak。該語言采用了許多C語言的語法,提高了安全性,并且是面向?qū)ο蟮恼Z言,但是Oak語言在商業(yè)上并未獲得成功。時間轉(zhuǎn)到了1995年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語言所具有的跨平臺、面向?qū)ο?、安全性高等特點非常符合互聯(lián)網(wǎng)的
14、需要,于是改進了該語言的設(shè)計,要達到如下幾個目標: ◇ 創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計語言,而不是面向過程的語言; ◇ 提供一個解釋執(zhí)行的程序運行環(huán)境,是程序代碼獨立于平臺; ◇ 吸收C和C++的優(yōu)點,使程序員容易掌握; ◇ 去掉C和C++中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請和釋放; ◇ 實現(xiàn)多線程,使得程序能夠同時執(zhí)行多個任務(wù); ◇ 提供動態(tài)下載程序代碼的機制; ◇ 提供代碼校驗機制以保證安全性; 最終,Sun公司給該語言取名為java語言,造就了一代成功的編程語言。 1.2 java的工作原理 1
15、.2.1 java虛擬機 java虛擬機是軟件模擬的計算機,可以在任何處理器上(無論是在計算機中還是在其它電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。java虛擬機的"機器碼"保存在.class文件中,有時也可以稱之為字節(jié)碼文件。java程序的跨平臺主要是指字節(jié)碼文件可以在任何具有java虛擬機的計算機或者電子設(shè)備上運行,java虛擬機中的java解釋器負責(zé)將字節(jié)碼文件解釋成為特定的機器碼進行運行。java源程序需要通過編譯器編譯成為.class文件(字節(jié)碼文件),java程序的編譯和執(zhí)行過程如動畫所示。 但是,java虛擬機的建立需要針對不同的軟硬件平臺
16、做專門的實現(xiàn),既要考慮處理器的型號,也要考慮操作系統(tǒng)的種類。如下圖所示,目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上、在UNIX、Linux、windows和部分實時操作系統(tǒng)上都有java虛擬機的實現(xiàn)。 1.2.2 無用內(nèi)存自動回收機制 在程序的執(zhí)行過程中,部分內(nèi)存在使用過后就處于廢棄狀態(tài),如果不及時進行無用內(nèi)存的回收,就會導(dǎo)致內(nèi)存泄漏,進而導(dǎo)致系統(tǒng)崩潰。在C++語言中是由程序員進行內(nèi)存回收的,程序員需要在編寫程序的時候把不再使用的對象內(nèi)存釋放掉;但是這種人為的管理內(nèi)存釋放的方法卻往往由于程序員的疏忽而致使內(nèi)存無法回收,同時也增加
17、了程序員的工作量。而在java運行環(huán)境中,始終存在著一個系統(tǒng)級的線程,專門跟蹤內(nèi)存的使用情況,定期檢測出不再使用的內(nèi)存,并進行自動回收,避免了內(nèi)存的泄露,也減輕了程序員的工作量。 1.2.3 代碼安全性檢查機制 安全和方便總是相對矛盾的。java編程語言的出現(xiàn)使得客戶端機器可以方便的從網(wǎng)絡(luò)上下載java程序到本機上運行,但是如何保證該java程序不攜帶病毒或者不懷有其它險惡目的呢?如果java語言不能保證執(zhí)行的安全性,那么它就不可能存活到今天。雖然有時候少數(shù)程序員會抱怨說applet連文件系統(tǒng)也不能訪問,但是正是各種安全措施的實行才確保了java語言的生存。 字節(jié)碼的執(zhí)行需要經(jīng)過三個
18、步驟,首先由類裝載器(class loader)負責(zé)把類文件(.class文件)加載到j(luò)ava虛擬機中,在此過程需要檢驗該類文件是否符合類文件規(guī)范;其次字節(jié)碼校驗器(bytecode verifier)檢查該類文件的代碼中是否存在著某些非法操作,例如applet程序中寫本機文件系統(tǒng)的操作;如果字節(jié)碼校驗器檢驗通過,由java解釋器負責(zé)把該類文件解釋成為機器碼進行執(zhí)行。java虛擬機采用的是"沙箱"運行模式,即把java程序的代碼和數(shù)據(jù)都限制在一定內(nèi)存空間里執(zhí)行,不允許程序訪問該內(nèi)存空間外的內(nèi)存,如果是applet程序,還不允許訪問客戶端機器的文件系統(tǒng)。 1.2.4 Java語言的特點
19、 1. 簡單、面向?qū)ο蠛蜑槿怂煜? java的簡單首先體現(xiàn)在精簡的系統(tǒng)上,力圖用最小的系統(tǒng)實現(xiàn)足夠多的功能;對硬件的要求不高,在小型的計算機上便可以良好的運行。和所有的新一代的程序設(shè)計語言一樣,java也采用了面向?qū)ο蠹夹g(shù)并更加徹底,所有的java程序和applet程序均是對象,封裝性實現(xiàn)了模塊化和信息隱藏,繼承性實現(xiàn)了代碼的復(fù)用,用戶可以建立自己的類庫。而且java采用的是相對簡單的面向?qū)ο蠹夹g(shù),去掉了運算符重載、多繼承的復(fù)雜概念,而采用了單一繼承、類強制轉(zhuǎn)換、多線程、引用(非指針)等方式。無用內(nèi)存自動回收機制也使得程序員不必費心管理內(nèi)存,是程序設(shè)計更加簡單,同時大大減少了出錯的可能。j
20、ava語言采用了C語言中的大部分語法,熟悉C語言的程序員會發(fā)現(xiàn)java語言在語法上與C語言極其相似。 2. 魯棒并且安全 java語言在編譯及運行程序時,都要進行嚴格的檢查。作為一種強制類型語言,java在編譯和連接時都進行大量的類型檢查,防止不匹配問題的發(fā)生。如果引用一個非法類型、或執(zhí)行一個非法類型操作,java將在解釋時指出該錯誤。在java程序中不能采用地址計算的方法通過指針訪問內(nèi)存單元,大大減少了錯誤發(fā)生的可能性;而且java的數(shù)組并非用指針實現(xiàn),這樣就可以在檢查中避免數(shù)組越界的發(fā)生。無用內(nèi)存自動回收機制也增加了java的魯棒性。作為網(wǎng)絡(luò)語言,java必須提供足夠的安全保障,并
21、且要防止病毒的侵襲。java在運行應(yīng)用程序時,嚴格檢查其訪問數(shù)據(jù)的權(quán)限,比如不允許網(wǎng)絡(luò)上的應(yīng)用程序修改本地的數(shù)據(jù)。下載到用戶計算機中的字節(jié)代碼在其被執(zhí)行前要經(jīng)過一個核實工具,一旦字節(jié)代碼被核實,便由java解釋器來執(zhí)行,該解釋器通過阻止對內(nèi)存的直接訪問來進一步提高java的安全性。同時java極高的魯棒性也增強了java的安全性。 3. 結(jié)構(gòu)中立并且可以移植 網(wǎng)絡(luò)上充滿了各種不同類型的機器和操作系統(tǒng),為使java程序能在網(wǎng)絡(luò)的任何地方運行,java編譯器編譯生成了與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)文件格式。任何種類的計算機,只有在其處理器和操作系統(tǒng)上有java運行時環(huán)境,字節(jié)碼文件就可以在該計
22、算機上運行。即使是在單一系統(tǒng)的計算機上,結(jié)構(gòu)中立也有非常大的作用。隨著處理器結(jié)構(gòu)的不斷發(fā)展變化,程序員不得不編寫各種版本的程序以在不同的處理器上運行,這使得開發(fā)出能夠在所有平臺上工作的軟件集合是不可能的。而使用java將使同一版本的應(yīng)用程序可以運行在所有的平臺上。 體系結(jié)構(gòu)的中立也使得java系統(tǒng)具有可移植性。java運行時系統(tǒng)可以移植到不同的處理器和操作系統(tǒng)上,java的編譯器是由java語言實現(xiàn)的,解釋器是由java語言和標準C語言實現(xiàn)的,因此可以較為方便的進行移植工作。 4. 高性能 雖然java是解釋執(zhí)行的,但它仍然具有非常高的性能,在一些特定的CPU上,java
23、字節(jié)碼可以快速的轉(zhuǎn)換成為機器碼進行執(zhí)行。而且java字節(jié)碼格式的設(shè)計就是針對機器碼的轉(zhuǎn)換,實際轉(zhuǎn)換時相當(dāng)簡便,自動的寄存器分配與編譯器對字節(jié)碼的一些優(yōu)化可使之生成高質(zhì)量的代碼。隨著java虛擬機的改進和"即時編譯"(just in time)技術(shù)的出現(xiàn)使得java的執(zhí)行速度有了更大的提高。 5. 解釋執(zhí)行、多線程并且是動態(tài)的 為易于實現(xiàn)跨平臺性,java設(shè)計成為解釋執(zhí)行,字節(jié)碼本身包含了許多編譯時生成的信息,使連接過程更加簡單。而多線程使應(yīng)用程序可以同時進行不同的操作,處理不同的事件。在多線程機制中,不同的線程處理不同的任務(wù),互不干涉,不會由于某一任務(wù)處于等待狀態(tài)而影響了其它任務(wù)的執(zhí)行
24、,這樣就可以容易的實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。java在執(zhí)行過程中,可以動態(tài)的加載各種類庫,這一特點使之非常適合于網(wǎng)絡(luò)運行,同時也非常有利于軟件的開發(fā),即使是更新類庫也不必重新編譯使用這一類庫的應(yīng)用程序。 如果你了解C語言和C++語言,可以參考下列java與C/C++語言的比較,如果不了解C語言和C++語言,可以忽略本部分知識。 a. 全局變量 java程序不能定義程序的全局變量,而類中的公共、靜態(tài)變量就相當(dāng)于這個類的全局變量。這樣就使全局變量封裝在類中,保證了安全性,而在C/C++語言中,由于不加封裝的全局變量往往會由于使用不當(dāng)而造成系統(tǒng)的崩潰。 b. 條件轉(zhuǎn)移指令
25、 C/C++語言中用goto語句實現(xiàn)無條件跳轉(zhuǎn),而java語言沒有g(shù)oto語言,通過例外處理語句try、catch、finally來取代之,提高了程序的可讀性,也增強了程序的魯棒性。 c. 指針 指針是C/C++語言中最靈活,但也是最容易出錯的數(shù)據(jù)類型。用指針進行內(nèi)存操作往往造成不可預(yù)知的錯誤,而且,通過指針對內(nèi)存地址進行顯示類型轉(zhuǎn)換后,可以類的私有成員,破壞了安全性。在java中,程序員不能進行任何指針操作,同時java中的數(shù)組是通過類來實現(xiàn)的,很好的解決了數(shù)組越界這一C/C++語言中不做檢查的缺點。 d. 內(nèi)存管理 在C語言中,程序員使用庫函數(shù)mall
26、oc()和free()來分配和釋放內(nèi)存,C++語言中則是運算符new和delete。再次釋放已經(jīng)釋放的內(nèi)存塊或者釋放未被分配的內(nèi)存塊,會造成系統(tǒng)的崩潰,而忘記釋放不再使用的內(nèi)存塊也會逐漸耗盡系統(tǒng)資源。在java中,所有的數(shù)據(jù)結(jié)構(gòu)都是對象,通過運算符new分配內(nèi)存并得到對象的使用權(quán)。無用內(nèi)存回收機制保證了系統(tǒng)資源的完整,避免了內(nèi)存管理不周而引起的系統(tǒng)崩潰。 e. 數(shù)據(jù)類型的一致性 在C/C++語言中,不同的平臺上,編譯器對簡單的數(shù)據(jù)類型如int、float等分別分配不同的字節(jié)數(shù)。例如:int在IBM PC上為16位,在VAX-11上就為32位,導(dǎo)致了代碼數(shù)據(jù)的不可移植。在java
27、中,對數(shù)據(jù)類型的位數(shù)分配總是固定的,而不管是在任何的計算機平臺上。因此就保證了java數(shù)據(jù)的平臺無關(guān)性和可移植性。 f. 類型轉(zhuǎn)換 在C/C++語言中,可以通過指針進行任意的類型轉(zhuǎn)換,不安全因素大大增加。而在java語言中系統(tǒng)要對對象的處理進行嚴格的相容性檢查,防止不安全的轉(zhuǎn)換。 g. 頭文件 在C/C++語言中使用頭文件聲明類的原型和全局變量及庫函數(shù)等,在大的系統(tǒng)中,維護這些頭文件是非常困難的。java不支持頭文件,類成員的類型和訪問權(quán)限都封裝在一個類中,運行時系統(tǒng)對訪問進行控制,防止非法的訪問。同時,java中用import語句與其它類進行通信,以便訪問其它
28、類的對象。 h. 結(jié)構(gòu)和聯(lián)合 C/C++語言中用結(jié)構(gòu)和聯(lián)合來表示一定的數(shù)據(jù)結(jié)構(gòu),但是由于其成員均為公有的,安全性上存在問題。java不支持結(jié)構(gòu)和聯(lián)合,通過類把數(shù)據(jù)結(jié)構(gòu)及對該數(shù)據(jù)的操作都封裝在類里面。 i. 預(yù)處理 C/C++語言中有宏定義,而用宏定義實現(xiàn)的代碼往往影響程序的可讀性,而java不支持宏定義。 1.2.5 java平臺-不斷擴展的計算平臺 java不僅是編程語言,還是一個開發(fā)平臺,java技術(shù)給程序員提供了許多工具:編譯器、解釋器、文檔生成器和文件打包工具等等。同時java還是一個程序發(fā)布平臺,有兩種主要的"發(fā)布環(huán)境",首先java運行
29、時環(huán)境(java runtime environment,簡稱JRE)包含了完整的類文件包,其次許多主要的瀏覽器都提供了java解釋器和運行時環(huán)境。目前Sun公司把java平臺劃分成J2EE、J2SE、J2ME三個平臺,針對不同的市場目標和設(shè)備進行定位。J2EE是Java2 Enterprise Edition,主要目的是為企業(yè)計算提供一個應(yīng)用服務(wù)器的運行和開發(fā)平臺。J2EE本身是一個開放的標準,任何軟件廠商都可以推出自己的符合J2EE標準的產(chǎn)品,使用戶可以有多種選擇。IBM、Oracle、BEA、HP等29家已經(jīng)推出了自己的產(chǎn)品,其中尤以BEA公司的weglogic產(chǎn)品和IBM公司的webs
30、phare最為著名。J2EE將逐步發(fā)展成為可以與微軟的.NET戰(zhàn)略相對抗的網(wǎng)絡(luò)計算平臺。J2SE是Java2 Standard Edition,主要目的是為臺式機和工作站提供一個開發(fā)和運行的平臺。我們在學(xué)習(xí)java的過程中,主要是采用J2SE來進行開發(fā)。J2ME是Java2 Micro Edition,主要是面向消費電子產(chǎn)品,為消費電子產(chǎn)品提供一個java的運行平臺,使得java程序能夠在手機、機頂盒、PDA等產(chǎn)品上運行。上述三個java平臺的關(guān)系如右圖所示。 1.3 一切都是對象 1.3.1 面向過程 面向?qū)ο蟮牡谝粋€原則是把數(shù)據(jù)和對該數(shù)據(jù)的操作都封裝在一個類中,在程序設(shè)計時要考慮
31、多個對象及其相互間的關(guān)系。有些功能并不一定由一個程序段完全實現(xiàn),可以讓其它對象來實現(xiàn),在本例中就由類Max完成求最大值的功能。而面向?qū)ο蟮牧硗庖粋€好處是實現(xiàn)代碼的重復(fù)使用,例如其它的程序中如果需要求最大值的功能,只需要通過類Max的對象就可以達到目的。但是如果象面向過程的代碼段那樣把求最大值的算法都實現(xiàn)在該代碼段中,則無法復(fù)用。 1.3.2 面向?qū)ο? 1. 所有的東西都是對象。 可以將對象想象成為一種新型變量,它保存著數(shù)據(jù),而且還可以對自身數(shù)據(jù)進行操作。例如類Max中保留著數(shù)據(jù)的最大值,同時還有方法updateMax根據(jù)新加入的price值產(chǎn)生最新的最大值,還有g(shù)etMax方法返回
32、數(shù)據(jù)的最大值。 2. 程序是一大堆對象的組合。 通過消息傳遞,各對象知道自己應(yīng)該做些什么。如果需要讓對象做些事情,則須向該對象"發(fā)送一條消息"。具體來說,可以將消息想象成為一個調(diào)用請求,它調(diào)用的是從屬于目標對象的一個方法。例如上面面向?qū)ο蟮某绦蚨螒?yīng)該是屬于某個類的,比如說是屬于類Shopping,則Shopping中就包含了類Max的對象max,調(diào)用方法updateMax就相當(dāng)于Shopping對象對max對象發(fā)出一條指令"updateMax",要求對象max重新計算最大值。 3. 每個對象都有自己的存儲空間。 可容納其它對象,或者說通過封裝現(xiàn)有的對象,可以產(chǎn)生新型對象。因
33、此,盡管對象的概念非常簡單,但是經(jīng)過封裝以后卻可以在程序中達到任意高的復(fù)雜程度。 4. 每個對象都屬于某個類。 根據(jù)語法,每個對象都是某個"類"的一個"實例"。一個類的最重要的的特征就是"能將什么消息發(fā)給它?",也就是類本身有哪些操作。例如max是類Max的實例。 1.4 構(gòu)建java程序 1.4.1 第一個java application java程序分為java application(java 應(yīng)用程序)和java applet(java小應(yīng)用程序)兩種。下面讓我們編寫一個java應(yīng)用程序,它能夠利用來自java標準庫的System對象的多種方法,打印出與當(dāng)前運行的系
34、統(tǒng)有關(guān)的資料。其中"http://"代表一種注釋方式,表示從這個符號開始到這行結(jié)束的所有內(nèi)容都是注釋。在每個程序文件的開頭,如果這個文件的代碼中用到了系統(tǒng)所提供的額外的類,就必須放置一個import語句。說它是額外的是指一個特殊的類庫"java.lang"會自動導(dǎo)入到每個java文件。 //這是我們的第一個java application,該程序保存在文件Property.java中 import java.util.*; /*下面我們用到了Date和Properties這兩個類,是 屬于java.util這個包的;*/ /*而System和Ru
35、ntime這兩個類,是屬于 java.lang這個包的。*/ public class Property { //程序員給這個類取名為Property public static void main(String args[]){ //main是類的主方法 System.out.println(new Date( )); //在命令行下面打印出日期 Properties p=System.getProperties( ); //獲得系統(tǒng)的Properties對象p p.list(System.out); //在命令行下打印出p中的各個系統(tǒng)變
36、量的值 System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.getRuntime( ); //獲得系統(tǒng)的Runtime對象rt System.out.println("Total Memory= " + rt.totalMemory( ) //打印總內(nèi)存大小 +" Free Memory = " +rt.freeMemory( )); //打印空閑內(nèi)存大小 } }
37、 在java中,程序都是以類的方式組織的,java源文件都保存在以java為后綴的.java文件當(dāng)中。每個可運行的程序都是一個類文件,或者稱之為字節(jié)碼文件,保存在.class文件中。而作為一個java application,類中必須包含主方法,程序的執(zhí)行是從main方法開始的,方法頭的格式是確定不變的: public static void main(String args[]) 其中關(guān)鍵字public意味著方法可以由外部世界調(diào)用。main方法的參數(shù)是一個字符串?dāng)?shù)組args,雖然在本程序中沒有用到,但是必須列出來。 程序的第一行非常有意思:
38、 System.out.println(new Date()); 打印語句的參數(shù)是一個日期對象Date,而創(chuàng)建Date對象的目的就是把它的值發(fā)給println()語句。一旦這個語句執(zhí)行完畢,Date對象就沒用了,而后"無用內(nèi)存回收器"會將其收回。 第二行中調(diào)用了System.getProperties( )。從幫助文檔中可知,getProperties( )是System類的一個靜態(tài)方法(static 方法),由于它是"靜態(tài)"的,所以不必創(chuàng)建任何對象就可以調(diào)用該方法。在第三行,Properties對象有一個名為list( )的方法,它將自己的全部內(nèi)容都發(fā)給一個Print
39、Stream對象,該對象就是list()方法的參數(shù)。 第四行和第六行是典型的打印語句,其中第六行通過運算符"+"的重載來連接多個字符串對象,在java中只有當(dāng)"+"運算符作用于字符串時在能夠進行重載。但是讓我們仔細觀察下述語句: System.out.println("Total Memory= " + rt.totalMemory( ) //打印總內(nèi)存大小 +" Free Memory = " +rt.freeMemory( )); //打印空閑內(nèi)存大小 其中,totalMemory( )和
40、freeMemory( )返回的是數(shù)值,并非String對象。如果將一個字符串與一個數(shù)值相加,結(jié)果會如何?在這種情況下,編譯器會自動調(diào)用一個toString()方法,將該數(shù)值(int型或者float型)轉(zhuǎn)換成字符串。經(jīng)過這樣處理以后,就可以用"+"進行字符串連接了。 main()的第五行通過調(diào)用Runtime的getRuntime()方法創(chuàng)建了一個Runtime對象,該對象中包含了內(nèi)存等信息。 1.4.2 java程序的編輯 java程序的編輯可以使用任何一種文本編輯器,例如UltraEdit、Notepad、Wordpad甚至word,然后只要把編輯好的文件存成.jav
41、a文件。當(dāng)然也可以用一些集成開發(fā)環(huán)境,例如Borland公司的JBuilder,IBM公司的Visualage for Java,此外還有cafe、kawa等其它集成開發(fā)環(huán)境。 1.4.3 java程序的編譯 Sun公司為全世界的java程序員提供了一個免費的java程序開發(fā)包(Java Develop Kit,簡稱JDK),其中包括了java編譯器命令"javac",以及java執(zhí)行命令"java",還有幫助文檔生成器命令"javadoc"等等。所有這些命令都可以在命令行下運行,例如我們要編譯上述java文件Property.java,如果是在windows中進行開發(fā),就可以在"命令
42、提示符"下進行編譯,在命令行中敲入"javac Property.java",如圖1_4_1所示: 1.4.4 java application的執(zhí)行 當(dāng)編譯結(jié)束以后,在java源文件中的每一個類都會生成相應(yīng)的 .class 文件,例如上圖中就會生成一個Property.class文件,而java程序在執(zhí)行時調(diào)用的是.class 文件。Java application的執(zhí)行是在命令行下進行的,如果是在windows系統(tǒng)中,就可以"命令提示符"下敲入"java Propery"進行執(zhí)行,該"java"命令會啟動java虛擬機,并讀入Property.class文件進行執(zhí)行。 由于該
43、程序的運行結(jié)果直接在命令行下進行輸出 1.4.5 第一個java applet java程序的另一種形式是java applet,applet沒有main()方法,它必須嵌在超文本文件中,在瀏覽器中進行運行。右面這個程序?qū)⒃跒g覽器中顯示一行字符串。 //這是我們的第一個java applet,該程序保存在文件HelloEducation.java中 import java.awt.Graphics; //在進行顯示輸出時,需要用到類Graphics的對象; import java.applet.Applet; //Applet類是所有的java applet的父類; pu
44、blic class HelloEducation extends Applet { //程序員給這個類取名為HelloEducation //所有的applet程序都是Applet類的子類 public String s; public void init() { // s=new String("Welcome to Tongfang Education"); //生成一個字符串對象 } public void paint(Graphics g){ g
45、.drawString(s,25,25); //在瀏覽器中坐標為(25,25)的位置顯示字符串s } } applet程序是從方法init( )開始執(zhí)行的,在該方法中完成了對字符串s的初始化工作,而顯示功能是在方法paint( )中執(zhí)行的。paint( )方法是類Applet的一個成員方法,其參數(shù)是圖形對象Graphics g,通過調(diào)用對象g的drawString( )方法就可以顯示輸出。 1.4.6 java applet的執(zhí)行 java applet程序也是一個類,其編譯方式與java application完全一樣,
46、HelloEducation.java程序經(jīng)過編譯以后就生成了HelloEducation.class文件。java applet的執(zhí)行方式與java application完全不同,java applet程序必須嵌入到html文件中才能夠執(zhí)行,因此必須編寫相應(yīng)的html文件。下面為HelloEducaiton.html文件的內(nèi)容: 然后可以通過JDK所提供的命令"appletviewer",在命令行下面執(zhí)行java a
47、pplet程序。如果是在windows操作系統(tǒng)中,就可以在"命令提示符"下敲入"appletviewer HelloEducation.html",如圖1_4_4所示。 此時系統(tǒng)會彈出另外一個窗口運行該applet程序,結(jié)果如圖1_4_5所示。 applet還可以采用另外一種方式運行,那就是直接在瀏覽器中打開HelloEducation.html程序,結(jié)果如圖1_4_6所示。在主流的瀏覽器如IE、Netscape中都包含有java虛擬機,負責(zé)解釋執(zhí)行java applet程序。 1.5 java程序規(guī)范 1.5.1 java源程序結(jié)構(gòu) 一個完整的java源程序應(yīng)該包括下列
48、部分: package語句; //該部分至多只有一句,必須放在源程序的第一句 import語句; /*該部分可以有若干import語句或者沒有,必須放在所有的 類定義之前*/ public classDefinition; //公共類定義部分,至多只有一個公共類的定義 //java語言規(guī)定該java源程序的文件名必須與該公共類名完全一致 classDefinition; //類定義部分,可以有0個或者多個類定義 interfaceDefinition; //接口定義部分,可以有0個或者多個接口定義 例如一個java源程序
49、可以是如下結(jié)構(gòu),該源程序命名為HelloWorldApp.java: package javawork.helloworld; /*把編譯生成的所有.class文件放到包 javawork.helloworld中*/ import java.awt.*; //告訴編譯器本程序中用到系統(tǒng)的AWT包 import javawork.newcentury; /*告訴編譯器本程序中用到用戶自定義 的包javawork.newcentury*/ public class HelloWorldA
50、pp{......} /*公共類HelloWorldApp的定義, 名字與文件名相同*/ class TheFirstClass{......} //第一個普通類TheFirstClass的定義 class TheSecondClass{......} //第二個普通類TheSecondClass的定義 ...... //其它普通類的定義 interface TheFirstInterface{......} /*第一個接口 TheFirstInte
51、rface的定義*/ ...... //其它接口定義 package語句:由于java編譯器為每個類生成一個字節(jié)碼文件,且文件名與類名相同,因此同名的類有可能發(fā)生沖突。為了解決這一問題,java提供包來管理類名空間,包實際提供了一種命名機制和可見性限制機制。而在java的系統(tǒng)類庫中,把功能相似的類放到一個包(package)中,例如所有的圖形界面的類都放在java.awt這個包中,與網(wǎng)絡(luò)功能有關(guān)的類都放到這個包中。用戶自己編寫的類(指.class文件)也應(yīng)該按照功能放在由程序員自己命名的相應(yīng)的包中,例如上例中的javawork.helloworld
52、就是一個包。包在實際的實現(xiàn)過程中是與文件系統(tǒng)相對應(yīng)的,例如javawork.helloworld所對應(yīng)的目錄是path\javawork\helloworld,而path是在編譯該源程序時指定的。比如在命令行中編譯上述HelloWorldApp.java文件時,可以在命令行中敲入"javac -d f:\javaproject HelloWorldApp.java",則編譯生成的HelloWorldApp.class文件將放在目錄f:\javaproject\javawork\helloworld\目錄下面,此時f:\javaprojcet相當(dāng)于path。但是如果在編譯時不指定path,則生成
53、的.class文件將放在編譯時命令行所在的當(dāng)前目錄下面。比如在命令行目錄f:\javaproject下敲入編譯命令"javac HelloWorldApp.java",則生成的HelloWorldApp.class文件將放在目錄f:\javaproject下面,此時的package語句相當(dāng)于沒起作用。 但是,如果程序中包含了package語句,則在運行時就必須包含包名。例如,HelloWorldApp.java程序的第一行語句是:package p1.p2;編譯的時候在命令行下輸入"javac -d path HelloWorldApp.java",則HelloWorldApp.cl
54、ass將放在目錄path\p1\p2的下面,這時候運行該程序時有兩種方式: 第一種:在命令行下的path目錄下輸入字符"java p1.p2.HelloWorldApp"。 第二種:在環(huán)境變量classpath中加入目錄path,則運行時在任何目錄下輸入"java p1.p2.HelloWorldApp"即可。 import語句:如果在源程序中用到了除java.lang這個包以外的類,無論是系統(tǒng)的類還是自己定義的包中的類,都必須用import語句標識,以通知編譯器在編譯時找到相應(yīng)的類文件。例如上例中的java.awt是系統(tǒng)的包,而javawork.newcentury是用
55、戶自定義的包。比如程序中用到了類Button,而Button是屬于包java.awt的,在編譯時編譯器將從目錄classpath\java\awt中去尋找類Button,classpath是事先設(shè)定的環(huán)境變量,比如可以設(shè)為:classpath=.;d:\jdk1.3\lib\。 classpath也可以稱為類路徑,需要提醒大家注意的是,在classpath中往往包含多個路徑,用分號隔開。例如classpath=.;d:\jdk1.3\lib\中的第一個分號之前的路徑是一個點,表示當(dāng)前目錄,分號后面的路徑是d:\jdk1.3\lib\,表示系統(tǒng)的標準類庫目錄。在編譯過程中尋找類時,先從環(huán)境變量c
56、lasspath的第一個目錄開始往下找,比如先從當(dāng)前目錄往下找java.awt中的類Button時,編譯器找不著,然后從環(huán)境變量classpath的第二個目錄開始往下找,就是從系統(tǒng)的標準類庫目錄d:\jdk1.3\lib開始往下找java.awt的Button這個類,最后就找到了。如果要從一個包中引入多個類則在包名后加上".*"表示。 如果程序中用到了用戶自己定義的包中的類,假如在上面程序中要用到j(luò)avawork.newcentury包中的類HelloWorldApp,而包javawork.newcentury所對應(yīng)的目錄是f:\javaproject\javawork\newcentu
57、ry,classpath仍舊是classpath=.;d:\jdk1.3\lib\,則編譯器在編譯時將首先從當(dāng)前目錄尋找包javawork.newcentury,結(jié)果是沒有找到;然后又從環(huán)境變量classpath的第二個目錄d:\jdk1.3\lib\開始往下找,但是仍然沒有找到。原因在于包javawork.newcentury是放在目錄f:\javaproject下面。因此,需要重新設(shè)定環(huán)境變量classpath,設(shè)為classpath=.;d:\jdk1.3\lib\;f:\javaproject\ 。所以編譯器從f:\javaproject開始找包javawork.newcentury就
58、可以找到。 源文件的命名規(guī)則:如果在源程序中包含有公共類的定義,則該源文件名必須與該公共類的名字完全一致,字母的大小寫都必須一樣。這是java語言的一個嚴格的規(guī)定,如果不遵守,在編譯時就會出錯。因此,在一個java源程序中至多只能有一個公共類的定義。如果源程序中不包含公共類的定義,則該文件名可以任意取名。如果在一個源程序中有多個類定義,則在編譯時將為每個類生成一個.class文件。 1.5.2 java編程規(guī)范 軟件開發(fā)是一個集體協(xié)作的過程,程序員之間的代碼是經(jīng)常要進行交換閱讀的,因此,java源程序有一些約定成俗的命名規(guī)定,主要目的是為了提高java程序的可讀性。 包名:包名
59、是全小寫的名詞,中間可以由點分隔開,例如:java.awt.event; 類名:首字母大寫,通常由多個單詞合成一個類名,要求每個單詞的首字母也要大寫,例如class HelloWorldApp; 接口名:命名規(guī)則與類名相同,例如interface Collection; 方法名:往往由多個單詞合成,第一個單詞通常為動詞,首字母小寫,中間的每個單詞的首字母都要大寫,例如:balanceAccount, isButtonPressed; 變量名:全小寫,一般為名詞,例如:length; 常量名:基本數(shù)據(jù)類型的常量名為全大寫,如果是由多個單詞構(gòu)成,可以用下劃線隔開,例如:int YEAR,
60、 int WEEK_OF_MONTH;如果是對象類型的常量,則是大小寫混合,由大寫字母把單詞隔開。 1.5.3 java幫助文檔 java中所有類庫的介紹都保存在java幫助文檔中,程序員在編程過程中,必須查閱該幫助文檔,了解系統(tǒng)提供的類的功能、成員方法、成員變量等等信息以后,才能夠更好的編程。同時,java開發(fā)工具包(JDK)提供了 "java"、"javac"、"javadoc"、 "appletviewer"等命令,在java幫助文檔中也對此進行了詳細的介紹。java幫助文檔是以HTML文件的形式組織,通常是安裝在JDK目錄下的docs子目錄中的index.html文件,所以
61、用瀏覽器就可以進行查閱。例如JDK是安裝在D:\jdk1.3目錄下面,則用瀏覽器打開D:\jdk1.3\docs\index.html文件,就可以看到圖1_5_1所示的幫助文檔。 如果希望查閱JDK的命令,則可以選擇"Tool Documentation",如圖1_5_2紅字所示。 此時瀏覽器就會把java、javac、javadoc、appletviewer等命令列出來,如圖1_5_3。 但是大多時時候,我們需要查閱的是類庫的文檔,因此需要在"D:\jdk1.3\docs\index.html"文件中選擇"Java 2 Platform API Specification"
62、,如圖1_5_4中紅字所示。 然后就進入了詳細的類庫介紹,如圖1_5_5所示。 圖中左上部分列出了java標準類庫中的各個包,例如第一個是java.applet包,與java applet有關(guān)的類都放在這個包中,第二個是java.awt包,有關(guān)圖形界面的類都放在這個包中。如果選擇了包java.awt,則圖中左下部分就會列出java.awt包所包含的所有的類(class)、接口(interface)、例外(Exception)和錯誤(Error)。如果選擇了類Button,則在圖中右邊空間內(nèi)將顯示該類的詳細介紹,包括:該類的父類、實現(xiàn)的接口、功能介紹、構(gòu)造方法、成員方
63、法、成員變量、從父類繼承的成員方法、從父類和接口繼承的成員變量、每個成員方法的具體介紹。 如果程序員知道某個成員方法或者成員變量的名字,但是并不知道它屬于哪個類,則可以通過選擇圖中右上的"Index",就會按照字母表順序列出所有的成員方法、成員變量、類和接口。"Index"旁邊的"Tree"可以把所有的類按照繼承關(guān)系列出來。 1.5.4 java注釋 單行注釋:從"http://"開始到本行結(jié)束的內(nèi)容都是注釋,例如: //這是一行單行注釋 //則是另一行單行注釋 多行注釋:在"/*"和"*/"之間的所有內(nèi)容都是注釋,例如: /*這是
64、一段注釋分布在多行之中*/ 文檔注釋:在注釋方面java提供一種C/C++所不具有的文檔注釋方式。其核心思想是當(dāng)程序員編完程序以后,可以通過JDK提供的javadoc命令,生成所編程序的API文檔,而該文檔中的內(nèi)容主要就是從文檔注釋中提取的。該API文檔以HTML文件的形式出現(xiàn),與java幫助文檔的風(fēng)格與形式完全一致。凡是在"/**"和"*/"之間的內(nèi)容都是文檔注釋。例如下面的DocTest.java文件: /** 這是一個文檔注釋的例子,主要介紹下面這個類 */ public class DocTest{ /** 變量注釋,下面這個變量
65、主要是充當(dāng)整數(shù)計數(shù) */ public int i; /** 方法注釋,下面這個方法的主要功能是計數(shù) */ public void count( ) {} } 1.6 建立java開發(fā)環(huán)境 1.6.1 安裝Java Develop Kit(JDK) Sun公司為所有的java程序員提供了一套免費的java開發(fā)和運行環(huán)境,取名為Java2 SDK,可以從上進行下載,也可以從同方教育網(wǎng)站上下載。但是最新的消息和版本必須從Sun的網(wǎng)站上才能夠得到。安裝的時候可以選擇安裝到任意的硬盤驅(qū)動器上,例如安裝到D:\jd
66、k1.3目錄下。通常在JDK目錄下有bin、demo、lib、jre等子目錄,其中bin目錄保存了javac、java、appletviewer等命令文件,demo目錄保存了許多java的例子,lib目錄保存了java的類庫文件,jre保存的是java的運行時環(huán)境。 1.6.2 安裝java幫助文檔 由于JDK的安裝程序中并不包含幫助文檔,因此也必須從Sun的網(wǎng)站上下載進行安裝。通常安裝在JDK所在目錄的docs子目錄下面。用瀏覽器打開docs子目錄下的index.html文件就可以閱讀所有的幫助文檔。 1.6.3 配置類路徑 在安裝完JDK之后,必須配置類路徑classpath和環(huán)境變量path,JDK才能夠正常運行。如果是在windows98中運行,則在 C:\autoexec.bat文件的末尾添加下列語句: classpath= .;d:\jdk1.3\lib; path=%path%;d:\jdk1.3\bin; 如果是在windows2000中,則需要用右鍵單擊桌面上"我的電腦",選擇
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中西方家庭教育的對比ppt課件
- 《運籌學(xué)教程》第五版運籌學(xué)6對策論矩陣對策課件
- (部編版)統(tǒng)編版四年級語文下冊第2課《鄉(xiāng)下人家》ppt課件
- 全等三角形1--公開課一等獎ppt課件
- 《會跳舞樹葉娃娃》課件
- 9兒童詩兩首_人教版五年級的語文下冊課件
- 綠色植物是食物之源(我的課件)0
- 河南專版2022春八年級語文下冊第四單元16慶祝奧林匹克運動復(fù)興25周年習(xí)題課件新人教版
- 全國xx杯說課大賽機械類一等獎作品:鉗工車模的制作說課ppt課件
- 六年級下冊數(shù)學(xué)ppt課件-總復(fù)習(xí)(1)數(shù)的認識-整數(shù)∣北師大版
- 牛頓第二定律優(yōu)秀完整公開課ppt課件
- 調(diào)脂與卒中防治課件
- 點到平面的距離課件
- 聚焦新醫(yī)改形勢下的醫(yī)院發(fā)展戰(zhàn)略
- 四肢血管超聲基礎(chǔ)