java基礎(chǔ)教程資料_第1頁(yè)
java基礎(chǔ)教程資料_第2頁(yè)
java基礎(chǔ)教程資料_第3頁(yè)
java基礎(chǔ)教程資料_第4頁(yè)
java基礎(chǔ)教程資料_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Java基礎(chǔ)教程

第1章Java概述

教學(xué)目的、要求(分掌握、熟悉、了解三個(gè)層次):

了解Java語(yǔ)言的特點(diǎn)和核心技術(shù)。

熟悉Java程序的兩科基本形式,理解由Java虛擬機(jī)支持的程序運(yùn)行機(jī)制。

熟悉Java開(kāi)發(fā)運(yùn)行環(huán)境和JDKo

教學(xué)重點(diǎn)及難點(diǎn):

教學(xué)重點(diǎn):Java程序的兩種基本形式,Java虛擬機(jī)支持的程序運(yùn)行機(jī)制,Java開(kāi)發(fā)運(yùn)

行環(huán)境和JDKo

教學(xué)難點(diǎn):Java程序的兩種基本形式,Java開(kāi)發(fā)運(yùn)行環(huán)境

課時(shí)安排:3學(xué)時(shí)

授課方式:講授

教學(xué)基本內(nèi)容:

LIjava語(yǔ)言的發(fā)展史

1.1.1java語(yǔ)言在互聯(lián)網(wǎng)時(shí)代獲得巨大成功

大家想一想,在PC下用Windows編寫的程序能夠不做修改就直接拿到UNIX系統(tǒng)上運(yùn)

行嗎?顯然是不可以的,因?yàn)槌绦虻膱?zhí)行最終必須轉(zhuǎn)換成為計(jì)算機(jī)硬件的機(jī)器指令來(lái)執(zhí)行,

專門為某種計(jì)算機(jī)硬件和操作系統(tǒng)編寫的程序是不能夠直接放到另外的計(jì)算機(jī)硬件上執(zhí)行

的,至少要做移植工作。要想讓程序能夠在不同的計(jì)算機(jī)上能夠運(yùn)行,就要求程序設(shè)計(jì)語(yǔ)言

是能夠跨越各種軟件和硬件平臺(tái)的,而java滿足了這一需求。

1995年,美國(guó)SunMicrosystems公司正式向IT業(yè)界推出了java語(yǔ)言,該語(yǔ)言具有安全、

跨平臺(tái)、面向?qū)ο?、?jiǎn)單、適用于網(wǎng)絡(luò)等顯著特點(diǎn),當(dāng)時(shí)以web為主要形式的互聯(lián)網(wǎng)正在

迅猛發(fā)展,java語(yǔ)言的出現(xiàn)迅速引起所有程序員和軟件公司的極大關(guān)注,程序員們紛紛嘗試

用java語(yǔ)言編寫網(wǎng)絡(luò)應(yīng)注程序,并利用網(wǎng)絡(luò)把程序發(fā)布到世界各地進(jìn)行運(yùn)行。包括IBM、

Oracle>微軟、NetscapeApple、SGI等大公司紛紛與SunMicrosystems公司簽訂合同,授

權(quán)使用java平臺(tái)技術(shù)。微軟公司總裁比爾蓋茨先生在經(jīng)過(guò)研究后認(rèn)為“java語(yǔ)言是長(zhǎng)時(shí)間以

來(lái)最卓越的程序設(shè)計(jì)語(yǔ)言”。目前:java語(yǔ)言已經(jīng)成為最流行的網(wǎng)絡(luò)編程語(yǔ)言,截止到2001

年中,全世界大約有310萬(wàn)java程序員,許多大學(xué)紛紛開(kāi)設(shè)java課程,java正逐步成為世

界上程序員最多的編程語(yǔ)言。

在經(jīng)歷了以大型機(jī)為代表的集中計(jì)算模式和以PC機(jī)為代表的分散計(jì)算模式之后,互聯(lián)

網(wǎng)的出現(xiàn)使得計(jì)算模式進(jìn)入了網(wǎng)絡(luò)計(jì)算時(shí)代。網(wǎng)絡(luò)計(jì)算模式的一個(gè)特點(diǎn)是計(jì)算機(jī)是異構(gòu)的,

即計(jì)算機(jī)的類型和操作系統(tǒng)是不一樣的,例如SUN工作站的硬件是SPARC體系,軟件是UNIX

中的Solaris操作系統(tǒng),而PC機(jī)的硬件是INTEL體系,操作系統(tǒng)是Windows或者是Linux,

因此相應(yīng)的編程語(yǔ)言基本上只是適用于單機(jī)系統(tǒng),例如COBOLFORTRAN、C、C++等等;

網(wǎng)絡(luò)計(jì)算模式的另一個(gè)特點(diǎn)是代碼可以通過(guò)網(wǎng)絡(luò)在各種計(jì)算機(jī)上進(jìn)行遷移,這就迫切需要一

種跨平臺(tái)的編程語(yǔ)言,使得用它編寫的程序能夠在網(wǎng)絡(luò)中的各種計(jì)算機(jī)上能夠正常運(yùn)行,

java就是在這種需求下應(yīng)運(yùn)而生的。正是因?yàn)閖ava語(yǔ)言符合了互聯(lián)網(wǎng)時(shí)代的發(fā)展要求,才

使它獲得了巨大的成功。

1.1.2java語(yǔ)言的產(chǎn)生

俗話說(shuō):"有心栽花花不成,無(wú)心插柳柳成蔭”。Sun公司絕沒(méi)想到本想用于消費(fèi)電子產(chǎn)

品開(kāi)發(fā)的編程語(yǔ)言卻率先在網(wǎng)絡(luò)中得到了廣泛應(yīng)用,但是也可以說(shuō)是“東方不亮西方亮”,正

是因?yàn)閖ava語(yǔ)言在設(shè)計(jì)廿標(biāo)上的正確性使得java語(yǔ)言”是金字總會(huì)發(fā)光的,C語(yǔ)言是面向

過(guò)程的語(yǔ)言,也是使用率非常高的語(yǔ)言;而面向?qū)ο蟮乃枷胍氲骄幊陶Z(yǔ)言之后,C語(yǔ)言就

