java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版_第1頁
java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版_第2頁
java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版_第3頁
java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版_第4頁
java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版_第5頁
已閱讀5頁,還剩277頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程序的執(zhí)行特征;2.理解匯編語言指令與機(jī)器語言指令的關(guān)系,理解高級(jí)語言與匯編語言的關(guān)系,理解編譯程序或編譯器的功能與作用,初步理解掌握?qǐng)?zhí)行程序的過程;3.了解高級(jí)語言發(fā)展簡(jiǎn)史;初步理解操作系統(tǒng)、客戶/服務(wù)器以及Internet和WWW的基本概念。2java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程序的執(zhí)行特征;2.理解匯編語言指令與機(jī)器語言指令的關(guān)系,理解高級(jí)語言與匯編語言的關(guān)系,理解編譯程序或編譯器的功能與作用,初步理解掌握?qǐng)?zhí)行程序的過程;3.了解高級(jí)語言發(fā)展簡(jiǎn)史;初步理解操作系統(tǒng)、客戶/服務(wù)器以及Internet和WWW的基本概念。2學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程學(xué)習(xí)目標(biāo)4.了解Java語言的特點(diǎn),理解Java程序上機(jī)執(zhí)行過程,掌握簡(jiǎn)單的Java應(yīng)用程序和Javaapplet程序的基本結(jié)構(gòu),能上機(jī)執(zhí)行Java應(yīng)用程序和Javaapplet程序;能初步使用格式化輸入輸出語句。5.初步理解對(duì)象和類的概念,掌握表示它們的UML圖形符號(hào)。3學(xué)習(xí)目標(biāo)4.了解Java語言的特點(diǎn),理解Java程序上機(jī)執(zhí)內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML4內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW4內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML5內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW51.1計(jì)算機(jī)、Internet和WWWJava語言是當(dāng)今最為成功的計(jì)算機(jī)高級(jí)語言之一,是開發(fā)互聯(lián)網(wǎng)應(yīng)用的重要語言。它是富有經(jīng)驗(yàn)的程序員或計(jì)算機(jī)及其相關(guān)專業(yè)的學(xué)生不能不學(xué)習(xí)的語言,事實(shí)上,它是許多各類學(xué)校計(jì)算機(jī)及其相關(guān)專業(yè)學(xué)生的一門課程。通過對(duì)它的學(xué)習(xí),學(xué)生將熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)基本知識(shí)和基本技能,并積累面向?qū)ο缶幊探?jīng)驗(yàn),掌握當(dāng)流行的應(yīng)用程序開發(fā)技術(shù),而這正是《Java語言程序設(shè)計(jì)教材》主要目的之一。本章是學(xué)習(xí)Java語言程序設(shè)計(jì)的一個(gè)簡(jiǎn)短入門。61.1計(jì)算機(jī)、Internet和WWWJava語言是當(dāng)今1.1.1計(jì)算機(jī)的組成與運(yùn)行我們操作過計(jì)算機(jī)的人都知道,計(jì)算機(jī)就是一種設(shè)備,它能讓我們進(jìn)行文字處理,繪制圖形,玩游戲,聽音樂,制作動(dòng)畫,上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影,等等。這是從計(jì)算機(jī)應(yīng)用角度上的認(rèn)識(shí),實(shí)際上,計(jì)算機(jī)是能夠以比人快幾百萬甚至幾十億倍的速度執(zhí)行計(jì)算和邏輯判斷的設(shè)備。這種說法可能讓人感到有點(diǎn)神奇甚至迷惑:71.1.1計(jì)算機(jī)的組成與運(yùn)行我們操作過計(jì)算機(jī)的人都知道,計(jì)算1.1.1計(jì)算機(jī)的組成與運(yùn)行“文字處理、繪制圖形、玩游戲、制作動(dòng)畫、聽音樂、上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影等”是怎樣與“執(zhí)行計(jì)算和邏輯判斷”聯(lián)系起來呢?實(shí)際上,我們使用的計(jì)算機(jī)即計(jì)算機(jī)系統(tǒng)包含兩大部分,一是硬件本身,它包括鍵盤、鼠標(biāo)、顯示器、磁盤和主機(jī)(箱)等;另一是軟件。81.1.1計(jì)算機(jī)的組成與運(yùn)行“文字處理、繪制圖形、玩游戲、制1.1.1計(jì)算機(jī)的組成與運(yùn)行計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏輯判斷的功能,這些功能表現(xiàn)為一組指令,如加法指令、減法指令、取數(shù)指令、存數(shù)指令、輸入指令和輸出指令以及邏輯判斷類指令等;而軟件是程序員利用計(jì)算機(jī)指令集,規(guī)劃組織完成令我們激動(dòng)的玩游戲、聽音樂和制作動(dòng)畫等計(jì)算機(jī)應(yīng)用的特定指令序列。軟件也可簡(jiǎn)稱為程序。實(shí)際上,91.1.1計(jì)算機(jī)的組成與運(yùn)行計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏1.1.1計(jì)算機(jī)的組成與運(yùn)行軟件與程序是不等價(jià)的,簡(jiǎn)單說,軟件=程序+相關(guān)文檔資料。計(jì)算機(jī)硬件是在程序的指令集控制下處理數(shù)據(jù)的。計(jì)算機(jī)程序控制著計(jì)算機(jī),使它按順序執(zhí)行一系列動(dòng)作,這些動(dòng)作是由程序員規(guī)劃的,并用指令描述的。各種計(jì)算機(jī)無論外觀差別有多大,每一臺(tái)計(jì)算機(jī)實(shí)際上都可劃分為五個(gè)邏輯單元(或稱五大部分),如圖1-1所示。101.1.1計(jì)算機(jī)的組成與運(yùn)行軟件與程序是不等價(jià)的,簡(jiǎn)單說,軟計(jì)算程序輸入設(shè)備輸出設(shè)備外存儲(chǔ)器外部設(shè)備接口內(nèi)存運(yùn)算器控制器原始數(shù)據(jù)計(jì)算結(jié)果取數(shù)存數(shù)指令指令數(shù)據(jù)線控制信號(hào)線圖1-1計(jì)算機(jī)的基本組成11計(jì)算程序輸入設(shè)備輸出設(shè)備外存儲(chǔ)器外部設(shè)備接口原始數(shù)據(jù)計(jì)算結(jié)果1.1.1計(jì)算機(jī)的組成與運(yùn)行1)輸入單元。輸入單元是計(jì)算機(jī)接收信息的部分。它從各種輸入設(shè)備讀取信息(數(shù)據(jù)和計(jì)算機(jī)程序),并把這些放置到其它處理信息的單元中。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過鍵盤輸入的,但也逐漸出現(xiàn)使用其它許多輸入設(shè)備來進(jìn)行信息輸入,如掃描儀、聲音輸入設(shè)備等。121.1.1計(jì)算機(jī)的組成與運(yùn)行1)輸入單元。輸入單元是計(jì)算機(jī)接1.1.1計(jì)算機(jī)的組成與運(yùn)行2)輸出單元。輸出單元是計(jì)算機(jī)輸出信息的部分。它把計(jì)算機(jī)處理過的信息放置到各種輸出設(shè)備中,從而使這些信息能夠被計(jì)算機(jī)外部使用。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過屏幕顯示和紙張打印輸出的,同時(shí)也出現(xiàn)使用其它許多輸出設(shè)備來進(jìn)行信息輸出,如音箱等。131.1.1計(jì)算機(jī)的組成與運(yùn)行2)輸出單元。輸出單元是計(jì)算機(jī)輸1.1.1計(jì)算機(jī)的組成與運(yùn)行3)內(nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中存取速度快、容量相對(duì)較少的儲(chǔ)存部分。它能夠記憶來自輸入單元的信息,因而能夠在需要的時(shí)候立即處理這些信息。內(nèi)存單元還能夠記憶被處理過的信息,直到輸出單元把信息放到輸出設(shè)備上。內(nèi)存單元經(jīng)常被稱為內(nèi)存或主存。內(nèi)存在計(jì)算機(jī)電源關(guān)閉后將不起作用。141.1.1計(jì)算機(jī)的組成與運(yùn)行3)內(nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中1.1.1計(jì)算機(jī)的組成與運(yùn)行4)中央處理單元(CPU)。中央處理單元是計(jì)算機(jī)中的“加工”和“管理”部分。它負(fù)責(zé)執(zhí)行各種計(jì)算如加、減、乘、除等,負(fù)責(zé)邏輯判斷如比較內(nèi)存中的兩個(gè)數(shù)是否相等,這部分又稱為運(yùn)算器。同時(shí),它還是計(jì)算機(jī)的協(xié)調(diào)者,負(fù)責(zé)管理對(duì)其它部分的操作,這部分又稱為控制器。在應(yīng)該把信息讀到內(nèi)存單元中時(shí),CPU就會(huì)向輸入設(shè)備發(fā)出請(qǐng)求;151.1.1計(jì)算機(jī)的組成與運(yùn)行4)中央處理單元(CPU)。中央1.1.1計(jì)算機(jī)的組成與運(yùn)行當(dāng)要把內(nèi)存中信息用于計(jì)算時(shí),CPU會(huì)把這種請(qǐng)求通知其內(nèi)部的運(yùn)算器;當(dāng)要把內(nèi)存中的信息發(fā)送給某個(gè)輸出設(shè)備時(shí),CPU就會(huì)告訴輸出設(shè)備。5)二級(jí)存儲(chǔ)單元。二級(jí)存儲(chǔ)單元是計(jì)算機(jī)中可以長(zhǎng)久保存信息的高容量存儲(chǔ)部分。沒有被其它單元使用的程序和數(shù)據(jù)通常放在二級(jí)存儲(chǔ)單元中(如磁盤),161.1.1計(jì)算機(jī)的組成與運(yùn)行當(dāng)要把內(nèi)存中信息用于計(jì)算時(shí),CP1.1.1計(jì)算機(jī)的組成與運(yùn)行這些信息可能需要幾個(gè)小時(shí)、幾天、幾個(gè)月甚至幾年才會(huì)被使用。二級(jí)存儲(chǔ)單元也稱為外存儲(chǔ)器,外存或稱為輔存。計(jì)算機(jī)運(yùn)行的過程,就是順次執(zhí)行程序中指令的過程。計(jì)算機(jī)的指令以及運(yùn)行時(shí)數(shù)據(jù)都是采用二進(jìn)制數(shù)表示的。下面舉一個(gè)簡(jiǎn)單的例子說明計(jì)算機(jī)的運(yùn)行。171.1.1計(jì)算機(jī)的組成與運(yùn)行這些信息可能需要幾個(gè)小時(shí)、幾天、1.1.1計(jì)算機(jī)的組成與運(yùn)行例1.1設(shè)計(jì)一個(gè)程序,其運(yùn)行后接受用戶輸入的兩個(gè)數(shù),然后計(jì)算其平均值,并輸出結(jié)果。解答:解決問題的過程為:1)輸入兩個(gè)數(shù)存放于變量a和b中;2)計(jì)算(a+b)/2,并將其結(jié)果存儲(chǔ)于變量X中;3)輸出X中的值;181.1.1計(jì)算機(jī)的組成與運(yùn)行例1.1設(shè)計(jì)一個(gè)程序,其運(yùn)行后1.1.1計(jì)算機(jī)的組成與運(yùn)行當(dāng)用計(jì)算機(jī)的指令來完成上述過程時(shí),需要考慮到計(jì)算機(jī)的具體特性,如計(jì)算機(jī)中沒有變量,而是用存儲(chǔ)單元來表示等。完成上述過程的指令序列及其運(yùn)行時(shí)在內(nèi)存的存儲(chǔ)布局如圖1-2所示。191.1.1計(jì)算機(jī)的組成與運(yùn)行當(dāng)用計(jì)算機(jī)的指令來完成上述過程時(shí)圖1-2計(jì)算X=(a+b)/2指令序列(表示a)00000100內(nèi)存內(nèi)存單元地址(表示b)00000101(表示X)00000110100001100110000000000111101000100000010000000000000010011000011001100000000011001010001000000101000000000000111010100000000001000000000000010001000000001100000000000101000000000001010010110001000000100001100011110110111100010001101010100010000001100000000000011100101110101101010100000011000111111110111000100010111101000010001120圖1-2計(jì)算X=(a+b)/2指令序列(表示a)0000011.1.1計(jì)算機(jī)的組成與運(yùn)行例子說明:每8位二進(jìn)制數(shù)稱為一個(gè)字節(jié)(Byte),每一條指令用若干個(gè)字節(jié)的二進(jìn)制代碼表示,并存儲(chǔ)到內(nèi)存單元中。最小內(nèi)存單元為1個(gè)字節(jié),它必須用一個(gè)編號(hào)來表示,這個(gè)編號(hào)稱為單元地址。在圖1-2中我們并沒有把每個(gè)單元的地址標(biāo)出來,只標(biāo)出每條指令代碼存儲(chǔ)的起始單元的地址。211.1.1計(jì)算機(jī)的組成與運(yùn)行例子說明:每8位二進(jìn)制數(shù)稱為一個(gè)1.1.1計(jì)算機(jī)的組成與運(yùn)行圖1-2中的開始三個(gè)字節(jié)存儲(chǔ)單元分別表示變量a、b和X,用于存儲(chǔ)它們的值。其它存儲(chǔ)單元用于存儲(chǔ)指令,這些指令的含義解釋如下。第一條指令用2個(gè)字節(jié)數(shù)據(jù)“1000011001100000”表示CPU從輸入設(shè)備讀進(jìn)一個(gè)數(shù)(a)并放置到寄存器AL中。221.1.1計(jì)算機(jī)的組成與運(yùn)行圖1-2中的開始三個(gè)字節(jié)存儲(chǔ)單元1.1.1計(jì)算機(jī)的組成與運(yùn)行第二條指令用3個(gè)字節(jié)數(shù)據(jù)“101000100000010000000000”表示CPU把寄存器AL中數(shù)放置到內(nèi)存中地址編號(hào)為00000100的存儲(chǔ)單元(1個(gè)字節(jié))中保存。其中第3個(gè)字節(jié)數(shù)據(jù)和第2個(gè)字節(jié)數(shù)據(jù)合成一個(gè)16位二進(jìn)制數(shù)據(jù)(即0000000000000100),表示存儲(chǔ)單元(a)的地址。231.1.1計(jì)算機(jī)的組成與運(yùn)行第二條指令用3個(gè)字節(jié)數(shù)據(jù)“1011.1.1計(jì)算機(jī)的組成與運(yùn)行第三條指令用2個(gè)字節(jié)數(shù)據(jù)“1000011001100000”表示CPU從輸入設(shè)備讀進(jìn)一個(gè)數(shù)(b)并放置到寄存器AL中;第四條指令用3個(gè)字節(jié)數(shù)據(jù)“101000100000010100000000”表示CPU把寄存器AL中數(shù)放置到內(nèi)存中地址編號(hào)為00000101的存儲(chǔ)單元(1個(gè)字節(jié))中保存。其中第3個(gè)字節(jié)數(shù)據(jù)和第2個(gè)字節(jié)數(shù)據(jù)合成一個(gè)16位二進(jìn)制數(shù)據(jù)(即241.1.1計(jì)算機(jī)的組成與運(yùn)行第三條指令用2個(gè)字節(jié)數(shù)據(jù)“1001.1.1計(jì)算機(jī)的組成與運(yùn)行即0000000000000101),表示存儲(chǔ)單元(b)的地址。第五條指令用3個(gè)字節(jié)數(shù)據(jù)“101000000000010000000000”表示CPU從內(nèi)存中地址編號(hào)為00000100的存儲(chǔ)單元讀進(jìn)1個(gè)字節(jié)數(shù)據(jù)(a)并放置到AL寄存器中。251.1.1計(jì)算機(jī)的組成與運(yùn)行即000000000000011.1.1計(jì)算機(jī)的組成與運(yùn)行第六條指令用4個(gè)字節(jié)數(shù)據(jù)“00000000110000000000010100000000”表示CPU把內(nèi)存中地址編號(hào)為00000101存儲(chǔ)單元的數(shù)據(jù)(b)加到AL寄存器中。第七條指令用2個(gè)字節(jié)數(shù)據(jù)“1011000100000010”表示CPU把數(shù)00000010即2存儲(chǔ)到CL寄存器中。261.1.1計(jì)算機(jī)的組成與運(yùn)行第六條指令用4個(gè)字節(jié)數(shù)據(jù)“0001.1.1計(jì)算機(jī)的組成與運(yùn)行第八條指令用2個(gè)字節(jié)數(shù)據(jù)“1111011011110001”表示CPU用CL中數(shù)支除AL寄存器中數(shù),其結(jié)果存儲(chǔ)在AL寄存器中。第九條指令用3個(gè)字節(jié)數(shù)據(jù)“101000100000011000000000”表示CPU把寄存器AL中數(shù)傳送到內(nèi)存中地址編號(hào)為00000110的存儲(chǔ)單元(X)中保存;271.1.1計(jì)算機(jī)的組成與運(yùn)行第八條指令用2個(gè)字節(jié)數(shù)據(jù)“1111.1.1計(jì)算機(jī)的組成與運(yùn)行第十條指令用3個(gè)字節(jié)數(shù)據(jù)“101110101101010100000011”表示CPU把數(shù)0000001111010101即03D5H(十六進(jìn)制)存儲(chǔ)到DX寄存器中;03D5H表示顯示器的端口號(hào)。第十一條指令用1個(gè)字節(jié)數(shù)據(jù)“11101110”表示CPU把AL寄存器中數(shù)送到DX寄存器所指向的端口連接的設(shè)備即顯示器。281.1.1計(jì)算機(jī)的組成與運(yùn)行第十條指令用3個(gè)字節(jié)數(shù)據(jù)“1011.1.1計(jì)算機(jī)的組成與運(yùn)行第十二條指令用1個(gè)字節(jié)數(shù)據(jù)“11110100”表示CPU停止執(zhí)行指令。計(jì)算機(jī)的指令集也稱為機(jī)器語言,上述的指令序列也稱為機(jī)器語言程序。注意,該例子中用漢語描述計(jì)算過程時(shí)的每一步,在用機(jī)器語言描述時(shí)需要多條指令。291.1.1計(jì)算機(jī)的組成與運(yùn)行第十二條指令用1個(gè)字節(jié)數(shù)據(jù)“111.1.2機(jī)器語言、匯編語言和高級(jí)語言機(jī)器語言就是計(jì)算機(jī)CPU的指令集合,用它表示的計(jì)算程序即機(jī)器語言程序可以直接由計(jì)算機(jī)執(zhí)行。我們所謂的使用計(jì)算機(jī),其它實(shí)質(zhì)就是通過使用機(jī)器語言來完成計(jì)算任務(wù),所以從這個(gè)角度上講,機(jī)器語言就是機(jī)器的“代表”或“化身”。但機(jī)器語言程序難理解,因?yàn)闄C(jī)器指令是用二進(jìn)制數(shù)據(jù)表示的。為了便于記憶、301.1.2機(jī)器語言、匯編語言和高級(jí)語言機(jī)器語言就是計(jì)算機(jī)CP1.1.2機(jī)器語言、匯編語言和高級(jí)語言理解機(jī)器指令或機(jī)器語言程序,人們用字母符號(hào)來表示機(jī)器指令,這種字母符號(hào)一般用一個(gè)有意義單詞的前幾個(gè)字母組成,如ADD表示加法指令,MOV表示傳送數(shù)據(jù)等等。符號(hào)化的指令稱為匯編指令,匯編指令的集合稱為匯編語言,用它表示的程序稱為匯編語言程序。上節(jié)例子中的機(jī)器語言程序?qū)?yīng)的匯編語言程序?yàn)橄卤碛也糠炙荆?11.1.2機(jī)器語言、匯編語言和高級(jí)語言理解機(jī)器指令或機(jī)器語言32321.1.2機(jī)器語言、匯編語言和高級(jí)語言將該匯編語言程序與上節(jié)機(jī)器語言程序比較,我們可以發(fā)現(xiàn)每一條匯編語言指令與每一條機(jī)器指令基本上是一一對(duì)應(yīng)的。注意,該匯編語言程序中,方括號(hào)中的數(shù)表示存儲(chǔ)單元地址,這個(gè)數(shù)前后加上方括號(hào),表示以該數(shù)為地址的存儲(chǔ)單元內(nèi)容,如第2條匯編指令中,[0100]表示地址為00000100的存儲(chǔ)單元(a),寄存器中的數(shù)(a)將被放置在其中;331.1.2機(jī)器語言、匯編語言和高級(jí)語言將該匯編語言程序與上節(jié)1.1.2機(jī)器語言、匯編語言和高級(jí)語言不加方括號(hào)的數(shù)表示一般數(shù)據(jù),如第10條匯編指令中,03D5H表示16進(jìn)制數(shù)值03D5,將被放置到寄存器DX中。匯編語言可以看作是機(jī)器語言的抽象,事實(shí)上,它是通過符號(hào)化機(jī)器代碼來實(shí)現(xiàn)的。然而用匯編語言表示人類社會(huì)的計(jì)算,也不大方便和直觀,如上例中的341.1.2機(jī)器語言、匯編語言和高級(jí)語言不加方括號(hào)的數(shù)表示一般1.1.2機(jī)器語言、匯編語言和高級(jí)語言“MOVDX03D5H和OUTDXAL”是用于“輸出數(shù)據(jù)”,這兩者之間幾乎看不出有什么直觀的聯(lián)系。于是出現(xiàn)了所謂的高級(jí)語言作為對(duì)匯編語言的抽象,使得指令更加“概念化”,以便更接近我們的自然語言層次。用高級(jí)語言表示的程序稱為高級(jí)語言程序。Java語言就是一種高級(jí)語言,用它寫出類似上述例子的程序是:351.1.2機(jī)器語言、匯編語言和高級(jí)語言“MOVDX01.1.2機(jī)器語言、匯編語言和高級(jí)語言1publicclassaverage{2publicstaticvoidmain(String[]args){3inta=12,b=34,c;4c=(a+b)/2;5System.out.println(“Theaverageis:”+c);6}7}361.1.2機(jī)器語言、匯編語言和高級(jí)語言1publicc1.1.2機(jī)器語言、匯編語言和高級(jí)語言輸出結(jié)果:Theaverageis:23程序說明:這里的Java程序由一個(gè)所謂的類構(gòu)成,第1行是該類的開始,定義了名為average的類,第7行以}來結(jié)束該類的定義。類一般包含多個(gè)方法,average類只含一個(gè)名為main的主方法,它由方法頭部即371.1.2機(jī)器語言、匯編語言和高級(jí)語言輸出結(jié)果:371.1.2機(jī)器語言、匯編語言和高級(jí)語言第2行開始到第6行結(jié)束,其包含三句即第3、4、5行,其中第3行聲明三個(gè)整型變量a、b和c,分別存放兩個(gè)整數(shù)和它們的平均值。第4行計(jì)算出a和b的平均值,并存放到(賦值給)變量c中。第5行從屏幕上輸出文字“Theaverageis:”和結(jié)果即c的值。注:上述java程序中,每行開始的數(shù)字不是程序中的部分,它是作者加上的,381.1.2機(jī)器語言、匯編語言和高級(jí)語言第2行開始到第6行結(jié)束1.1.2機(jī)器語言、匯編語言和高級(jí)語言用來表示行號(hào),以便解釋每行程序時(shí),指明是哪一行??梢?,高級(jí)語言要比匯編語言容易理解和記憶,事實(shí)上,它的抽象程度比匯編語言的高,并且更“接近”我們?nèi)祟惖恼Z言,如高級(jí)語言中的變量就是存儲(chǔ)單元的抽象。注:這里每一句如c=(a+b)/2對(duì)應(yīng)了完成相應(yīng)計(jì)算的多條匯編語句。391.1.2機(jī)器語言、匯編語言和高級(jí)語言用來表示行號(hào),以便解釋1.1.2機(jī)器語言、匯編語言和高級(jí)語言采用高級(jí)語言完成我們的計(jì)算任務(wù),確實(shí)要比機(jī)器語言和匯編語言較自然和直觀。但是,計(jì)算機(jī)畢竟只能執(zhí)行機(jī)器指令,所以,當(dāng)我們編寫出高級(jí)語言程序后,還得將它轉(zhuǎn)換成對(duì)應(yīng)的機(jī)器語言程序,才能使計(jì)算機(jī)去執(zhí)行計(jì)算。完成這種轉(zhuǎn)換的過程稱為程序翻譯。程序翻譯猶如是現(xiàn)實(shí)中的語言翻譯,也401.1.2機(jī)器語言、匯編語言和高級(jí)語言采用高級(jí)語言完成我們的1.1.2機(jī)器語言、匯編語言和高級(jí)語言有兩種方式即“筆譯”和“口譯”。筆譯就是一次完整地翻譯并記錄在紙上,然后可以復(fù)印多份,同時(shí)供多人閱讀。而口譯是在實(shí)際場(chǎng)景中,邊講邊口頭翻譯,同樣的話說兩次,就得口譯兩次。顯然??谧g快,筆譯慢;口譯效率低,筆譯效率高。411.1.2機(jī)器語言、匯編語言和高級(jí)語言有兩種方式即“筆譯”和1.1.2機(jī)器語言、匯編語言和高級(jí)語言對(duì)程序翻譯而言,其“筆譯”稱為編譯,其“口譯”稱為解釋,并且編譯和解釋工作是由專門的程序來完成的,這種翻譯程序分別稱為編譯程序和解釋程序。在編譯過程,被翻譯的語言程序也稱為源程序,相應(yīng)地翻譯結(jié)果稱為目標(biāo)程序,并且當(dāng)源程序是匯編語言程序是,對(duì)應(yīng)的翻譯程序稱為匯編程序,如圖1-3所示。421.1.2機(jī)器語言、匯編語言和高級(jí)語言對(duì)程序翻譯而言,其“筆1.1.2機(jī)器語言、匯編語言和高級(jí)語言431.1.2機(jī)器語言、匯編語言和高級(jí)語言431.1.2機(jī)器語言、匯編語言和高級(jí)語言注意:由上可以看出采用機(jī)器語言、匯編語言和高級(jí)語言分別表示同一個(gè)計(jì)算時(shí),雖然它們采用的命令或語句的數(shù)目不相同,特征也各異,但它們所包含的內(nèi)在計(jì)算步驟或過程是相同的。在后面我們將把這種“計(jì)算步驟或過程”稱為算法。441.1.2機(jī)器語言、匯編語言和高級(jí)語言注意:由上可以看出采用1.1.3高級(jí)語言的發(fā)展簡(jiǎn)史上個(gè)世紀(jì)50年代早期,開始出現(xiàn)符號(hào)化語言。格雷斯.霍帕(GraceHopper)領(lǐng)導(dǎo)一個(gè)小組開發(fā)了A-0語言,約翰.巴克斯為IBM701開發(fā)了加速代碼。1955年以后,開始出現(xiàn)一系列高級(jí)語言。1955年到1957年間,巴克斯領(lǐng)導(dǎo)一個(gè)組開發(fā)了公式翻譯語言451.1.3高級(jí)語言的發(fā)展簡(jiǎn)史上個(gè)世紀(jì)50年代早期,開始出1.1.3高級(jí)語言的發(fā)展簡(jiǎn)史ALGOrithmicLanguage,也即ALGOL語言。該語言具有幾個(gè)不同的目標(biāo),即1、ALGOL語言的表示應(yīng)該接近標(biāo)準(zhǔn)數(shù)學(xué)。2、ALGOL語言對(duì)于描述算法應(yīng)該是有用的。3、用ALGOL語言編寫的程序應(yīng)該可編譯為機(jī)器語言程序。461.1.3高級(jí)語言的發(fā)展簡(jiǎn)史ALGOrithmicLa1.1.3高級(jí)語言的發(fā)展簡(jiǎn)史4、ALGOL語言不局限于某一計(jì)算機(jī)的體系結(jié)構(gòu)。正是ALGOL語言,引入了傳遞名字參數(shù)的過程調(diào)用概念,也是為了定義ALGOL語言,約翰.巴克斯和彼特.瑙爾給出了一種高級(jí)語言的語法描述方法,被稱為巴克斯-瑙爾范式,或稱為BNF。ALGOL語言后來又有了兩次發(fā)展分別為ALGOL60和471.1.3高級(jí)語言的發(fā)展簡(jiǎn)史4、ALGOL語言不局限于某1.1.3高級(jí)語言的發(fā)展簡(jiǎn)史ALGOL68。ALGOL語言并沒有在美國(guó)得到推廣。FORTRAN語言和ALGOL語言都是基于數(shù)值計(jì)算的語言。在早期語言的研究與開發(fā)的基礎(chǔ)上,各種各樣的高級(jí)語言迅速發(fā)展起來,多達(dá)幾萬種,但得到廣泛應(yīng)用的也就是十幾種。481.1.3高級(jí)語言的發(fā)展簡(jiǎn)史ALGOL68。ALGOL494950501.1.4程序運(yùn)行的過程在前面,為了便于寫出完成計(jì)算的程序,引入了高級(jí)語言,而用高級(jí)語言寫程序確實(shí)要比用匯編語言和機(jī)器語言來得方便和直觀,但由此也改變了我們運(yùn)行程序的過程。一般地,運(yùn)行一個(gè)高級(jí)語言程序需要經(jīng)歷三個(gè)步驟:第一就是要把源程序正確無誤地輸入到計(jì)算機(jī)內(nèi)部,這一步稱為編輯源程序511.1.4程序運(yùn)行的過程在前面,為了便于寫出完成計(jì)算的程序1.1.4程序運(yùn)行的過程并且是通過運(yùn)行一個(gè)所謂的編輯程序來完成的;第二步就是運(yùn)行編譯程序,來把源程序翻譯成目標(biāo)程序;第三步就是運(yùn)行該目標(biāo)程序,完成特定的計(jì)算。如圖1-4所示.521.1.4程序運(yùn)行的過程并且是通過運(yùn)行一個(gè)所謂的編輯程序來圖1-4高級(jí)語言程序運(yùn)行過程編輯器高級(jí)語言源程序機(jī)器語言程序(目標(biāo)程序)源程序文本編譯器執(zhí)行目標(biāo)程序第1步:編輯第2步:編譯第3步:運(yùn)行53圖1-4高級(jí)語言程序運(yùn)行過程編輯器高級(jí)語言源程序機(jī)器語言程1.1.5操作系統(tǒng)我們運(yùn)行程序時(shí),并不是簡(jiǎn)單地直接使用計(jì)算機(jī)硬件來進(jìn)行,而是通過運(yùn)行在計(jì)算機(jī)中的所謂操作系統(tǒng)來完成的。操作系統(tǒng)是計(jì)算機(jī)中最重要的程序,用來管理和控制計(jì)算機(jī)的活動(dòng)。我們經(jīng)常使用的Windows2000、XP或ME,就是一種常用的操作系統(tǒng)。沒有操作系統(tǒng),應(yīng)用程序(如字處理程序、Internet瀏覽器等)就不能運(yùn)行。硬件、操作系統(tǒng)、應(yīng)用程序和用戶之間的關(guān)系如圖1-5所示。541.1.5操作系統(tǒng)我們運(yùn)行程序時(shí),并不是簡(jiǎn)單地直接使用計(jì)算55551.1.5操作系統(tǒng)1.控制和監(jiān)督系統(tǒng)的活動(dòng)操作系統(tǒng)要對(duì)系統(tǒng)的安全負(fù)責(zé),要確保沒有權(quán)限的用戶不能訪問系統(tǒng),要確保系統(tǒng)信息不受到破壞,要確保合法的操作得到執(zhí)行,還要確保不同程序和用戶在同時(shí)使用計(jì)算機(jī)時(shí)不會(huì)相互干擾。操作系統(tǒng)不必須提供一些基本功能,如,識(shí)別鍵盤輸入,向顯示器發(fā)送輸出,保存文件和目錄,控制硬盤驅(qū)動(dòng)器和打印機(jī)等。561.1.5操作系統(tǒng)1.控制和監(jiān)督系統(tǒng)的活動(dòng)561.1.5操作系統(tǒng)2.分配系統(tǒng)資源操作系統(tǒng)負(fù)責(zé)確定程序需要使用哪些計(jì)算機(jī)資源(CPU、內(nèi)存、磁盤、輸入和輸出設(shè)備),并進(jìn)行資源分配以便運(yùn)行程序;程序結(jié)束時(shí)還要回收資源。3.安排操作的順序操作系統(tǒng)還要負(fù)責(zé)安排和確定程序的執(zhí)行順序,以便有效地利用資源。為了增強(qiáng)系統(tǒng)的性能,目前許多操作系統(tǒng)支持多道程序設(shè)計(jì)、多線程和多處理技術(shù)。571.1.5操作系統(tǒng)2.分配系統(tǒng)資源571.1.5操作系統(tǒng)多道程序設(shè)計(jì)允許多個(gè)程序同時(shí)運(yùn)行,共享CPU。例如,Web瀏覽器下載文件的同時(shí),我們可以用字處理程序來編輯文件。線程是程序中可同時(shí)運(yùn)行的基本單。多線程允許一個(gè)程序內(nèi)部同時(shí)有多個(gè)“子程序”并發(fā)處理,即可以同時(shí)運(yùn)行。例如,Word字處理程序允許用戶編輯文字的同時(shí)將其保存到文件中。這里編輯和保存就是同一個(gè)應(yīng)用程序中的兩個(gè)不同任務(wù)。多處理也稱為并行處理,是指用兩個(gè)或多個(gè)處理器一起執(zhí)行同一任務(wù)。581.1.5操作系統(tǒng)多道程序設(shè)計(jì)允許多個(gè)程序同時(shí)運(yùn)行,共享C1.1.6客戶/服務(wù)器客戶/服務(wù)器是網(wǎng)絡(luò)系統(tǒng)中應(yīng)用廣泛的一種技術(shù),它的用法有點(diǎn)混亂。客戶/服務(wù)器有兩種用法:一種用來指網(wǎng)絡(luò)上作為提供信息共享服務(wù)的計(jì)算機(jī)和用戶用來查詢?yōu)g覽網(wǎng)絡(luò)上信息的計(jì)算機(jī),前者稱為服務(wù)器計(jì)算機(jī)或簡(jiǎn)稱為服務(wù)器,后者稱為客戶計(jì)算機(jī)或簡(jiǎn)稱為客戶機(jī)。591.1.6客戶/服務(wù)器客戶/服務(wù)器是網(wǎng)絡(luò)系統(tǒng)中應(yīng)用廣泛的1.1.6客戶/服務(wù)器另一種用法是指運(yùn)行中的程序(進(jìn)程或線程)之間的關(guān)系的處理方式,本書下面開始都是指的這種用法。當(dāng)一個(gè)程序在某一時(shí)刻向另一個(gè)程序提出請(qǐng)求服務(wù)時(shí),則提出請(qǐng)求服務(wù)的程序稱為客戶,而提供服務(wù)的程序稱為服務(wù)器。例如,我們通過Internet瀏覽器上網(wǎng)查詢網(wǎng)絡(luò)信息時(shí),它就是一個(gè)客戶程序,而提供信息的Web就是服務(wù)器。601.1.6客戶/服務(wù)器另一種用法是指運(yùn)行中的程序(進(jìn)程或1.1.6客戶/服務(wù)器客戶與服務(wù)器的關(guān)系并不是一成不變的,它們是一種相對(duì)的關(guān)系。在某一時(shí)刻是服務(wù)器的程序,在另一時(shí)刻就有可能成為客戶程序。611.1.6客戶/服務(wù)器客戶與服務(wù)器的關(guān)系并不是一成不變的1.1.7Internet和WWWInternet互聯(lián)網(wǎng)絡(luò)是上世紀(jì)60年代以來,由美國(guó)國(guó)防部投資開發(fā)的。最初只是聯(lián)接大約十幾所大學(xué)和研究機(jī)構(gòu)的主要計(jì)算機(jī)系統(tǒng)。今天,聯(lián)入Internet的計(jì)算機(jī)數(shù)量已達(dá)幾億臺(tái)。WWW(TheWorldWideWeb)是Internet互聯(lián)網(wǎng)絡(luò)上一種最廣泛的應(yīng)用技術(shù)或應(yīng)用形式,它使Internet互聯(lián)網(wǎng)絡(luò)上的用戶從世界各地訪問多媒621.1.7Internet和WWWInternet互聯(lián)1.1.7Internet和WWW體電子信息寶庫(kù)??梢允褂肳WW查找和查看所有主題的基于多媒體的文檔,可以預(yù)定旅館的房間、購(gòu)買飛機(jī)票、注冊(cè)學(xué)習(xí)課程、下載各種資料、與朋友聊天、觀看電影、收聽實(shí)況直播等等。631.1.7Internet和WWW體電子信息寶庫(kù)??梢詢?nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML64內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW641.2Java語言Java是功能齊全的能用程序設(shè)計(jì)語言,可以開發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。Java不僅可以開發(fā)Web應(yīng)用程序,而且還可以開發(fā)跨平臺(tái)的獨(dú)立應(yīng)用程序,這些程序用于服務(wù)器、臺(tái)式機(jī)、移動(dòng)設(shè)備等。651.2Java語言Java是功能齊全的能用程序設(shè)計(jì)語言,1.2.1Java語言的特點(diǎn)Java具有許多誘人的特點(diǎn)。這些特點(diǎn)正如Sun公司在Java語言白皮書開始處所說,包括Java是簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、解釋型的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、高效的、多線程的以及動(dòng)態(tài)的等。1.Java是簡(jiǎn)單的任何一門計(jì)算機(jī)語言都不是簡(jiǎn)單的,661.2.1Java語言的特點(diǎn)Java具有許多誘人的特點(diǎn)。1.2.1Java語言的特點(diǎn)因?yàn)樗麄兌季哂羞M(jìn)行程序設(shè)計(jì)所需要的基本功能和基本成份,需要完成常規(guī)程序設(shè)計(jì)。但是與程序設(shè)計(jì)語言C++相比,Java要顯得簡(jiǎn)單一些。Java部分地模仿了C++,但是進(jìn)行了極大的簡(jiǎn)化和改進(jìn)。例如,C++中的指針和多重繼續(xù)常常使程序復(fù)雜化,而Java丟棄了指針,并使用一種所謂接口(interface)的簡(jiǎn)單概念代替了多重繼續(xù)。671.2.1Java語言的特點(diǎn)因?yàn)樗麄兌季哂羞M(jìn)行程序設(shè)計(jì)所1.2.1Java語言的特點(diǎn)C++要求程序員自己去進(jìn)行內(nèi)存的分配與回收,而Java采用自動(dòng)內(nèi)存分配與回收。另外,Java比C++具有更少的語言概念,而功能卻更強(qiáng)大。2.Java是面向?qū)ο蟮腏ava一開始就設(shè)計(jì)為完全面向?qū)ο蟮?,即Java天生就是面向?qū)ο蟮?。而許多面向?qū)ο笳Z言如C++,包含了面向過程的特征。681.2.1Java語言的特點(diǎn)C++要求程序員自己去進(jìn)行內(nèi)1.2.1Java語言的特點(diǎn)所謂面向過程,指程序是按照問題解決的既定過程設(shè)計(jì)而的,它在的運(yùn)行過程完全符合問題解決的既定過程,這就要求設(shè)計(jì)過程中必須按照(規(guī)定的)解決問題過程來進(jìn)行,即通過把問題分解為若干小問題來進(jìn)行求解,也即進(jìn)行所謂的功能分解。這樣,設(shè)計(jì)出來的程序是由一些功能模塊構(gòu)成691.2.1Java語言的特點(diǎn)所謂面向過程,指程序是按照問1.2.1Java語言的特點(diǎn)(這種“功能模塊”在C語言中稱為函數(shù)),如圖1-5所示,該程序是用于計(jì)算規(guī)則圖形面積,它被分解為四個(gè)功能模塊。701.2.1Java語言的特點(diǎn)(這種“功能模塊”在C語言中1.2.1Java語言的特點(diǎn)而面向?qū)ο笫侵赋绦蚴怯蓪?duì)象構(gòu)成的,這種對(duì)象是問題中事物的抽象,它包含數(shù)據(jù)字段和方法;數(shù)據(jù)字段和方法分別用來表征事物的屬性和行為。面向?qū)ο筮€提供了對(duì)象的繼承和多態(tài)性,這用來反映事物之間的關(guān)系。面向?qū)ο笫菍?duì)現(xiàn)實(shí)世界中事物及其關(guān)系的一種自然的反映,因而,它便于反映現(xiàn)實(shí)世界的變化,并且對(duì)付這種變化付出的代價(jià)要比面向過程技術(shù)小得多。711.2.1Java語言的特點(diǎn)而面向?qū)ο笫侵赋绦蚴怯蓪?duì)象構(gòu)1.2.1Java語言的特點(diǎn)作為面向?qū)ο蟮腏ava,它提供了封裝、繼承和多態(tài)性,這使得它具有了極大的靈活性、模塊性、透明性和可重用性。其中的重用性使我們可以重用代碼。3.Java是分布式的分布式計(jì)算是網(wǎng)絡(luò)上的一種高級(jí)應(yīng)用形式,它使網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)整合為一個(gè)整體(好象一臺(tái)計(jì)算機(jī)一樣),721.2.1Java語言的特點(diǎn)作為面向?qū)ο蟮腏ava,它提1.2.1Java語言的特點(diǎn)透明地完成用戶提交的工作。Java的設(shè)計(jì)使分布式計(jì)算變得容易起來,由于Java一開始就設(shè)計(jì)了網(wǎng)絡(luò)工作能力,因而編寫網(wǎng)絡(luò)程序如同在文件中存取數(shù)一起。4.Java是解釋型的Java程序運(yùn)行前需要編譯成一種所謂Java虛擬機(jī)(JavaVirtualMachine,JVM)編碼,這種編碼稱731.2.1Java語言的特點(diǎn)透明地完成用戶提交的工作。J1.2.1Java語言的特點(diǎn)為字節(jié)碼(bytecode)。字節(jié)碼獨(dú)立于具體的計(jì)算機(jī),運(yùn)行時(shí)需要Java解釋器來把它轉(zhuǎn)換成本地計(jì)算機(jī)代碼予以完成,所以它能在任何具有Java解釋器的機(jī)器上運(yùn)行。如圖1-6所示是Java程序、Java字節(jié)碼、Java虛擬機(jī)和計(jì)算機(jī)的關(guān)系。741.2.1Java語言的特點(diǎn)為字節(jié)碼(bytecode)75751.2.1Java語言的特點(diǎn)大多數(shù)高級(jí)語言的編譯器都把程序編譯成機(jī)器代碼,這種機(jī)器代碼只能在本地計(jì)算機(jī)上運(yùn)行,如果要在其他計(jì)算機(jī)上運(yùn)行,還得在這些計(jì)算機(jī)上重新編譯。使用Java,只需要編譯一次,其編譯而成的字節(jié)碼即可以在任何具有Java解釋器的平臺(tái)上運(yùn)行。5.Java是健壯的任何一門程序設(shè)計(jì)語言都不能是絕對(duì)761.2.1Java語言的特點(diǎn)大多數(shù)高級(jí)語言的編譯器都把程1.2.1Java語言的特點(diǎn)可靠的,其編制的程序都有可能發(fā)生這樣或那樣的錯(cuò)誤。所謂健壯的就指避免錯(cuò)誤和處理錯(cuò)誤的能力較強(qiáng)。Java丟棄了其他語言中容易引起錯(cuò)誤的某些程序概念類型,例如,它不支持指針,從而避免了重寫內(nèi)存而造成的數(shù)據(jù)破壞的可能性。另一方面,Java具有實(shí)時(shí)異常處理的功能,該特點(diǎn)有助于提高程序的健壯性。Java強(qiáng)771.2.1Java語言的特點(diǎn)可靠的,其編制的程序都有可能1.2.1Java語言的特點(diǎn)制程序員編寫處理異常的代碼,所以它能夠捕獲并響應(yīng)意外情況,從而發(fā)生實(shí)時(shí)錯(cuò)誤時(shí)程序能夠繼續(xù)正常執(zhí)行錯(cuò)誤處理代碼,穩(wěn)妥地結(jié)束。5.Java是安全的Java一開始就是用于Internet程序設(shè)計(jì)而出現(xiàn)的,網(wǎng)絡(luò)和分布式環(huán)境是它的主要用途之一。所以,Java在安全上進(jìn)行了精心的考慮,它執(zhí)行多層安781.2.1Java語言的特點(diǎn)制程序員編寫處理異常的代碼,1.2.1Java語言的特點(diǎn)全機(jī)制用以保護(hù)系統(tǒng)不受到惡意地破壞,從而使用戶在下載并運(yùn)行一個(gè)Javaapplet(一種特殊的Java程序,它需要下載到本地計(jì)算機(jī)Internet瀏覽器中運(yùn)行)時(shí),它不會(huì)損害本地的系統(tǒng)。安全性的前提是什么也不能信任。6.Java是結(jié)構(gòu)中立的Java是解釋型的,這一特點(diǎn)使得Java791.2.1Java語言的特點(diǎn)全機(jī)制用以保護(hù)系統(tǒng)不受到惡意1.2.1Java語言的特點(diǎn)成為結(jié)構(gòu)中立的(architecture-neutral),即Java是平臺(tái)無關(guān)的。得用Java虛擬機(jī),我們可編寫任何平臺(tái)上都能運(yùn)行的程序。7.Java是可移植的Java是結(jié)構(gòu)中立的,因而Java程序是可移埴的,它不必重新編譯就能在任何平臺(tái)上運(yùn)行。Java在不同平臺(tái)上運(yùn)行時(shí),用戶不用擔(dān)心數(shù)值的最大長(zhǎng)度801.2.1Java語言的特點(diǎn)成為結(jié)構(gòu)中立的(archit1.2.1Java語言的特點(diǎn)和精度會(huì)發(fā)生變化。8.Java是高效的9.Java是多線程的多線程使得一個(gè)程序可以同時(shí)執(zhí)行多個(gè)任務(wù)成為可能,因而它被廣泛應(yīng)用于圖形用戶界面(GraphicsUserInterface,GUI)和網(wǎng)絡(luò)程序設(shè)計(jì)中。在GUI程序設(shè)計(jì)中,有許多任務(wù)需要同時(shí)進(jìn)行,如播放音樂、瀏覽網(wǎng)811.2.1Java語言的特點(diǎn)和精度會(huì)發(fā)生變化。811.2.1Java語言的特點(diǎn)頁等。在網(wǎng)絡(luò)程序設(shè)計(jì)中,一個(gè)服務(wù)器可能同時(shí)為多個(gè)客戶服務(wù),如多臺(tái)計(jì)算機(jī)上的瀏覽器同時(shí)向一臺(tái)WWW服務(wù)器請(qǐng)求網(wǎng)頁信息時(shí),就需要服務(wù)器有多個(gè)線程分別響應(yīng)它們的要求。一般而言,使用多線程必須調(diào)用操作系統(tǒng)特定的過程才能實(shí)現(xiàn),但Java語言卻平衡地集成了多線程程序設(shè)計(jì)技術(shù),簡(jiǎn)化了程序員的編程難。821.2.1Java語言的特點(diǎn)頁等。在網(wǎng)絡(luò)程序設(shè)計(jì)中,一個(gè)1.2.1Java語言的特點(diǎn)10.Java是動(dòng)態(tài)的Java是為適應(yīng)變化的環(huán)境而設(shè)計(jì)的,不用重新編譯就可以在不知不覺中裝入新類。既不需要開發(fā)者創(chuàng)建新的軟件版本,也不需要用戶重新安裝,必要時(shí),新特征就可以透明地并入。831.2.1Java語言的特點(diǎn)10.Java是動(dòng)態(tài)的831.2.2Java環(huán)境與工具Java環(huán)境由Java應(yīng)用編程接口(API)和Java虛擬機(jī)(JVM)構(gòu)成。Java應(yīng)用編程接口是已編譯的可在我們的程序中使用的代碼庫(kù)或預(yù)定義類庫(kù)。它們使我們能夠添加現(xiàn)成的可定制的功能,以節(jié)約編程時(shí)間。Java虛擬機(jī)是用來解釋執(zhí)行我們的Java程序。841.2.2Java環(huán)境與工具Java環(huán)境由Java應(yīng)用1.2.2Java環(huán)境與工具Java工具是給我們編寫和運(yùn)行Java程序提供支持的一組程序,它的主要功能就是編譯Java程序。為了構(gòu)建Java環(huán)境,Sun公司提供了Java系統(tǒng),該系統(tǒng)目前已支持1998年公布的Java2平臺(tái),主要的有三種即Java2標(biāo)準(zhǔn)版(Java2StandardEdition,J2SE)、851.2.2Java環(huán)境與工具Java工具是給我們編寫和運(yùn)1.2.2Java環(huán)境與工具Java2企業(yè)版(Java2EnterpriseEdition,J2EE)以及Java2微型版(Java2MicroEdition,J2ME)。其中J2SE主要用來開發(fā)客戶端獨(dú)立的Java應(yīng)用程序和Javaapplet程序,J2EE主要用來開發(fā)服務(wù)端的應(yīng)用程序如JavaServlets和JavaSeverPage。J2ME主要用來開發(fā)移動(dòng)設(shè)備編程。本書主要以861.2.2Java環(huán)境與工具Java2企業(yè)版(Java1.2.2Java環(huán)境與工具J2SE5.0版為主。Java工具都是由一些獨(dú)立的程序構(gòu)成,它們都是從命令行運(yùn)行的,例如,javac用來編譯Java源程序,java用來解釋執(zhí)行已編譯的Java程序。為了方便程序員編程,多家公司已經(jīng)提供了快速集成開發(fā)環(huán)境IDE(IntegratedDevelopmentEnviroment),它們把編輯、編譯、871.2.2Java環(huán)境與工具J2SE5.0版為主。871.2.2Java環(huán)境與工具鏈接、調(diào)試和在線幫助都集成在一個(gè)圖形窗口中。只需要在一個(gè)窗口中輸入源程序或打開已有的程序文件,點(diǎn)擊按鈕、菜單或者使用功能鍵就可以編譯源程序。主要的Java集成開發(fā)工具有:Sun公司的NetBeansOpenSource()881.2.2Java環(huán)境與工具鏈接、調(diào)試和在線幫助都集成在1.2.2Java環(huán)境與工具Borland公司的Jbuilder()IBM公司的EclipseOpenSource()本書將使用NetBeans集成開發(fā)工具。891.2.2Java環(huán)境與工具Borland公司的Jbui1.2.3Java程序及其運(yùn)行過程一般地,運(yùn)行一個(gè)Java程序需要經(jīng)歷三個(gè)步驟:第一就是要把源程序正確無誤地輸入到計(jì)算機(jī)內(nèi)部,并存放在.java文件中,這一步稱為編輯源程序,并且是通過運(yùn)行一個(gè)所謂的編輯程序來完成的;第二步就是運(yùn)行編譯程序,來把源程901.2.3Java程序及其運(yùn)行過程一般地,運(yùn)行一個(gè)Jav1.2.3Java程序及其運(yùn)行過程序翻譯成一種Java虛擬機(jī)的字節(jié)碼,并存放在.class文件中;第三步就是解釋執(zhí)行該字節(jié)碼,完成特定的計(jì)算。如圖1-7所示Java語言程序運(yùn)行過程。911.2.3Java程序及其運(yùn)行過程序翻譯成一種Java虛9292內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML93內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW931.3Java程序Java是一個(gè)成熟且功能強(qiáng)大的語言,可用于多種用途。本節(jié)介紹兩種Java程序,即Java應(yīng)用程序(JavaApplication)和Javaapplet程序。941.3Java程序Java是一個(gè)成熟且功能強(qiáng)大的語言,可1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)Java應(yīng)用程序是由一個(gè)或多個(gè)所謂的類(class)構(gòu)成的,其中至少有一個(gè)類需要使用public來聲明。我們?cè)诒竟?jié)只看最簡(jiǎn)單的Java應(yīng)用程序,它由一個(gè)類構(gòu)成。先看一個(gè)例子。例1.2給出一個(gè)Java應(yīng)用程序,它把指定兩個(gè)數(shù)的平均值顯示在屏幕上。解答:完成該問題的程序前面曾給出過,這里重新給,并配上注釋。951.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)Java應(yīng)用程序是1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)1//本程序計(jì)算兩個(gè)數(shù)的平均值2publicclassaverage3{4publicstaticvoidmain(String[]args)5{6inta=12,b=34,c;7c=(a+b)/2;961.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)1//本程1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)8System.out.println(“Theaverageis:”+c);9}10}例子說明:該程序由一個(gè)類構(gòu)成,該類由兩個(gè)部分構(gòu)成,第一部分是類頭,由第2行給出,它用class聲明從本處開始的是一個(gè)類,用public聲明該類是公共的,并971.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)81.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)給出了本類的類名為average;類的第二部分稱為類體,由第3行到第10行構(gòu)成,它以“{”開始且以“}”結(jié)束,中間部分是由方法構(gòu)成。該類包含一個(gè)稱為main的方法(第4行至第9行)。在這個(gè)程序中main方法包含有三條語句,語句使用分號(hào)(;)結(jié)束,其中第6行是一條聲明語句,使用int聲明三個(gè)整型變量a、981.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)給出了本類的類名為1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)b和c,且初始化a和b為12和34;第7行計(jì)算a和b的平均值,并將計(jì)算結(jié)果賦值給(存放到)變量c;第8行是System.out.println語句,它在屏幕上輸出“Theaverageis:”+c的結(jié)果,這里“Theaverageis:”是一個(gè)字符串,通過加號(hào)(+)把它與變量c的值合并成一個(gè)新的串作為結(jié)果輸出。該程序的第1行是注釋行,由//開始991.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)b和c,且初始化a1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)后跟注釋的文字。注釋并不是程序的一部分,它只起到說明的作用,以便使程序可讀性強(qiáng),編譯程序在編譯源程序時(shí)會(huì)去除注釋,不會(huì)編譯它的。注:上述程序必須存放到.java文件中,且文件名必須與類同名,即上述程序文件為average.java。注:這里的方法為什么使用main作為名,為什么要這樣定義,等等,1001.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)后跟注釋的文字。注1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)這些問題留待后續(xù)章節(jié)回答,現(xiàn)在我們只能暫且接受這些。由上述例子我們可以給出簡(jiǎn)單Java應(yīng)用程序的結(jié)構(gòu)為:1011.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)這些問題留待后續(xù)章1.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)在圖1-8中,由符號(hào)“<”和“>”括起來的部分,如<類名>,表示在具體程序中由用戶自己根據(jù)實(shí)際情況給出。1021.3.1簡(jiǎn)單Java應(yīng)用程序的基本結(jié)構(gòu)在圖1-8中,由符1.3.2Java應(yīng)用程序的執(zhí)行Java應(yīng)用程序的執(zhí)行過程分為三步,即第一步使用編輯程序輸入源程序,并存放到.java文件中,該文件名與源程序中的public類同名;第二步使用javac編譯源程序,編譯結(jié)果即字節(jié)碼存放到.class文件中,該文件與源程序文件同名;1031.3.2Java應(yīng)用程序的執(zhí)行Java應(yīng)用程序的執(zhí)行過1.3.2Java應(yīng)用程序的執(zhí)行第三步使用java解釋執(zhí)行.class文件。這樣執(zhí)行例1.2程序的過程是,首先可以使用任一編輯程序,如微軟的記事本,輸入源程序并存放到average.java文件中;然后,鍵入如下命令進(jìn)行編譯:javacaverage.java1041.3.2Java應(yīng)用程序的執(zhí)行第三步使用java解釋執(zhí)1.3.2Java應(yīng)用程序的執(zhí)行最后,輸入如下命令進(jìn)行解釋執(zhí)行:javaaverage注:要使上述后兩步過程順利進(jìn)行,則進(jìn)入命令窗口后,就使用path命令設(shè)置搜索路徑到Java系統(tǒng)目錄。例如,如果Java系統(tǒng)安裝到C:\ProgramFiles\Java\jdk1.5.0_06\中,1051.3.2Java應(yīng)用程序的執(zhí)行最后,輸入如下命令進(jìn)行解1.3.2Java應(yīng)用程序的執(zhí)行則path命令為:pathC:\ProgramFiles\Java\jdk1.5.0_06\bin1061.3.2Java應(yīng)用程序的執(zhí)行則path命令為:1061.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)Javaapplet程序是一種小程序,它應(yīng)用于網(wǎng)頁之中,由Internet瀏覽器執(zhí)行。Javaapplet程序與Java應(yīng)用程序在結(jié)構(gòu)上有一定差別。我們先看一個(gè)例子。例1.3給出一個(gè)Javaapplet程序,它把指定兩個(gè)數(shù)的平均值顯示在屏幕上。1071.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)Java1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)解答:完成該問題的Javaapplet程序如下。1//本程序計(jì)算兩個(gè)數(shù)的平均值2importjava.awt.Graphics;//導(dǎo)入類Graphics3importjavax.swing.JApplet;//導(dǎo)入類JApplet4publicclassaverage_appletextendsJApplet5{1081.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)解答:完1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)6publicvoidpaint(Graphicsg)7{8inta=12,b=34,c;9c=(a+b)/2;10super.paint(g);11g.drawString(“Theaverageis:”+c,25,25);12}13}1091.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)61.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)例子說明:該Javaapplet程序由一個(gè)類構(gòu)成,該類由兩個(gè)部分構(gòu)成,第一部分是類頭,由第4行給出,它用class聲明從本處開始的是一個(gè)類,用public聲明該類是公共的,用extends聲明本類由類JApplet派生,即本類從類JApplet中繼承了它的框架,并給出了本類的類名為average_applet;類的第二部分稱為1101.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)例子說明1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)類體,由第5行到第13行構(gòu)成,它以“{”開始且以“}”結(jié)束,中間部分是由方法構(gòu)成。該程序開始處有兩條導(dǎo)入語句(import)即第2、3行,它們分別從java.awt庫(kù)和javax.swing庫(kù)中導(dǎo)入類Graphics和類JApplet,這Javaapplet程序必須有的。1111.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)類體,由1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)該類包含一個(gè)稱為paint的方法(第6行至第12行)。在這個(gè)程序中paint方法包含有四條語句,語句使用分號(hào)(;)結(jié)束,其中第8行是一條聲明語句,使用int聲明三個(gè)整型變量a、b和c,且初始化a和b為12和34;第9行計(jì)算a和b的平均值,并將計(jì)算結(jié)果賦值給(存放到)變量c;第10行是調(diào)用JApplet類中的paint方法,1121.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)該類包含1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)初始化圖形對(duì)象g,為輸出作準(zhǔn)備;第11行是g.drawString語句,它在屏幕窗口上(25,25)處輸出“Theaverageis:”+c的結(jié)果,這里“Theaverageis:”是一個(gè)字符串,通過加號(hào)(+)把它與變量c的值合并成一個(gè)新的串作為結(jié)果輸出。該程序的第1行是注釋行,由//開始后跟注釋的文字。注釋并不是程序的1131.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)初始化圖1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)一部分,它只起到說明的作用,以便使程序可讀性強(qiáng),編譯程序在編譯源程序時(shí)會(huì)去除注釋,不會(huì)編譯它的。注:這里方法中為什么使用super.paint(g)和g.drawString(),等等,這些問題留待后續(xù)章節(jié)回答,現(xiàn)在我們只能暫且接受這些。由上述例子我們可以給出簡(jiǎn)單Javaapplet程序的結(jié)構(gòu)為:1141.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)一部分,1.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)1151.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)1151.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)在圖1-9中,由符號(hào)“<”和“>”括起來的部分,如<類名>,表示在具體程序中由用戶自己根據(jù)實(shí)際情況給出。1161.3.3簡(jiǎn)單Javaapplet程序的基本結(jié)構(gòu)在圖1-1.3.4Javaapplet程序的執(zhí)行Javaapplet程序是通過網(wǎng)頁調(diào)用,由Internet瀏覽器來執(zhí)行的,所以執(zhí)行過程分為四步,即第一步使用編輯程序輸入源程序,并存放到.java文件中,該文件名與源程序中的public類同名;第二步使用javac編譯源程序,編譯結(jié)果即字節(jié)碼存放到.class文件中,該文件與源程序文件同名;1171.3.4Javaapplet程序的執(zhí)行Javaap1.3.4Javaapplet程序的執(zhí)行第三步創(chuàng)建一個(gè)網(wǎng)頁文件(擴(kuò)展名為.htm或.html),其中包含下列語句:<appletcode="<Javaapplet程序名>.class"width="<窗口寬度>"height="<窗口高寬>"</applet>1181.3.4Javaapplet程序的執(zhí)行第三步創(chuàng)建一個(gè)1.3.4Javaapplet程序的執(zhí)行第四步使用Internet瀏覽器或者appletviewer命令打開上述網(wǎng)頁文件。這樣執(zhí)行例1.3程序的過程是:首先可以使用任一編輯程序,如微軟的記事本,輸入源程序并存放到average_applet.java文件中;然后,鍵入如下命令進(jìn)行編譯:javacaverage_applet.java1191.3.4Javaapplet程序的執(zhí)行第四步使用In1.3.4Javaapplet程序的執(zhí)行接著,創(chuàng)建一個(gè)網(wǎng)頁文件,其名為average_ie.htm,其內(nèi)容為:<html><appletcode="average_applet.class"width="300"height="200"</applet></html>1201.3.4Javaapplet程序的執(zhí)行接著,創(chuàng)建一個(gè)1.3.4Javaapplet程序的執(zhí)行最后,輸入如下命令進(jìn)行解釋執(zhí)行:appletvieweraverage_ie.htm或者使用IE瀏覽器打開average_ie.htm。1211.3.4Javaapplet程序的執(zhí)行最后,輸入如下內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML122內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1221.4對(duì)象與統(tǒng)一建模語言UML我們以后將會(huì)發(fā)現(xiàn),面向?qū)ο笫侨藗兯伎棘F(xiàn)實(shí)世界的一種自然方式,也是編寫計(jì)算機(jī)程序的一種自然方法。把現(xiàn)實(shí)世界的問題求解編寫成計(jì)算機(jī)程序,一般是需要先建立一個(gè)模型的,而模型是我們感興趣的問題求解中事物及其相互之間關(guān)系的數(shù)學(xué)表達(dá)對(duì)象。本節(jié)將簡(jiǎn)單介紹對(duì)象的基本概念和建立模型的標(biāo)準(zhǔn)語言UML(UnifiedModelingLanguage)。1231.4對(duì)象與統(tǒng)一建模語言UML我們以后將會(huì)發(fā)現(xiàn),面向?qū)ο?.4.1什么是對(duì)象對(duì)象是用來描述現(xiàn)實(shí)世界中的事物的,如,張三、李四、杯子、手機(jī)、……。我們認(rèn)識(shí)對(duì)象是從兩個(gè)方面來進(jìn)行的,一是對(duì)象的行為,一是對(duì)象的屬性(性質(zhì))。對(duì)象的行為也就是對(duì)象的動(dòng)作,它包括“施動(dòng)者”的動(dòng)作和“受動(dòng)者”的動(dòng)作,如,張三選修《大學(xué)語文》,1241.4.1什么是對(duì)象對(duì)象是用來描述現(xiàn)實(shí)世界中的事物的,如,1.4.1什么是對(duì)象李四受留級(jí)處理,杯子被裝滿水,手機(jī)拔號(hào)。對(duì)象的屬性表示對(duì)象的特征和狀態(tài),如,張三身高175cm、體重72公斤、《大學(xué)語文》成績(jī)86分。在面向?qū)ο蟪绦蛟O(shè)計(jì)環(huán)境中,對(duì)象是構(gòu)成程序的基本單位和運(yùn)行實(shí)體,例如,Windows應(yīng)用程序(如我們熟悉的Word程序)中的窗口、對(duì)話框和菜單等界面以及這些界面上的各個(gè)按1251.4.1什么是對(duì)象李四受留級(jí)處理,杯子被裝滿水,手機(jī)拔號(hào)1.4.1什么是對(duì)象鈕都是對(duì)象。對(duì)象的屬性就是對(duì)象的數(shù)據(jù);對(duì)象的行為使用所謂的方法來描述,方法就是用于操作對(duì)象數(shù)據(jù)的程序(函數(shù)、過程或子程序)。我們認(rèn)識(shí)現(xiàn)實(shí)世界時(shí),就是要認(rèn)清事物及其關(guān)系,并用對(duì)象來刻畫它們。1261.4.1什么是對(duì)象鈕都是對(duì)象。對(duì)象的屬性就是對(duì)象的數(shù)據(jù);1.4.2對(duì)象與類對(duì)象既然是用來表示事物的,而有些事物之間既有共同性,又有差異性,例如,學(xué)生張三和教師李四作為人,他們具有人的共同屬性和行為;但他們也具有學(xué)生和教師之間的差異。那么在表示事物的同時(shí)如何有效地來刻畫這些差異性和共同性呢?我們采用類來描述對(duì)象的共同性。1271.4.2對(duì)象與類對(duì)象既然是用來表示事物的,而有些事物之間既1.4.2對(duì)象與類所謂類就是對(duì)象的抽象,就是對(duì)具有相同屬性和行為的對(duì)象的描述。類具有屬性和方法,它們分別抽象了事物的主要性質(zhì)和行為。例如,對(duì)于某一學(xué)院的所有學(xué)生對(duì)象,可以抽象出共同的屬性和行為作為“學(xué)生”類:屬性:學(xué)號(hào)、姓名、性別、入學(xué)時(shí)間、專業(yè)、……;1281.4.2對(duì)象與類所謂類就是對(duì)象的抽象,就是對(duì)具有相同屬性和1.4.2對(duì)象與類方法(行為):選修課程、獲取所屬專業(yè)、……。該學(xué)院的每個(gè)具體的學(xué)生如張三、王五都是“學(xué)生”類的實(shí)例。對(duì)象與類的關(guān)系是描述與被描述的關(guān)系,類描述了對(duì)象。如果使用C語言的類型來說的話,類好比類型如int,對(duì)象好比該類型的值如12。1291.4.2對(duì)象與類方法(行為):選修課程、獲取所屬專業(yè)、……1.4.2對(duì)象與類在Java語言中,類是用來創(chuàng)建對(duì)象的。一個(gè)對(duì)象被創(chuàng)建后,該對(duì)象就具有一組屬于自己的屬性,這些屬性就是由類定義的屬性,同時(shí)該對(duì)象可以使用類定義的方法。對(duì)用戶而言,在Java環(huán)境中有兩種類,一種是預(yù)定義類,它由Java環(huán)境提供,已經(jīng)定義好并經(jīng)編譯,用戶可以直接使用。例如,在例1-3中使用1301.4.2對(duì)象與類在Java語言中,類是用來創(chuàng)建對(duì)象的。一個(gè)1.4.2對(duì)象與類的類Graphics和JApplet就是預(yù)定義類。另一種是用戶自定義類,它是用戶根據(jù)問題求解的需要,新定義的類。例如,在例1-2和例1-3中,average和average_applet就是我們自己定義的類。既然類是用來創(chuàng)建對(duì)象的,那么對(duì)象就成為了我們使用“屬性”和“方法”的1311.4.2對(duì)象與類的類Graphics和JApplet就是預(yù)1.4.2對(duì)象與類實(shí)體。如何訪問對(duì)象呢?訪問對(duì)象使用的方法是,通過對(duì)象變量來進(jìn)行的,而對(duì)象變量是由類來聲明的。對(duì)象變量聲明的語法格式為:<類><對(duì)象變量>;如果同一個(gè)類需要聲明多個(gè)對(duì)象變量,則可以使用如下格式:1321.4.2對(duì)象與類實(shí)體。如何訪問對(duì)象呢?訪問對(duì)象使用的方法是1.4.2對(duì)象與類<類><對(duì)象變量1>,<對(duì)象變量2>,……,<對(duì)象變量n>;聲明了對(duì)象變量以后,就可以創(chuàng)建對(duì)象并把該對(duì)象的引用存放在對(duì)象變量中,從而可以通過該對(duì)象變量訪問對(duì)象。創(chuàng)建對(duì)象的語法格式為:<對(duì)象變量>=new<類>;通過對(duì)象變量訪問對(duì)象屬性的語法格式為:1331.4.2對(duì)象與類<類><對(duì)象變量1>,<對(duì)象變量2>1.4.2對(duì)象與類<對(duì)象變量>.<屬性>通過對(duì)象變量訪問對(duì)象方法的語法格式為:<對(duì)象變量>.<方法>(<實(shí)際參數(shù)>)或者<對(duì)象變量>.<方法>有關(guān)類和對(duì)象使用方法的例子,后面章節(jié)將不斷給出,這里暫不給出。1341.4.2對(duì)象與類<對(duì)象變量>.<屬性>1341.4.3統(tǒng)一建模語言UML在面向?qū)ο蟓h(huán)境中,我們使用對(duì)象和類描述現(xiàn)實(shí)世界中問題及其求解。從現(xiàn)實(shí)世界出發(fā)到設(shè)計(jì)出軟件需要一個(gè)過程,在這個(gè)過程中的最后一步才使用程序設(shè)計(jì)語言來編寫程序,而在這以前,我們需要其他的工具來描述問題及其求解。這種工具有多種多樣。統(tǒng)一建模語言UML(UnifiedModelingLanguage)是通用的可視1351.4.3統(tǒng)一建模語言UML在面向?qū)ο蟓h(huán)境中,我們使用對(duì)象1.4.3統(tǒng)一建模語言UML化建模語言,它是目前用來描述面向?qū)ο竽P偷囊环N最好工具。在UML中使用下列圖形符號(hào)表示類,如圖1-10所示。在建模過程中可視情況選擇任一種來表示類。1361.4.3統(tǒng)一建模語言UML化建模語言,它是目前用來描述面1371371.4.3統(tǒng)一建模語言UML以上僅是UML中的兩種圖形表示,完整的UML介紹可以查看有關(guān)參考資料。本書將逐步介紹所用到的UML符號(hào)。1381.4.3統(tǒng)一建模語言UML以上僅是UML中的兩種圖形表示上機(jī)實(shí)驗(yàn)1.上機(jī)運(yùn)行Java應(yīng)用程序circle_area.java。//本程序計(jì)算圓的面積publicclassaverage{publicstaticvoidmain(String[]args){floatr=5,S;S=r*r*3.1415;System.out.println(“Thecircle’sareais:”+S);}}139上機(jī)實(shí)驗(yàn)1.上機(jī)運(yùn)行Java應(yīng)用程序circle_area上機(jī)實(shí)驗(yàn)2.把上述Java應(yīng)用程序circle_area.java改為Javaapplet程序重新上機(jī)運(yùn)行它。3.請(qǐng)將練習(xí)題中的第18、19題中所編的程序輸入系統(tǒng)運(yùn)行,分析總結(jié)你從編寫程序到運(yùn)行程序過程中犯了哪些錯(cuò)誤。140上機(jī)實(shí)驗(yàn)2.把上述Java應(yīng)用程序circle_area.人有了知識(shí),就會(huì)具備各種分析能力,明辨是非的能力。所以我們要勤懇讀書,廣泛閱讀,古人說“書中自有黃金屋?!蓖ㄟ^閱讀科技書籍,我們能豐富知識(shí),培養(yǎng)邏輯思維能力;通過閱讀文學(xué)作品,我們能提高文學(xué)鑒賞水平,培養(yǎng)文學(xué)情趣;通過閱讀報(bào)刊,我們能增長(zhǎng)見識(shí),擴(kuò)大自己的知識(shí)面。有許多書籍還能培養(yǎng)我們的道德情操,給我們巨大的精神力量,鼓舞我們前進(jìn)。人有了知識(shí),就會(huì)具備各種分析能力,java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程序的執(zhí)行特征;2.理解匯編語言指令與機(jī)器語言指令的關(guān)系,理解高級(jí)語言與匯編語言的關(guān)系,理解編譯程序或編譯器的功能與作用,初步理解掌握?qǐng)?zhí)行程序的過程;3.了解高級(jí)語言發(fā)展簡(jiǎn)史;初步理解操作系統(tǒng)、客戶/服務(wù)器以及Internet和WWW的基本概念。2java語言程序設(shè)計(jì)基礎(chǔ)篇第八版課件完整版java語言程序設(shè)學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程序的執(zhí)行特征;2.理解匯編語言指令與機(jī)器語言指令的關(guān)系,理解高級(jí)語言與匯編語言的關(guān)系,理解編譯程序或編譯器的功能與作用,初步理解掌握?qǐng)?zhí)行程序的過程;3.了解高級(jí)語言發(fā)展簡(jiǎn)史;初步理解操作系統(tǒng)、客戶/服務(wù)器以及Internet和WWW的基本概念。143學(xué)習(xí)目標(biāo)1.了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語言程學(xué)習(xí)目標(biāo)4.了解Java語言的特點(diǎn),理解Java程序上機(jī)執(zhí)行過程,掌握簡(jiǎn)單的Java應(yīng)用程序和Javaapplet程序的基本結(jié)構(gòu),能上機(jī)執(zhí)行Java應(yīng)用程序和Javaapplet程序;能初步使用格式化輸入輸出語句。5.初步理解對(duì)象和類的概念,掌握表示它們的UML圖形符號(hào)。144學(xué)習(xí)目標(biāo)4.了解Java語言的特點(diǎn),理解Java程序上機(jī)執(zhí)內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML145內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW4內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW1.2Java語言1.3Java程序1.4對(duì)象與統(tǒng)一建模語言UML146內(nèi)容摘要1.1計(jì)算機(jī)、Internet和WWW51.1計(jì)算機(jī)、Internet和WWWJava語言是當(dāng)今最為成功的計(jì)算機(jī)高級(jí)語言之一,是開發(fā)互聯(lián)網(wǎng)應(yīng)用的重要語言。它是富有經(jīng)驗(yàn)的程序員或計(jì)算機(jī)及其相關(guān)專業(yè)的學(xué)生不能不學(xué)習(xí)的語言,事實(shí)上,它是許多各類學(xué)校計(jì)算機(jī)及其相關(guān)專業(yè)學(xué)生的一門課程。通過對(duì)它的學(xué)習(xí),學(xué)生將熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)基本知識(shí)和基本技能,并積累面向?qū)ο缶幊探?jīng)驗(yàn),掌握當(dāng)流行的應(yīng)用程序開發(fā)技術(shù),而這正是《Java語言程序設(shè)計(jì)教材》主要目的之一。本章是學(xué)習(xí)Java語言程序設(shè)計(jì)的一個(gè)簡(jiǎn)短入門。1471.1計(jì)算機(jī)、Internet和WWWJava語言是當(dāng)今1.1.1計(jì)算機(jī)的組成與運(yùn)行我們操作過計(jì)算機(jī)的人都知道,計(jì)算機(jī)就是一種設(shè)備,它能讓我們進(jìn)行文字處理,繪制圖形,玩游戲,聽音樂,制作動(dòng)畫,上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影,等等。這是從計(jì)算機(jī)應(yīng)用角度上的認(rèn)識(shí),實(shí)際上,計(jì)算機(jī)是能夠以比人快幾百萬甚至幾十億倍的速度執(zhí)行計(jì)算和邏輯判斷的設(shè)備。這種說法可能讓人感到有點(diǎn)神奇甚至迷惑:1481.1.1計(jì)算機(jī)的組成與運(yùn)行我們操作過計(jì)算機(jī)的人都知道,計(jì)算1.1.1計(jì)算機(jī)的組成與運(yùn)行“文字處理、繪制圖形、玩游戲、制作動(dòng)畫、聽音樂、上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影等”是怎樣與“執(zhí)行計(jì)算和邏輯判斷”聯(lián)系起來呢?實(shí)際上,我們使用的計(jì)算機(jī)即計(jì)算機(jī)系統(tǒng)包含兩大部分,一是硬件本身,它包括鍵盤、鼠標(biāo)、顯示器、磁盤和主機(jī)(箱)等;另一是軟件。1491.1.1計(jì)算機(jī)的組成與運(yùn)行“文字處理、繪制圖形、玩游戲、制1.1.1計(jì)算機(jī)的組成與運(yùn)行計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏輯判斷的功能,這些功能表現(xiàn)為一組指令,如加法指令、減法指令、取數(shù)指令、存數(shù)指令、輸入指令和輸出指令以及邏輯判斷類指令等;而軟件是程序員利用計(jì)算機(jī)指令集,規(guī)劃組織完成令我們激動(dòng)的玩游戲、聽音樂和制作動(dòng)畫等計(jì)算機(jī)應(yīng)用的特定指令序列。軟件也可簡(jiǎn)稱為程序。實(shí)際上,1501.1.1計(jì)算機(jī)的組成與運(yùn)行計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏1.1.1計(jì)算機(jī)的組成與運(yùn)行軟件與程序是不等價(jià)的,簡(jiǎn)單說,軟件=程序+相關(guān)文檔資料。計(jì)算機(jī)硬件是在程序的指令集控制下處理數(shù)據(jù)的。計(jì)算機(jī)程序控制著計(jì)算機(jī),使它按順序執(zhí)行一系列動(dòng)作,這些動(dòng)作是由程序員規(guī)劃的,并用指令描述的。各種計(jì)算機(jī)無論外觀差別有多大,每一臺(tái)計(jì)算機(jī)實(shí)際上都可劃分為五個(gè)邏輯單元(或稱五大部分),如圖1-1所示。1511.1.1計(jì)算機(jī)的組成與運(yùn)行軟件與程序是不等價(jià)的,簡(jiǎn)單說,軟計(jì)算程序輸入設(shè)備輸出設(shè)備外存儲(chǔ)器外部設(shè)備接口內(nèi)存運(yùn)算器控制器原始數(shù)據(jù)計(jì)算結(jié)果取數(shù)存數(shù)指令指令數(shù)據(jù)線控制信號(hào)線圖1-1計(jì)算機(jī)的基本組成152計(jì)算程序輸入設(shè)備輸出設(shè)備外存儲(chǔ)器外部設(shè)備接口原始數(shù)據(jù)計(jì)算結(jié)果1.1.1計(jì)算機(jī)的組成與運(yùn)行1)輸入單元。輸入單元是計(jì)算機(jī)接收信息的部分。它從各種輸入設(shè)備讀取信息(數(shù)據(jù)和計(jì)算機(jī)程序),并把這些放置到其它處理信息的單元中。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過鍵盤輸入的,但也逐漸出現(xiàn)使用其它許多輸入設(shè)備來進(jìn)行信息輸入,如掃描儀、聲音輸入設(shè)備等。1531.1.1計(jì)算機(jī)的組成與運(yùn)行1)輸入單元。輸入單元是計(jì)算機(jī)接1.1.1計(jì)算機(jī)的組成與運(yùn)行2)輸出單元。輸出單元是計(jì)算機(jī)輸出信息的部分。它把計(jì)算機(jī)處理過的信息放置到各種輸出設(shè)備中,從而使這些信息能夠被計(jì)算機(jī)外部使用。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過屏幕顯示和紙張打印輸出的,同時(shí)也出現(xiàn)使用其它許多輸出設(shè)備來進(jìn)行信息輸出,如音箱等。1541.1.1計(jì)算機(jī)的組成與運(yùn)行2)輸出單元。輸出單元是計(jì)算機(jī)輸1.1.1計(jì)算機(jī)的組成與運(yùn)行3)內(nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中存取速度快、容量相對(duì)較少的儲(chǔ)存部分。它能夠記憶來自輸入單元的信息,因而能夠在需要的時(shí)候立即處理這些信息。內(nèi)存單元還能夠記憶被處理過的信息,直到輸出單元把信息放到輸出設(shè)備上。內(nèi)存單元經(jīng)常被稱為內(nèi)存或主存。內(nèi)存在計(jì)算機(jī)電源關(guān)閉后將不起作用。1551.1.1計(jì)算機(jī)的組成與運(yùn)行3)內(nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中1.1.1計(jì)算機(jī)的組成與運(yùn)行4)中央處理單元(CPU)。中央處理單元是計(jì)算機(jī)中的“加工”和“管理”部分。它負(fù)責(zé)執(zhí)行各種計(jì)算如加、減、乘、除等,負(fù)責(zé)邏輯判斷如比較內(nèi)存中的兩個(gè)數(shù)是否相等,這部分又稱為運(yùn)算器。同時(shí),它還是計(jì)算機(jī)的協(xié)調(diào)者,負(fù)責(zé)管理對(duì)其它部分的操作,這部分又稱為控制器。在應(yīng)該把信息讀到內(nèi)存單元中時(shí),CPU就

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論