被改造成為面向?qū)ο蟮腃++語(yǔ)言,得到了廣泛的應(yīng)用。但是C++語(yǔ)言必須兼容C語(yǔ)言,

因此C++語(yǔ)言是面向過(guò)程和面向?qū)ο蠡旌系恼Z(yǔ)言。

java語(yǔ)言產(chǎn)生于C++語(yǔ)言之后,是完全的面向?qū)ο蟮木幊陶Z(yǔ)言,充分吸取了C++語(yǔ)

言的優(yōu)點(diǎn),采用了程序員所熟悉的C和C++語(yǔ)言的許多語(yǔ)法,同時(shí)又去掉了C語(yǔ)言中指

針、內(nèi)存申請(qǐng)和釋放等影響程序健壯性的部分,可以說(shuō)java語(yǔ)言是站在C++語(yǔ)言這個(gè)"巨

人的肩膀上”前進(jìn)的。

java語(yǔ)言的一個(gè)目標(biāo)是跨平臺(tái),因此采用了解釋執(zhí)行而不是編譯執(zhí)行的運(yùn)行環(huán)境,在執(zhí)

行過(guò)程中根據(jù)所在的不同的硬件平臺(tái)把程序解釋為當(dāng)前的機(jī)器碼,實(shí)現(xiàn)跨平臺(tái)運(yùn)行。而動(dòng)態(tài)

下載程序代碼的機(jī)制完全是為了適應(yīng)網(wǎng)絡(luò)計(jì)算的特點(diǎn),程序可以根據(jù)需要把代碼實(shí)時(shí)的從服

務(wù)器中下載過(guò)來(lái)執(zhí)行,在此之前還沒(méi)有任何一種語(yǔ)言能夠支持這一點(diǎn)。

java是印尼的一個(gè)小島,盛產(chǎn)咖啡,而程序員往往喜歡喝咖啡,因此取名為java語(yǔ)言。

看來(lái),目前java這杯咖啡已經(jīng)飄香在世界各地。

任何事物的產(chǎn)生既有必然的原因也有偶然的因素,java語(yǔ)言的出現(xiàn)也驗(yàn)證了這一點(diǎn)。

1991年,美國(guó)SunMicrosystems公司的某個(gè)研究小組為了能夠在消費(fèi)電子產(chǎn)品上開(kāi)發(fā)應(yīng)用

程序,積極尋找合適的編程語(yǔ)言。消費(fèi)電子產(chǎn)品種類繁多,包括PDA、機(jī)頂盒、手機(jī)等等,

即使是同一類消費(fèi)電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,也存在著跨平臺(tái)的問(wèn)

題。當(dāng)時(shí)最流行的編程語(yǔ)言是C和C++語(yǔ)言,Sun公司的研究人員就考慮是否可以采用C

++語(yǔ)言來(lái)編寫消費(fèi)電子產(chǎn)品的應(yīng)用程序,但是研究表明,對(duì)于消費(fèi)電子產(chǎn)品而言C++語(yǔ)

言過(guò)于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,BillJoy先生領(lǐng)導(dǎo)的研究

小組就著手設(shè)計(jì)和開(kāi)發(fā)出一種語(yǔ)言,稱之為Oak。該語(yǔ)言采用了許多C語(yǔ)言的語(yǔ)法,提高了

安全性,并且是面向?qū)ο蟮恼Z(yǔ)言,但是Oak語(yǔ)言在商業(yè)上并未獲得成功。時(shí)間轉(zhuǎn)到了1995

年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語(yǔ)言所具有的跨平臺(tái)、面向?qū)ο?、安全?/p>

高等特點(diǎn)非常符合互聯(lián)網(wǎng)的需要,于是改進(jìn)了該語(yǔ)言的設(shè)計(jì),要達(dá)到如下幾個(gè)目標(biāo):

創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,而不是面向過(guò)程的語(yǔ)言;

?提供?個(gè)解釋執(zhí)行的程序運(yùn)行環(huán)境,是程序代碼獨(dú)立于平臺(tái);

?吸收C和C++的優(yōu)點(diǎn),使程序員容易掌握;

?去掉C和C++中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請(qǐng)和

釋放;

實(shí)現(xiàn)多線程,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù);

提供動(dòng)態(tài)下載程序代碼的機(jī)制;

提供代碼校驗(yàn)機(jī)制以保證安全性;

最終,Sun公司給該語(yǔ)言取名為java語(yǔ)言,造就了一代成功的編程語(yǔ)言。

1.2java的工作原理

1.2.1java虛擬機(jī)

java虛擬機(jī)是軟件模%的計(jì)算機(jī),可以在任何處理器上(無(wú)論是在計(jì)算機(jī)中還是在其它

電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。java虛擬機(jī)的“機(jī)器碼”保

存在.class文件中,有時(shí)也可以稱之為字節(jié)碼文件。java程序的跨平臺(tái)主要是指字節(jié)舊文件

可以在任何具有java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,java虛擬機(jī)中的java解釋器負(fù)

責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。java源程序需要通過(guò)編譯器編譯成為,class

文件(字節(jié)碼文件),java程序的編譯和執(zhí)行過(guò)程如圖1“所示。

圖1-1java程序的編譯和執(zhí)行過(guò)程

但是,java虛擬機(jī)的建立需要針對(duì)不同的軟硬件平臺(tái)做專門的實(shí)現(xiàn),既要考慮處理器的

型號(hào),也要考慮操作系統(tǒng)的種類。如圖1-2所示,目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS

和PPC等嵌入式處理芯片上、在UNIX、Linux、Windows和部分實(shí)時(shí)操作系統(tǒng)上都有java

虛擬機(jī)的實(shí)現(xiàn)。

圖1-2java虛擬機(jī)的運(yùn)行層次

1.2.2無(wú)用內(nèi)存自動(dòng)回收機(jī)制

在程序的執(zhí)行過(guò)程中,部分內(nèi)存在使用過(guò)后就處于廢棄狀態(tài),如果不及時(shí)進(jìn)行無(wú)用內(nèi)存

的回收,就會(huì)導(dǎo)致內(nèi)存泄漏,進(jìn)而導(dǎo)致系統(tǒng)崩潰。在C++語(yǔ)言中是由程序員進(jìn)行內(nèi)存回收

即使是在單一系統(tǒng)的計(jì)算機(jī)上,結(jié)構(gòu)中立也有非常大的作用。隨著處理器結(jié)構(gòu)的不斷發(fā)展變

化,程序員不得不編寫各種版本的程序以在不同的處理器上運(yùn)行,這使得開(kāi)發(fā)山能夠在所有

平臺(tái)上T作的軟件集合是不可能的。而使用java將使同一版本的應(yīng)用程序可以運(yùn)行在所有

的平臺(tái)上。

體系結(jié)構(gòu)的中立也使得java系統(tǒng)具有可移植性。java運(yùn)行時(shí)系統(tǒng)可以移植到不同的處

理器和操作系統(tǒng)上,java的編譯器是由java語(yǔ)言實(shí)現(xiàn)的,解釋器是由java語(yǔ)言和標(biāo)準(zhǔn)C

語(yǔ)言實(shí)現(xiàn)的,因此可以較為方便的進(jìn)行移植工作。

4.高性能

雖然java是解釋執(zhí)行的,但它仍然具有井常高的性能,在一些特定的CPU上,java字

節(jié)碼可以快速的轉(zhuǎn)換成為機(jī)器碼進(jìn)行執(zhí)行。而且java字節(jié)碼格式的設(shè)計(jì)就是針對(duì)機(jī)器碼的

轉(zhuǎn)換,實(shí)際轉(zhuǎn)換時(shí)相當(dāng)簡(jiǎn)便,自動(dòng)的寄存器分配與編譯器對(duì)字節(jié)碼的一些優(yōu)化可使之生成高

質(zhì)量的代碼。隨著java虛擬機(jī)的改進(jìn)和”即時(shí)編譯〃(justintime)技術(shù)的出現(xiàn)使得java

的執(zhí)行速度有了更大的提高。

5.解釋執(zhí)行、多線程并且是動(dòng)態(tài)的

為易于實(shí)現(xiàn)跨平臺(tái)性,java設(shè)計(jì)成為解釋執(zhí)行,字節(jié)碼本身包含了許多編譯時(shí)生成的信

息,使連接過(guò)程更加簡(jiǎn)單。而多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作,處理不同的事件。

在多線程機(jī)制中,不同的線程處理不同的任務(wù),互不干涉,不會(huì)由于某一任務(wù)處于等待狀態(tài)

而影響了其它任務(wù)的執(zhí)行,這樣就可以容易的實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互操作。java在執(zhí)行過(guò)

程中,可以動(dòng)態(tài)的加載各種類庫(kù),這一特點(diǎn)使之非常適合于網(wǎng)絡(luò)運(yùn)行,同時(shí)也非常有利于軟

件的開(kāi)發(fā),即使是更新類庫(kù)也不必重新編譯使用這一類庫(kù)的應(yīng)用程序。

如果你了解C語(yǔ)言和C++語(yǔ)言,可以參考下列java與C/C++語(yǔ)言的比較,如果不了解

C語(yǔ)言和C++語(yǔ)言,可以忽略本部分知識(shí)。

a.全局變量

java程序不能定義程序的全局變量,而類中的公共、靜態(tài)變量就相當(dāng)于這個(gè)類的全局變

量。這樣就使全局變量封裝在類中,保證了安全性,而在C/C++語(yǔ)言中,由于不加封裝的全

局變量往往會(huì)由于使用不當(dāng)而造成系統(tǒng)的崩潰。

b.條件轉(zhuǎn)移指令

C/C++語(yǔ)言中用goto語(yǔ)句實(shí)現(xiàn)無(wú)條件跳轉(zhuǎn),而java語(yǔ)言沒(méi)有g(shù)oto語(yǔ)言,通過(guò)例外處理

語(yǔ)句iry、catch、finally來(lái)取代之,提高了程序的可讀性,也增強(qiáng)了程序的魯棒性。

c.指針

指針是C/C++語(yǔ)言中最靈活,,但也是最容易出錯(cuò)的數(shù)據(jù)類型。用指針進(jìn)行內(nèi)存操作往往

造成不可預(yù)知的錯(cuò)誤,而且,通過(guò)指針對(duì)內(nèi)存地址進(jìn)行顯示類型轉(zhuǎn)換后,可以類的私有成員,

破壞了安全性。在java中,程序員不能進(jìn)行任何指針操作,同時(shí)java中的數(shù)組是通過(guò)類來(lái)

實(shí)現(xiàn)的,很好的解決了數(shù)組越界這一C/C++語(yǔ)言中不做檢查的缺點(diǎn)。

d.內(nèi)存管理

在C語(yǔ)言中,程序員使用庫(kù)函數(shù)mallocO和free。來(lái)分配和釋放內(nèi)存,C++語(yǔ)言中則是

運(yùn)算符new和delete。再次釋放已經(jīng)釋放的內(nèi)存塊或者釋放未被分配的內(nèi)存塊,會(huì)造成系統(tǒng)

的崩潰,而忘記釋放不再使用的內(nèi)存塊也會(huì)逐漸耗盡系統(tǒng)資源。在java中,所有的數(shù)據(jù)結(jié)

構(gòu)都是對(duì)象,通過(guò)運(yùn)算符new分配內(nèi)存并得到對(duì)象的使用權(quán)。無(wú)用內(nèi)存同收機(jī)制保證了系

統(tǒng)資源的完整,避免了內(nèi)存管理不周而引起的系統(tǒng)崩潰。

e.數(shù)據(jù)類型的一致性

在C/C++語(yǔ)言中,不同的平臺(tái)上,編譯器對(duì)簡(jiǎn)單的數(shù)據(jù)類型如int、float等分別分配不

同的字節(jié)數(shù)。例如:ini在IBMPC上為16位,在VAX-I1上就為32位,導(dǎo)致了代碼數(shù)據(jù)的

不可移植。在java中,對(duì)數(shù)據(jù)類型的位數(shù)分配總是固定的,而不管是在任何的計(jì)算機(jī)平臺(tái)

上。因此就保證了java數(shù)據(jù)的平臺(tái)無(wú)關(guān)性和可移植性。

f.類型轉(zhuǎn)換

在C/C++語(yǔ)言中,可以通過(guò)指針進(jìn)行任意的類型轉(zhuǎn)換,不安全因素大大增加。而在java

語(yǔ)言中系統(tǒng)要對(duì)對(duì)象的處理進(jìn)行嚴(yán)格的相容性檢查,防止不安全的轉(zhuǎn)換。

g.頭文件

在C/C++語(yǔ)言中使用頭文件聲明類的原型和全局變量及庫(kù)函數(shù)等,在大的系統(tǒng)中,維護(hù)

這些頭文件是非常困難的,java不支持頭文件,類成員的類型和訪問(wèn)權(quán)限都封裝在一個(gè)類中,

運(yùn)行時(shí)系統(tǒng)對(duì)訪問(wèn)進(jìn)行控制,防止非法的訪問(wèn)。同時(shí),java中用import語(yǔ)句與其它類進(jìn)行

通信,以便訪問(wèn)其它類的對(duì)象。

h.結(jié)構(gòu)和聯(lián)合

C/C++語(yǔ)言中用結(jié)構(gòu)和聯(lián)合來(lái)表示一定的數(shù)據(jù)結(jié)構(gòu),但是由于其成員均為公有的,安全

性上存在問(wèn)題。java不支持結(jié)構(gòu)和聯(lián)合,通過(guò)類把數(shù)據(jù)結(jié)構(gòu)及對(duì)該數(shù)據(jù)的操作都封裝在類里

面。

i.預(yù)處理

C/C++語(yǔ)言中有宏定義,而用宏定義實(shí)現(xiàn)的代碼往往影響程序的可讀性,而java不支持

宏定義。

L2.5java平臺(tái)一不斷擴(kuò)展的計(jì)算平臺(tái)

java不僅是編程語(yǔ)言,還是一個(gè)開(kāi)發(fā)平臺(tái),java技術(shù)給程序員提供了許多工具:編譯器、

解釋器、文檔生成器和文件打包工具等等。同時(shí)java還是一個(gè)程序發(fā)布平臺(tái),有兩種主要

的“發(fā)布環(huán)境",首先java運(yùn)行時(shí)環(huán)境(javaruntimeenvironment,簡(jiǎn)稱JRE)包含了完整的

類文件包,其次許多主要的瀏覽器都提供了java解釋器和運(yùn)行時(shí)環(huán)境。目前Sun公司把java

平臺(tái)劃分成J2EE、J2SE、J2ME三個(gè)平臺(tái),針對(duì)不同的市場(chǎng)目標(biāo)和設(shè)備進(jìn)行定位。J2EE是

Java2EnterpriseEdition,主要目的是為企業(yè)計(jì)算提供一個(gè)應(yīng)用服務(wù)器的運(yùn)行和開(kāi)發(fā)平臺(tái)。

J2EE本身是一個(gè)開(kāi)放的標(biāo)準(zhǔn),任何軟件廠商都可以推出自己的符合J2EE標(biāo)準(zhǔn)的產(chǎn)品,使用

戶可以有多種選擇。IBM.Oracle.BEA、HP等29家已經(jīng)推出了自己的產(chǎn)品,其中尤以BEA

公司的weglogic產(chǎn)品和IBM公司的websphare最為著名。J2EE將逐步發(fā)展成為可以與微軟

的.NET戰(zhàn)略相對(duì)抗的網(wǎng)絡(luò)計(jì)算平臺(tái)。J2SE是Java2StandardEdition,主要目的是為臺(tái)式機(jī)

和工作站提供一個(gè)開(kāi)發(fā)和運(yùn)行的平臺(tái)。我們?cè)趯W(xué)習(xí)java的過(guò)程中,主要是采用J2SE來(lái)進(jìn)行

開(kāi)發(fā)。J2ME是Java2MicroEdition,主要是面向消費(fèi)電子產(chǎn)品,為消費(fèi)電子產(chǎn)品提供一個(gè)

java的運(yùn)行平臺(tái),使得java程序能夠在手機(jī)、機(jī)頂盒、PDA等產(chǎn)品上運(yùn)行。上述三個(gè)java

平臺(tái)的關(guān)系如右圖所示。

1.3一切都是對(duì)象

1.3.1面向過(guò)程

面向?qū)ο蟮牡谝粋€(gè)原則是把數(shù)據(jù)和對(duì)該數(shù)據(jù)的操作都封裝在一個(gè)類中,在程序設(shè)計(jì)時(shí)要

考慮多個(gè)對(duì)象及其相互間的關(guān)系。有些功能并不一定由一個(gè)程序段完全實(shí)現(xiàn),可以讓其它對(duì)

象來(lái)實(shí)現(xiàn),在本例中就由類Max完成求最大值的功能。而面向?qū)ο蟮牧硗庖粋€(gè)好處是實(shí)現(xiàn)

代碼的重復(fù)使用,例如其它的程序中如果需要求最大值的功能,只需要通過(guò)類Max的對(duì)象

就可以達(dá)到目的。但是如果象面向過(guò)程的代碼段那樣把求最大值的算法都實(shí)現(xiàn)在該代碼段

中,則無(wú)法復(fù)用。

1.3.2面向?qū)ο?/p>

i.所有的東西都是對(duì)象。

可以將對(duì)象想象成為一種新型變量,它保存著數(shù)據(jù),而且還可以對(duì)自身數(shù)據(jù)進(jìn)行操作。

例如類Max中保留著數(shù)據(jù)的最大值,同時(shí)還有方法updateMax根據(jù)新加入的price值產(chǎn)生

最新的最大值,還有g(shù)etMax方法返回?cái)?shù)據(jù)的最大值。

2.程序是一大堆對(duì)象的組合。

通過(guò)消息傳遞,各對(duì)象知道自己應(yīng)該做些什么。如果需要讓對(duì)象做些事情,則須向該對(duì)

象”發(fā)送一條消息工具體來(lái)說(shuō),可以將消息想象成為一個(gè)調(diào)用請(qǐng)求,它調(diào)用的是從屬于目標(biāo)

對(duì)象的一個(gè)方法。例如上面面向?qū)ο蟮某绦蚨螒?yīng)該是屬于某個(gè)類的,比如說(shuō)是屬于類

Shopping,則Shopping中就包含了類Max的對(duì)象max,調(diào)用方法updateMax就相當(dāng)于Shopping

對(duì)象對(duì)max對(duì)象發(fā)出一?條指令"updateMax”,要求對(duì)象max重新計(jì)算最大值。

3.每個(gè)對(duì)象都有自己的存儲(chǔ)空間。

可容納其它對(duì)象,或者說(shuō)通過(guò)封裝現(xiàn)有的對(duì)象,可以產(chǎn)生新型對(duì)象。因此,盡管對(duì)象的

概念非常簡(jiǎn)單,但是經(jīng)過(guò)封裝以后卻可以在程序中達(dá)到任意高的復(fù)雜程度。

4.每個(gè)對(duì)象都屬于某個(gè)類。

根據(jù)語(yǔ)法,每個(gè)對(duì)象都是某個(gè)"類"的一個(gè)"實(shí)例〃。一個(gè)類的最重要的的特征就是"能將

什么消息發(fā)給它?“,也就是類本身有哪些操作。例如max是類Max的實(shí)例。

1.4構(gòu)建java程序

1.4.1第一個(gè)javaapplication

java程序分為javaapplication(java應(yīng)用程序)和javaapplet(java小應(yīng)用程序)兩種。

下面讓我們編寫一個(gè)java應(yīng)用程序,它能夠利用來(lái)自java標(biāo)準(zhǔn)庫(kù)的System對(duì)象的多種方法,

打印出與當(dāng)前運(yùn)行的系統(tǒng)有關(guān)的資料。其中“〃”代表一種注釋方式,表示從這個(gè)符號(hào)開(kāi)始到

這行結(jié)束的所有內(nèi)容都是注釋。在每個(gè)程序文件的開(kāi)頭,如果這個(gè)文件的代碼中用到了系統(tǒng)

所提供的額外的類,就必須放置一個(gè)import語(yǔ)句。說(shuō)它是額外的是指一個(gè)特殊的類庫(kù)

"java.lang"會(huì)自動(dòng)導(dǎo)入到每個(gè)java文件。

〃這是我們的第一個(gè)javaapplication,該程序保存在文件Property.java中

importjava.ulil.*;/*下面我們用到了Date和Properties這兩個(gè)類,是

屬于java.util這個(gè)包的;*/

/*而System和Runtime這兩個(gè)類,是屬于

java.lang這個(gè)包的。*/

DublicclassProoertv

{〃程序員給這個(gè)類取名為Property

DubliusUUicvuidiiiainfSliingaigs[])

{//main是類的主方法

Svstem.out.DrintlnfnewDale()):〃在命令行下面打印出日期

PropertiesD=Svsi?m.cetProDerlies():〃獲得系統(tǒng)的Prooerties對(duì)象p

D.lisl(Svstem.out):〃在命令行下打印出D申的各個(gè)系統(tǒng)變量的幅

Svstem.out.orintlnC―MemoryUsaae:"):/*打印一行字符串一MemoryUsage*/

Runtimert=Runtime.getRuntime();〃獲得系統(tǒng)的Runtime對(duì)象rt

Svstem.out.nrintlnC'TotalMemorv="

+rt.totalMemory()〃打印總內(nèi)存大小

+"FreeMcmorv="

+rt.freeMemory());〃打印空閑內(nèi)存大小

}//endofmain

}//endofclass

在java中,程序都是以類的方式組織的,java源文件都保存在以java為后綴的.java文

件當(dāng)中。每個(gè)可運(yùn)行的程序都是一個(gè)類文件,或者稱之為字節(jié)碼文件,保存在.class文件中。

而作為一個(gè)javaapplication,類中必須包含主方法,程序的執(zhí)行是從main方法開(kāi)始的,方

法頭的格式是確定不變的:

publicstaticvoidmain(Stringargs[])

其中關(guān)鍵字public意味著方法可以由外部世界調(diào)用。main方法的參數(shù)是一個(gè)字符串?dāng)?shù)

組args,雖然在本程序中沒(méi)有用到,但是必須列出來(lái)。

程序的第一行非常有意思:

System.out.println(newDate。);

打印語(yǔ)句的參數(shù)是一個(gè)日期對(duì)象Date,而創(chuàng)建Date對(duì)象的目的就是把它的值發(fā)給

println()語(yǔ)句。一旦這個(gè)語(yǔ)句執(zhí)行完畢,Date對(duì)象就沒(méi)用了,而后”無(wú)用內(nèi)存回收器”會(huì)將其

收回。

第二行中調(diào)用了System.gelProperties()。從幫助文檔中可知,getProperties()是System

類的?個(gè)靜態(tài)方法(static方法),由于它是“靜態(tài)”的,所以不必創(chuàng)建任何對(duì)象就可以調(diào)用該

方法。在第三行,Properties對(duì)象有一個(gè)名為lisl()的方法,它將自己的全部?jī)?nèi)容都發(fā)給一個(gè)

PrintStream對(duì)象,該對(duì)象就是list。方法的參數(shù)。

第四行和第六行是典型的打印語(yǔ)句,其中第六行通過(guò)運(yùn)算符”+”的重載來(lái)連接多個(gè)字符

串對(duì)象,在java中只有當(dāng)"I”運(yùn)算符作用于字符串時(shí)在能夠進(jìn)行重載。但足讓我們仔細(xì)觀察

下述語(yǔ)句:

Svstem.out.printlnC'TotalMcmorv="

+rt.totalMcmorv()〃打印總內(nèi)存大小

+"FreeMemorv="

+rt.freeMemory());〃打印空閑內(nèi)存大小

其中,totalMemory()和freeMemory()返回的是數(shù)值,并非String對(duì)象。如果將一個(gè)字

符串與一個(gè)數(shù)值相加,結(jié)果會(huì)如何?在這種情況下,編譯器會(huì)自動(dòng)調(diào)用一個(gè)toSlring。方法,

將該數(shù)值(int型或者float型)轉(zhuǎn)換成字符串。經(jīng)過(guò)這樣處理以后,就可以用“+”進(jìn)行字符

串連接了。

main。的第五行通過(guò)調(diào)用Runtime的gctRuntimc。方法創(chuàng)建了一個(gè)Runtime對(duì)象,該對(duì)

象中包含了內(nèi)存等信息。

1.4.2java程序的編輯

java程序的編輯可以使用任何一種文本編輯器,例如UltraEdit>NotepadsWordpad甚

至word,然后只要把編輯好的文件存成.java文件。當(dāng)然也可以用?些集成開(kāi)發(fā)環(huán)境,例如

Borland公司的JBuilder,IBM公司的VisualageforJava,墨爾本大學(xué)的BlueJ等,此外還有

cafe、kawa等其它集成開(kāi)發(fā)環(huán)境。

1.4.3java程序的編譯

Sun公司為全世界的java程序員提供了一個(gè)免費(fèi)的java程序開(kāi)發(fā)包(JavaDevelopKit,

簡(jiǎn)稱JDK),其中包括了java編譯器命令"javac",以及java執(zhí)行命令”java“,還有幫助文檔

生成器命令"javadoc”等等。所有這些命令都可以在命令行卜運(yùn)行,例如我們要編譯上述java

文件Properly.java,如果是在Windows中進(jìn)行開(kāi)發(fā),就可以在“命令提示符”下進(jìn)行編譯,在

命令行中敲入"javacProperty.java",如圖1-3所示:

6?C:\¥IKDO¥S\systeM32\c>d.exeBsg

D:\>jauacProperty.jaua

xl

圖1-3java程序的命令行編譯

1.4.4javaapplication的執(zhí)行

當(dāng)編譯結(jié)束以后,在java源文件中的每一個(gè)類都會(huì)生成相應(yīng)的.class文件,例如上圖

中就會(huì)生成一個(gè)Property.class文件,而java程序在執(zhí)行時(shí)調(diào)用的是.class文件。Java

application的執(zhí)行是在命令行下進(jìn)行的,如果是在Windows系統(tǒng)中,就可以"命令提示符”

下敲入"javaPropery"進(jìn)行執(zhí)行,該"java"命令會(huì)啟動(dòng)java虛擬機(jī),并讀入Property.class文件

進(jìn)行執(zhí)行。

由于該程序的運(yùn)行結(jié)果直接在命令行下進(jìn)行輸出

1.4.5第一個(gè)javaapplet

java程序的另一種形式是javaapplet,applet沒(méi)有main。方法,它必須嵌在超文本文件

中,在瀏覽器中進(jìn)行運(yùn)行,右面這個(gè)程序?qū)⒃跒g覽器中顯示一行字符串。

//這是我們的第一個(gè)javaapplet,該程序保存在文件HelloEducation.java中

importjava.awt.Graphics;〃在進(jìn)行顯示輸出時(shí),需要用到類Graphics的對(duì)象:

importjava.applet.Applet;//Applet類是所有的javaapplet的父類;

publicclassHelloEducationextendsApplet

(

〃程序員給這個(gè)類取名為HelloEducation

〃所有的applet程序都是Applet類的子類

publicStrings;

publicvoidinit()

(//

s=newStnng("WelcometoTongfangEducation");〃生成一個(gè)字符串對(duì)象

I

publicvoidpaint(Graphicsg)

(

g.drawString(s,25,25);〃在瀏覽器中坐標(biāo)為(25,25)的位置顯示字符串s

1

}

applet程序是從方法init()開(kāi)始執(zhí)行的,在該方法中完成了對(duì)字符串s的初始化工作,而

顯示功能是在方法paint()中執(zhí)行的。paint()方法是類Applet的一個(gè)成員方法,其參數(shù)

是圖形對(duì)象Graphicsg,通過(guò)調(diào)用對(duì)象g的drawString()方法就可以顯示輸出。

1.4.6javaapplet的執(zhí)行*

javaapplet程序也是一個(gè)類,其編譯方式與javaapplication完全一樣,HelloEducalion.java

程序經(jīng)過(guò)編譯以后就生戌了HelloEducation.class文件。javaapplet的執(zhí)行方式與java

application完全不同,javaapplci程序必須嵌入到html文件中才能夠執(zhí)行,因此必須編寫相

應(yīng)的html文件。下面為HelloEducaiton.html文件的內(nèi)容:

<html>

<appletcode=HelloEducalion.classwidth=250heighl=250>

</applei>

</html>

然后可以通過(guò)JDK所提供的命令"applctvicwcr”,在命令行下面執(zhí)行javaapplet程序。如

果是在Windows操作系統(tǒng)中,就可以在“命令提示符"下敲入"appletviewer

HeiloEducation.hlml

此時(shí)系統(tǒng)會(huì)彈出另外?個(gè)窗M運(yùn)行該applet程序。

applet還可以采用另外一種方式運(yùn)行,那就是直接在瀏覽器中打開(kāi)HelioEducation,ktnil

程序。在主流的瀏覽器如1E^Netscape中都包含有java虛擬機(jī),負(fù)責(zé)解釋執(zhí)行javaapplet

程序。

1.5java程序規(guī)范

1.5.1java源程序結(jié)構(gòu)

一個(gè)完整的java源程序應(yīng)該包拈下列部分:

Dackace語(yǔ)句:〃該部分至多只有一句,必須放在源程序的第一句

import語(yǔ)句:/*該部分可以有若干import語(yǔ)句或者沒(méi)有,必須放在所有的

類定義之前*/

publicclassDcfinition:〃公共類定義部分,至多只有一個(gè)公共類的定義

〃iava語(yǔ)言規(guī)定該iava源程序的文件名必須與該公共類名完全?致

classDefinition:〃類定義部分,可以有0個(gè)或者多個(gè)類盅義

interfaceDefinition://接口定義部分,可以有0個(gè)或者多個(gè)接口定義

例如個(gè)iava源程芹可以是如下結(jié)構(gòu),該源程序命名為HelloWoHdApp.java:

oackaseiavawork.helloworld:/*把編譯生成的所有.class文件放到包

iavawork.helloworld中*/

imoortiava.awt.*:〃告訴編譯器本程序中用到系統(tǒng)的AWT包

importjavawork.ncwccntury;/*告訴編譯相本程存中用到用戶自定義

的包iavawork.newcenturv*/

publicclassHelloWorldADDl.....1/*公共類HelloWorldApD的定義,

名字與文件名相同*/

classTheFirstClassl......I〃第一個(gè)普通類TheFirstClass的定義

classTheSecondClassl......)〃第二個(gè)普通類TheSecondClass的定義

……〃其它普通類的定義

interfaceTheFirstIntcrfacc{.....}/*第一個(gè)接口

TheFirstlnterface―定義*/

......〃其它接口定義

package語(yǔ)句:由于java編譯器為每個(gè)類生成一個(gè)字節(jié)碼文件,且文件名與類名相同,

因此同名的類有可能發(fā)生沖突。為了解決這一問(wèn)題,java提供包來(lái)管理類名空間,包實(shí)際提

供了一種命名機(jī)制和可見(jiàn)性限制機(jī)制。而在java的系統(tǒng)類庫(kù)中,把功能相似的類放到一個(gè)

包(package)中,例如所有的圖形界面的類都放在java.awt這個(gè)包中,與網(wǎng)絡(luò)功能有關(guān)的

類都放到這個(gè)包中。用戶自己編寫的類(指.class文件)也應(yīng)該按照功能放在由程

序員自己命名的相應(yīng)的包中,例如上例中的javawork.helloworld就是一個(gè)包。包在實(shí)際的實(shí)

現(xiàn)過(guò)程中是與文件系統(tǒng)相對(duì)應(yīng)的,例如javawork.helloworld所對(duì)應(yīng)的目錄是

path\javawork\helloworld,而path是在編譯該源程序時(shí)指定的。比如在命令行中編譯上述

HelloWorldApp.java文件時(shí),可以在命令行中敲入"javac-df:\javaproject

HelloWoHdApp.java”,則編譯生成的HelloWorldApp.class文件將放在目錄

f:\javaproject\javawork\helloworld\@STffi>此時(shí)f:\javaprojcet相當(dāng)于path。但是如果在編譯

時(shí)不指定path,則生成的.class文件將放在編譯時(shí)命令行所在的當(dāng)前目錄下面。比如在命令

行目錄f:\javaproject下敲入編譯命令"javacHelloWorldApp.java",則生成的

HelloWorldApp.class文件洛放在目錄f:\javaproject下面,此時(shí)的package語(yǔ)句相當(dāng)于沒(méi)起作

用O

但是,如果程序中包含了package語(yǔ)句,則在運(yùn)行時(shí)就必須包含包名。例如,

HelloWorldApp.java程序的第一行語(yǔ)句是:packagepl.p2;編譯的時(shí)候在命令行下輸入"javac

-dpathHelloWorldApp.java",則HelloWorldApp.class將放在目錄path\pl\p2的下面,這時(shí)候

運(yùn)行該程序時(shí)有兩種方式:

第一種:在命令行下的path目錄下輸入字符"javapl.p2.HelloWorldApp"。

第二種:在環(huán)境變量classpath中加入目錄path,則運(yùn)行時(shí)在任何目錄下輸入"java

p1.p2.HelloWor!dApp"即可。

import語(yǔ)句:如果在源程序中用到了除java』ang這個(gè)包以外的類,無(wú)論是系統(tǒng)的類還

是自己定義的包中的類,都必須用import語(yǔ)句標(biāo)識(shí),以通知編譯器在編譯時(shí)找到相應(yīng)的類

文件。例如上例中的java.awt是系統(tǒng)的包,而javawork.ncwccntury是用戶自定義的包。比如

程序中用到了類Button,而B(niǎo)utton是屬于包java.awl的,在編譯時(shí)編譯器將從目錄

classpath\java\awt中去尋找類Button,classpath是事先設(shè)定的環(huán)境變量,比如可以設(shè)為:

classpalh=;d:\jdkl.3\lib\。classpath也可以稱為類路徑,需要提醒大家注意的是,在classpath

中往往包含多個(gè)路徑,用分號(hào)隔開(kāi)。例如classpath=.;d:\jdkl.3\lib\中的第一個(gè)分號(hào)之前的路

徑是一個(gè)點(diǎn),表示當(dāng)前目錄,分號(hào)后面的路徑是d:\jdkl.3\lib\,表示系統(tǒng)的標(biāo)準(zhǔn)類庫(kù)目錄。

在編譯過(guò)程中尋找類時(shí),先從環(huán)境變量classpath的第一個(gè)目錄開(kāi)始往下找,比如先從當(dāng)前

目錄往下找java.awt中的類Button時(shí),編譯器找不著,然后從環(huán)境變量classpath的第二個(gè)目

錄開(kāi)始往下找,就是從系統(tǒng)的標(biāo)準(zhǔn)類庫(kù)目錄d:\jdkl.3Vib開(kāi)始往下找java.awl的Bullon這個(gè)

類,最后就找到了。如果要從一個(gè)包中引入多個(gè)類則在包名后加上“?*”表示。

如果程序中用到了用戶自己定義的包中的類,假如在上面程序中要用到

javawork.newcentuiy包中的類HelloWorldApp,而包javawork.newcentury所對(duì)應(yīng)的目錄是

f:\javaproject\javawork\newcentury,classpath仍舊是classpath=.;d:\jdkl.3\lib\,則編譯器在

編譯時(shí)將首先從當(dāng)前目錄尋找包javawork.ncwccntury,結(jié)果是沒(méi)有找到;然后又從環(huán)境變量

classpath的第二個(gè)目錄d:\jdkl.3\lib\開(kāi)始往下找,但是仍然沒(méi)有找到。原因在于包

javawork.newcentury是放在目錄f:\javaprojectTffio因此,需要重新設(shè)定環(huán)境變量classpath,

設(shè)為classpath=.;d:\jdkl.3\lib\;f:\javaproject\。所以編譯器從f:\javaproject開(kāi)始找包

javawork.newcentury就可以找到。

源文件的命名規(guī)則:如果在源程序中包含有公共類的定義,則該源文件名必須與該公共

類的名字完全一致,字母的大小寫都必須一樣。這是java語(yǔ)言的一個(gè)嚴(yán)格的規(guī)定,如果不

遵守,在編譯時(shí)就會(huì)出錯(cuò),因此,在一個(gè)java源程序中至多只能有一個(gè)公共類的定義。如

果源程序中不包含公共類的定義,則該文件名可以任意取名。如果在一個(gè)源程序中有多個(gè)類

定義,則在編譯時(shí)將為每個(gè)類生成一個(gè).class文件。

1.5.2java編程規(guī)范

軟件開(kāi)發(fā)是一個(gè)集體協(xié)作的過(guò)程,程序員之間的代碼是經(jīng)常要進(jìn)行交換閱讀的,因此,

java源程序有一些約定成俗的命名規(guī)定,主要目的是為了提高java程序的可讀性。

包名:包名是全小寫的名詞,中間可以由點(diǎn)分隔開(kāi),例如:java.awt.event;

類名:首字母大寫,通常由多個(gè)單詞合成一個(gè)類名,要求每個(gè)單詞的首字母也要大寫,

例如classHelloWorldApp;

接口名:命名規(guī)則與類名相同,例如interfaceCollection;

方法名:往往由多個(gè)單詞合成,第一個(gè)單詞通常為動(dòng)詞,首字母小寫,中間的每個(gè)單詞

的首字母都要大寫,例如:balanceAccount,isButtonPressed;

變量名:全小寫,一般為名詞,例如:length;

常量名:基本數(shù)據(jù)類型的常量名為全大寫,如果是由多個(gè)單詞構(gòu)成,可以用下劃線隔開(kāi),

例如:intYEAR,intWEEK_OF_MONTH;如果是對(duì)象類型的常量,則是大小寫混合,由大

寫字母把單詞隔開(kāi)。

1.5.3java幫助文檔

java中所有類庫(kù)的介紹都保存在java幫助文檔中,程序員在編程過(guò)程中,必須查閱該

幫助文檔,了解系統(tǒng)提供的類的功能、成員方法、成員變量等等信息以后,才能夠更好的編

程。同時(shí),java開(kāi)發(fā)工具包(JDK)提供了

"java"、"javac"、"javadoc”、

"applelviewer"等命令,在java幫助文檔中也對(duì)此進(jìn)行了詳細(xì)的介紹。java幫助文檔是

以HTML文件的形式組織,通常是安裝在JDK目錄下的docs子目錄中的indcx.html文件,

所以用瀏覽器就可以進(jìn)行杳閱。例如JDK是安裝在D:\jdkl.3目錄下面,則用瀏覽器打開(kāi)

D:\jdkl.3\docs\index.html文件,就可以看到圖1-4所示的幫助文檔。

圖1-4在IE中打開(kāi)java幫助文檔

如果希望查閱JDK的命令,則可以選擇"ToolDocumentation",如圖1-5紅字所示。

n

>&a????JJ13J”4*?心?,爹?習(xí)36。2

IMtip}gc>V?iMraWH^Mj?■.

SDKToolOocuBentalim

IU<?C?B£?2mb■3z

RtjntiocBrwirwwcnland]?"Plugin

fee-JM-

三?

am?

ayri:"三?

1m2?

MM”fq,?

DCMATutorialseTrelnirwLeodR^fcrcoc^

feeIvfr1BlietM—r.,r9Mpeir”,.~2?”3?<ot?Z??

Tfg[Twarlal

Mdie,?UwJEx?CBm4lv?ac<v4e?t?1*.

:ralnlnffar(heJayalaMiAage

”,yy?CttauuM<?>????.

ObHinrCcurxt(extht[granoff-[mfiiarff

C-RftcfttM"?Hwlet4r

圖1-5查閱JDK的命令

此時(shí)瀏覽器就會(huì)把java、javac、javadoc、appletviewer等命令列出來(lái),如圖1-6。

?,叫?■"

BasicToolsa

Thnetoolsarwthefcaodaticnof,heJera2SULDwyar?,h<foolsyouut?tocr?aKeMK414w9lieetiectt.

“”?cThe-Herf?r,MJvre>?re<rMBlr<lan<uM^.(SflMllJ

OK血]

TM《bJara!Aihie?BincleIMKHKiovt7M,hfortSalgp]

圓盤】

D?a14】MKhrr.Jr*,itnolonc?rprvridtl.

JaveducAPt4^cuMtatl0Ateritreiar.SetJB?4CKL3IfoecPye河叩

tsiA^r

arrletvicocrM3deiweag^lettviihcut.Ebrewer.C$Q1K11]

Cmrjfl

Jar■?wcJ—Ar<hSvc<JWfilet.—15】

(£ET

TteJEt^Zter.(SdttU]

CUDST

jevahChet4rrmittub<mrr?iar.IJtedtoEt。Mtivekhodt9(Sfilslil

rt'njal

ClAMHiedlaMeeabler(Sfiltflf)

(gsr

eitcbeckthiliiyt?4et?tJ?r<cnf)tc<*.

RcaotcMethodInvocation(RMI)Tools

TW?i7?htl>Q?crvetts?thatU>t?r?ciwwtheM?rolherrwtewii.

rmcG?n*rat??c4?d★?[?,0?forrwaoeobject*.

r^recialryKMOQ.fqreci^trylhhr|1)W

圖1-6列出JDK的命令

但是大多時(shí)時(shí)候,我們需要查閱的是類庫(kù)的文檔,因此需要在“D:\jdkl.3\docs\index.htnV”

文件中選擇"Java2PlatformAPISpecification",如圖1-7中紅字所示。

X*?MV“2EA、ukt>—

--?-,工Ga”S?>」0?」UGJ2

-3?***??-

?J

ATI*LonsuageDocwMnt.tion

ga2XiUfidM6JTUB1

OtherAMMiledwiththeIm2fl1

~?Abfl?£P(guān)adcMZ

~HwJm(wwwiwSwdfkuimXWJU,

11dIn■夕i??s】OUNM打dSf,-I”.

Guidet。Fe?tur?8-J?v?Platfora

Xri<Be?,??CM1WNV<Mi4efetvRwial4Z

Twe.FlWTVMM.MOZG

St>0MKX_£O!et2cA3,

Fe?R?r*>H???*?,”>61.2“th?2Fl?tf?rK

Bas?icF-c?iur??、?:!;--???;;>■■

?CftlhuiUDLJbaaan^

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論