版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Java程序設計,第1章 java概述,楚雄師范學院計算機科學系 java程序設計課程,2/138,學習目標,1. 了解計算機的組成及運行原理,了解簡單機器語言程序的執(zhí)行特征; 2. 理解匯編語言指令與機器語言指令的關系,理解高級語言與匯編語言的關系,理解編譯程序或編譯器的功能與作用,初步理解掌握執(zhí)行程序的過程; 3. 了解高級語言發(fā)展簡史;初步理解操作系統(tǒng)、客戶/服務器以及Internet和WWW的基本概念。,楚雄師范學院計算機科學系 java程序設計課程,3/138,學習目標,4. 了解Java語言的特點,理解Java程序上機執(zhí)行過程,掌握簡單的Java 應用程序和Java applet程
2、序的基本結構,能上機執(zhí)行Java 應用程序和Java applet程序;能初步使用格式化輸入輸出語句。 5. 初步理解對象和類的概念,掌握表示它們的UML圖形符號。,楚雄師范學院計算機科學系 java程序設計課程,4/138,內(nèi)容摘要,1.1計算機、Internet和WWW 1.2 Java語言 1.3 Java程序 1.4 對象與統(tǒng)一建模語言UML,楚雄師范學院計算機科學系 java程序設計課程,5/138,內(nèi)容摘要,1.1計算機、Internet和WWW 1.2 Java語言 1.3 Java程序 1.4 對象與統(tǒng)一建模語言UML,楚雄師范學院計算機科學系 java程序設計課程,6/138
3、,1.1 計算機、Internet和WWW,Java語言是當今最為成功的計算機高級語言之一,是開發(fā)互聯(lián)網(wǎng)應用的重要語言。它是富有經(jīng)驗的程序員或計算機及其相關專業(yè)的學生不能不學習的語言,事實上,它是許多各類學校計算機及其相關專業(yè)學生的一門課程。通過對它的學習,學生將熟悉面向對象程序設計基本知識和基本技能,并積累面向對象編程經(jīng)驗,掌握當流行的應用程序開發(fā)技術,而這正是Java語言程序設計教材主要目的之一。本章是學習Java語言程序設計的一個簡短入門。,楚雄師范學院計算機科學系 java程序設計課程,7/138,1.1.1計算機的組成與運行,我們操作過計算機的人都知道,計算機就是一種設備,它能讓我們
4、進行文字處理,繪制圖形,玩游戲,聽音樂,制作動畫,上網(wǎng)查詢信息和觀看網(wǎng)絡電影,等等。這是從計算機應用角度上的認識,實際上,計算機是能夠以比人快幾百萬甚至幾十億倍的速度執(zhí)行計算和邏輯判斷的設備。這種說法可能讓人感到有點神奇甚至迷惑:,楚雄師范學院計算機科學系 java程序設計課程,8/138,1.1.1計算機的組成與運行,“文字處理、繪制圖形、玩游戲、制作動畫、聽音樂、上網(wǎng)查詢信息和觀看網(wǎng)絡電影等”是怎樣與“執(zhí)行計算和邏輯判斷”聯(lián)系起來呢? 實際上,我們使用的計算機即計算機系統(tǒng)包含兩大部分,一是硬件本身,它包括鍵盤、鼠標、顯示器、磁盤和主機(箱)等;另一是軟件。,楚雄師范學院計算機科學系 jav
5、a程序設計課程,9/138,1.1.1計算機的組成與運行,計算機硬件本身提供了執(zhí)行計算和邏輯判斷的功能,這些功能表現(xiàn)為一組指令,如加法指令、減法指令、取數(shù)指令、存數(shù)指令、輸入指令和輸出指令以及邏輯判斷類指令等; 而軟件是程序員利用計算機指令集,規(guī)劃組織完成令我們激動的玩游戲、聽音樂和制作動畫等計算機應用的特定指令序列。軟件也可簡稱為程序。實際上,,楚雄師范學院計算機科學系 java程序設計課程,10/138,1.1.1計算機的組成與運行,軟件與程序是不等價的,簡單說,軟件 = 程序 + 相關文檔資料。 計算機硬件是在程序的指令集控制下處理數(shù)據(jù)的。計算機程序控制著計算機,使它按順序執(zhí)行一系列動作
6、,這些動作是由程序員規(guī)劃的,并用指令描述的。 各種計算機無論外觀差別有多大,每一臺計算機實際上都可劃分為五個邏輯單元(或稱五大部分),如圖1-1所示。,楚雄師范學院計算機科學系 java程序設計課程,11/138,楚雄師范學院計算機科學系 java程序設計課程,12/138,1.1.1計算機的組成與運行,1)輸入單元。輸入單元是計算機接收信息的部分。它從各種輸入設備讀取信息(數(shù)據(jù)和計算機程序),并把這些放置到其它處理信息的單元中。當今計算機的大多數(shù)信息是通過鍵盤輸入的,但也逐漸出現(xiàn)使用其它許多輸入設備來進行信息輸入,如掃描儀、聲音輸入設備等。,楚雄師范學院計算機科學系 java程序設計課程,1
7、3/138,1.1.1計算機的組成與運行,2)輸出單元。輸出單元是計算機輸出信息的部分。它把計算機處理過的信息放置到各種輸出設備中,從而使這些信息能夠被計算機外部使用。當今計算機的大多數(shù)信息是通過屏幕顯示和紙張打印輸出的,同時也出現(xiàn)使用其它許多輸出設備來進行信息輸出,如音箱等。,楚雄師范學院計算機科學系 java程序設計課程,14/138,1.1.1計算機的組成與運行,3)內(nèi)存單元。內(nèi)存單元是計算機中存取速度快、容量相對較少的儲存部分。它能夠記憶來自輸入單元的信息,因而能夠在需要的時候立即處理這些信息。內(nèi)存單元還能夠記憶被處理過的信息,直到輸出單元把信息放到輸出設備上。內(nèi)存單元經(jīng)常被稱為內(nèi)存或
8、主存。內(nèi)存在計算機電源關閉后將不起作用。,楚雄師范學院計算機科學系 java程序設計課程,15/138,1.1.1計算機的組成與運行,4)中央處理單元(CPU)。中央處理單元是計算機中的“加工”和“管理”部分。它負責執(zhí)行各種計算如加、減、乘、除等,負責邏輯判斷如比較內(nèi)存中的兩個數(shù)是否相等,這部分又稱為運算器。同時,它還是計算機的協(xié)調者,負責管理對其它部分的操作,這部分又稱為控制器。在應該把信息讀到內(nèi)存單元中時,CPU就會向輸入設備發(fā)出請求;,楚雄師范學院計算機科學系 java程序設計課程,16/138,1.1.1計算機的組成與運行,當要把內(nèi)存中信息用于計算時,CPU會把這種請求通知其內(nèi)部的運算
9、器;當要把內(nèi)存中的信息發(fā)送給某個輸出設備時,CPU就會告訴輸出設備。 5)二級存儲單元。二級存儲單元是計算機中可以長久保存信息的高容量存儲部分。沒有被其它單元使用的程序和數(shù)據(jù)通常放在二級存儲單元中(如磁盤),,楚雄師范學院計算機科學系 java程序設計課程,17/138,1.1.1計算機的組成與運行,這些信息可能需要幾個小時、幾天、幾個月甚至幾年才會被使用。二級存儲單元也稱為外存儲器,外存或稱為輔存。 計算機運行的過程,就是順次執(zhí)行程序中指令的過程。計算機的指令以及運行時數(shù)據(jù)都是采用二進制數(shù)表示的。下面舉一個簡單的例子說明計算機的運行。,楚雄師范學院計算機科學系 java程序設計課程,18/1
10、38,1.1.1計算機的組成與運行,例1.1 設計一個程序,其運行后接受用戶輸入的兩個數(shù),然后計算其平均值,并輸出結果。 解答:解決問題的過程為: 1)輸入兩個數(shù)存放于變量a和b中; 2)計算(a+b)/2,并將其結果存儲于變量X中; 3)輸出X中的值;,楚雄師范學院計算機科學系 java程序設計課程,19/138,1.1.1計算機的組成與運行,當用計算機的指令來完成上述過程時,需要考慮到計算機的具體特性,如計算機中沒有變量,而是用存儲單元來表示等。完成上述過程的指令序列及其運行時在內(nèi)存的存儲布局如圖1-2所示。,楚雄師范學院計算機科學系 java程序設計課程,20/138,楚雄師范學院計算機
11、科學系 java程序設計課程,21/138,1.1.1計算機的組成與運行,例子說明:每8位二進制數(shù)稱為一個字節(jié)(Byte),每一條指令用若干個字節(jié)的二進制代碼表示,并存儲到內(nèi)存單元中。最小內(nèi)存單元為1個字節(jié),它必須用一個編號來表示,這個編號稱為單元地址。在圖1-2中我們并沒有把每個單元的地址標出來,只標出每條指令代碼存儲的起始單元的地址。,楚雄師范學院計算機科學系 java程序設計課程,22/138,1.1.1計算機的組成與運行,圖1-2中的開始三個字節(jié)存儲單元分別表示變量a、b和X,用于存儲它們的值。其它存儲單元用于存儲指令,這些指令的含義解釋如下。 第一條指令用2個字節(jié)數(shù)據(jù)“1000011
12、0 01100000”表示CPU從輸入設備讀進一個數(shù)(a)并放置到寄存器AL中。,楚雄師范學院計算機科學系 java程序設計課程,23/138,1.1.1計算機的組成與運行,第二條指令用3個字節(jié)數(shù)據(jù)“10100010 00000100 00000000”表示CPU把寄存器AL中數(shù)放置到內(nèi)存中地址編號為00000100的存儲單元(1個字節(jié))中保存。其中第3個字節(jié)數(shù)據(jù)和第2個字節(jié)數(shù)據(jù)合成一個16位二進制數(shù)據(jù)(即00000000 00000100),表示存儲單元(a)的地址。,楚雄師范學院計算機科學系 java程序設計課程,24/138,1.1.1計算機的組成與運行,第三條指令用2個字節(jié)數(shù)據(jù)“100
13、00110 01100000”表示CPU從輸入設備讀進一個數(shù)(b)并放置到寄存器AL中; 第四條指令用3個字節(jié)數(shù)據(jù)“10100010 00000101 00000000”表示CPU把寄存器AL中數(shù)放置到內(nèi)存中地址編號為00000101的存儲單元(1個字節(jié))中保存。其中第3個字節(jié)數(shù)據(jù)和第2個字節(jié)數(shù)據(jù)合成一個16位二進制數(shù)據(jù)(即,楚雄師范學院計算機科學系 java程序設計課程,25/138,1.1.1計算機的組成與運行,即00000000 00000101),表示存儲單元(b)的地址。 第五條指令用3個字節(jié)數(shù)據(jù)“10100000 00000100 00000000”表示CPU從內(nèi)存中地址編號為00
14、000100的存儲單元讀進1個字節(jié)數(shù)據(jù)(a)并放置到AL寄存器中。,楚雄師范學院計算機科學系 java程序設計課程,26/138,1.1.1計算機的組成與運行,第六條指令用4個字節(jié)數(shù)據(jù)“00000000 11000000 00000101 00000000”表示CPU把內(nèi)存中地址編號為00000101存儲單元的數(shù)據(jù)(b)加到AL寄存器中。 第七條指令用2個字節(jié)數(shù)據(jù)“10110001 00000010”表示CPU把數(shù)00000010即2存儲到CL寄存器中。,楚雄師范學院計算機科學系 java程序設計課程,27/138,1.1.1計算機的組成與運行,第八條指令用2個字節(jié)數(shù)據(jù)“11110110 11
15、110001”表示CPU用CL中數(shù)支除AL寄存器中數(shù),其結果存儲在AL寄存器中。 第九條指令用3個字節(jié)數(shù)據(jù)“10100010 00000110 00000000”表示CPU把寄存器AL中數(shù)傳送到內(nèi)存中地址編號為00000110的存儲單元(X)中保存;,楚雄師范學院計算機科學系 java程序設計課程,28/138,1.1.1計算機的組成與運行,第十條指令用3個字節(jié)數(shù)據(jù)“10111010 11010101 00000011”表示CPU把數(shù)00000011 11010101即03D5H(十六進制)存儲到DX寄存器中;03D5H表示顯示器的端口號。 第十一條指令用1個字節(jié)數(shù)據(jù)“11101110”表示C
16、PU把AL寄存器中數(shù)送到DX寄存器所指向的端口連接的設備即顯示器。,楚雄師范學院計算機科學系 java程序設計課程,29/138,1.1.1計算機的組成與運行,第十二條指令用1個字節(jié)數(shù)據(jù)“11110100”表示CPU停止執(zhí)行指令。 計算機的指令集也稱為機器語言,上述的指令序列也稱為機器語言程序。注意,該例子中用漢語描述計算過程時的每一步,在用機器語言描述時需要多條指令。,楚雄師范學院計算機科學系 java程序設計課程,30/138,1.1.2機器語言、匯編語言和高級語言,機器語言就是計算機CPU的指令集合,用它表示的計算程序即機器語言程序可以直接由計算機執(zhí)行。我們所謂的使用計算機,其它實質就是
17、通過使用機器語言來完成計算任務,所以從這個角度上講,機器語言就是機器的“代表”或“化身”。 但機器語言程序難理解,因為機器指令是用二進制數(shù)據(jù)表示的。為了便于記憶、,楚雄師范學院計算機科學系 java程序設計課程,31/138,1.1.2機器語言、匯編語言和高級語言,理解機器指令或機器語言程序,人們用字母符號來表示機器指令,這種字母符號一般用一個有意義單詞的前幾個字母組成,如ADD表示加法指令,MOV表示傳送數(shù)據(jù)等等。符號化的指令稱為匯編指令,匯編指令的集合稱為匯編語言,用它表示的程序稱為匯編語言程序。 上節(jié)例子中的機器語言程序對應的匯編語言程序為下表右部分所示:,楚雄師范學院計算機科學系 ja
18、va程序設計課程,32/138,楚雄師范學院計算機科學系 java程序設計課程,33/138,1.1.2機器語言、匯編語言和高級語言,將該匯編語言程序與上節(jié)機器語言程序比較,我們可以發(fā)現(xiàn)每一條匯編語言指令與每一條機器指令基本上是一一對應的。注意,該匯編語言程序中,方括號中的數(shù)表示存儲單元地址,這個數(shù)前后加上方括號,表示以該數(shù)為地址的存儲單元內(nèi)容,如第2條匯編指令中,0100表示地址為00000100的存儲單元(a),寄存器中的數(shù)(a)將被放置在其中;,楚雄師范學院計算機科學系 java程序設計課程,34/138,1.1.2機器語言、匯編語言和高級語言,不加方括號的數(shù)表示一般數(shù)據(jù),如第10條匯編
19、指令中,03D5H表示16進制數(shù)值03D5,將被放置到寄存器DX中。 匯編語言可以看作是機器語言的抽象,事實上,它是通過符號化機器代碼來實現(xiàn)的。 然而用匯編語言表示人類社會的計算,也不大方便和直觀,如上例中的,楚雄師范學院計算機科學系 java程序設計課程,35/138,1.1.2機器語言、匯編語言和高級語言,“MOV DX 03D5H和OUT DX AL”是用于“輸出數(shù)據(jù)”,這兩者之間幾乎看不出有什么直觀的聯(lián)系。于是出現(xiàn)了所謂的高級語言作為對匯編語言的抽象,使得指令更加“概念化”,以便更接近我們的自然語言層次。用高級語言表示的程序稱為高級語言程序。Java語言就是一種高級語言,用它寫出類似上
20、述例子的程序是:,楚雄師范學院計算機科學系 java程序設計課程,36/138,1.1.2機器語言、匯編語言和高級語言,1 public class average 2 public static void main(String args) 3 int a = 12, b = 34, c ; 4 c = (a+b)/2; 5 System.out.println(“The average is:”+c); 6 7 ,楚雄師范學院計算機科學系 java程序設計課程,37/138,1.1.2機器語言、匯編語言和高級語言,輸出結果: The average is: 23 程序說明:這里的Java程
21、序由一個所謂的類構成,第1行是該類的開始,定義了名為average的類,第7行以來結束該類的定義。 類一般包含多個方法,average類只含一個名為main的主方法,它由方法頭部即,楚雄師范學院計算機科學系 java程序設計課程,38/138,1.1.2機器語言、匯編語言和高級語言,第2行開始到第6行結束,其包含三句即第3、4、5行,其中第3行聲明三個整型變量a、b和c,分別存放兩個整數(shù)和它們的平均值。第4行計算出a和b的平均值,并存放到(賦值給)變量c中。第5行從屏幕上輸出文字“The average is:”和結果即c的值。 注:上述java程序中,每行開始的數(shù)字不是程序中的部分,它是作者
22、加上的,,楚雄師范學院計算機科學系 java程序設計課程,39/138,1.1.2機器語言、匯編語言和高級語言,用來表示行號,以便解釋每行程序時,指明是哪一行。 可見,高級語言要比匯編語言容易理解和記憶,事實上,它的抽象程度比匯編語言的高,并且更“接近”我們?nèi)祟惖恼Z言,如高級語言中的變量就是存儲單元的抽象。 注:這里每一句如c=(a+b)/2對應了完成相應計算的多條匯編語句。,楚雄師范學院計算機科學系 java程序設計課程,40/138,1.1.2機器語言、匯編語言和高級語言,采用高級語言完成我們的計算任務,確實要比機器語言和匯編語言較自然和直觀。但是,計算機畢竟只能執(zhí)行機器指令,所以,當我們
23、編寫出高級語言程序后,還得將它轉換成對應的機器語言程序,才能使計算機去執(zhí)行計算。 完成這種轉換的過程稱為程序翻譯。 程序翻譯猶如是現(xiàn)實中的語言翻譯,也,楚雄師范學院計算機科學系 java程序設計課程,41/138,1.1.2機器語言、匯編語言和高級語言,有兩種方式即“筆譯”和“口譯”。 筆譯就是一次完整地翻譯并記錄在紙上,然后可以復印多份,同時供多人閱讀。 而口譯是在實際場景中,邊講邊口頭翻譯,同樣的話說兩次,就得口譯兩次。顯然??谧g快,筆譯慢;口譯效率低,筆譯效率高。,楚雄師范學院計算機科學系 java程序設計課程,42/138,1.1.2機器語言、匯編語言和高級語言,對程序翻譯而言,其“筆
24、譯”稱為編譯,其“口譯”稱為解釋,并且編譯和解釋工作是由專門的程序來完成的,這種翻譯程序分別稱為編譯程序和解釋程序。 在編譯過程,被翻譯的語言程序也稱為源程序,相應地翻譯結果稱為目標程序,并且當源程序是匯編語言程序是,對應的翻譯程序稱為匯編程序,如圖1-3所示。,楚雄師范學院計算機科學系 java程序設計課程,43/138,1.1.2機器語言、匯編語言和高級語言,楚雄師范學院計算機科學系 java程序設計課程,44/138,1.1.2機器語言、匯編語言和高級語言,注意:由上可以看出采用機器語言、匯編語言和高級語言分別表示同一個計算時,雖然它們采用的命令或語句的數(shù)目不相同,特征也各異,但它們所包
25、含的內(nèi)在計算步驟或過程是相同的。在后面我們將把這種“計算步驟或過程”稱為算法。,楚雄師范學院計算機科學系 java程序設計課程,45/138,1.1.3 高級語言的發(fā)展簡史,上個世紀50年代早期,開始出現(xiàn)符號化語言。格雷斯.霍帕(Grace Hopper)領導一個小組開發(fā)了A-0語言,約翰.巴克斯為IBM 701開發(fā)了加速代碼。 1955年以后,開始出現(xiàn)一系列高級語言。1955年到1957年間,巴克斯領導一個組開發(fā)了公式翻譯語言,楚雄師范學院計算機科學系 java程序設計課程,46/138,1.1.3 高級語言的發(fā)展簡史,ALGOrithmic Language,也即ALGOL語言。該語言具有
26、幾個不同的目標,即 1、ALGOL語言的表示應該接近標準數(shù)學。 2、ALGOL語言對于描述算法應該是有用的。 3、用ALGOL語言編寫的程序應該可編譯為機器語言程序。,楚雄師范學院計算機科學系 java程序設計課程,47/138,1.1.3 高級語言的發(fā)展簡史,4、ALGOL語言不局限于某一計算機的體系結構。 正是ALGOL語言,引入了傳遞名字參數(shù)的過程調用概念,也是為了定義ALGOL語言,約翰.巴克斯和彼特.瑙爾給出了一種高級語言的語法描述方法,被稱為巴克斯-瑙爾范式,或稱為BNF。ALGOL語言后來又有了兩次發(fā)展分別為ALGOL 60和,楚雄師范學院計算機科學系 java程序設計課程,48
27、/138,1.1.3 高級語言的發(fā)展簡史,ALGOL 68。ALGOL語言并沒有在美國得到推廣。 FORTRAN語言和ALGOL語言都是基于數(shù)值計算的語言。 在早期語言的研究與開發(fā)的基礎上,各種各樣的高級語言迅速發(fā)展起來,多達幾萬種,但得到廣泛應用的也就是十幾種。,楚雄師范學院計算機科學系 java程序設計課程,49/138,楚雄師范學院計算機科學系 java程序設計課程,50/138,楚雄師范學院計算機科學系 java程序設計課程,51/138,1.1.4 程序運行的過程,在前面,為了便于寫出完成計算的程序,引入了高級語言,而用高級語言寫程序確實要比用匯編語言和機器語言來得方便和直觀,但由此
28、也改變了我們運行程序的過程。 一般地,運行一個高級語言程序需要經(jīng)歷三個步驟: 第一就是要把源程序正確無誤地輸入到計算機內(nèi)部,這一步稱為編輯源程序,楚雄師范學院計算機科學系 java程序設計課程,52/138,1.1.4 程序運行的過程,并且是通過運行一個所謂的編輯程序來完成的; 第二步就是運行編譯程序,來把源程序翻譯成目標程序; 第三步就是運行該目標程序,完成特定的計算。 如圖1-4所示.,楚雄師范學院計算機科學系 java程序設計課程,53/138,楚雄師范學院計算機科學系 java程序設計課程,54/138,1.1.5 操作系統(tǒng),我們運行程序時,并不是簡單地直接使用計算機硬件來進行,而是通
29、過運行在計算機中的所謂操作系統(tǒng)來完成的。操作系統(tǒng)是計算機中最重要的程序,用來管理和控制計算機的活動。我們經(jīng)常使用的Windows 2000、XP或ME,就是一種常用的操作系統(tǒng)。沒有操作系統(tǒng),應用程序(如字處理程序、Internet瀏覽器等)就不能運行。硬件、操作系統(tǒng)、應用程序和用戶之間的關系如圖1-5所示。,楚雄師范學院計算機科學系 java程序設計課程,55/138,楚雄師范學院計算機科學系 java程序設計課程,56/138,1.1.5 操作系統(tǒng),1. 控制和監(jiān)督系統(tǒng)的活動 操作系統(tǒng)要對系統(tǒng)的安全負責,要確保沒有權限的用戶不能訪問系統(tǒng),要確保系統(tǒng)信息不受到破壞,要確保合法的操作得到執(zhí)行,還
30、要確保不同程序和用戶在同時使用計算機時不會相互干擾。操作系統(tǒng)不必須提供一些基本功能,如,識別鍵盤輸入,向顯示器發(fā)送輸出,保存文件和目錄,控制硬盤驅動器和打印機等。,楚雄師范學院計算機科學系 java程序設計課程,57/138,1.1.5 操作系統(tǒng),2. 分配系統(tǒng)資源 操作系統(tǒng)負責確定程序需要使用哪些計算機資源(CPU、內(nèi)存、磁盤、輸入和輸出設備),并進行資源分配以便運行程序;程序結束時還要回收資源。 3. 安排操作的順序 操作系統(tǒng)還要負責安排和確定程序的執(zhí)行順序,以便有效地利用資源。為了增強系統(tǒng)的性能,目前許多操作系統(tǒng)支持多道程序設計、多線程和多處理技術。,楚雄師范學院計算機科學系 java程
31、序設計課程,58/138,1.1.5 操作系統(tǒng),多道程序設計允許多個程序同時運行,共享CPU。例如,Web瀏覽器下載文件的同時,我們可以用字處理程序來編輯文件。 線程是程序中可同時運行的基本單。多線程允許一個程序內(nèi)部同時有多個“子程序”并發(fā)處理,即可以同時運行。例如,Word字處理程序允許用戶編輯文字的同時將其保存到文件中。這里編輯和保存就是同一個應用程序中的兩個不同任務。 多處理也稱為并行處理,是指用兩個或多個處理器一起執(zhí)行同一任務。,楚雄師范學院計算機科學系 java程序設計課程,59/138,1.1.6 客戶/ 服務器,客戶/服務器是網(wǎng)絡系統(tǒng)中應用廣泛的一種技術,它的用法有點混亂??蛻?
32、服務器有兩種用法: 一種用來指網(wǎng)絡上作為提供信息共享服務的計算機和用戶用來查詢?yōu)g覽網(wǎng)絡上信息的計算機,前者稱為服務器計算機或簡稱為服務器,后者稱為客戶計算機或簡稱為客戶機。,楚雄師范學院計算機科學系 java程序設計課程,60/138,1.1.6 客戶/ 服務器,另一種用法是指運行中的程序(進程或線程)之間的關系的處理方式,本書下面開始都是指的這種用法。 當一個程序在某一時刻向另一個程序提出請求服務時,則提出請求服務的程序稱為客戶,而提供服務的程序稱為服務器。例如,我們通過Internet瀏覽器上網(wǎng)查詢網(wǎng)絡信息時,它就是一個客戶程序,而提供信息的Web就是服務器。,楚雄師范學院計算機科學系 j
33、ava程序設計課程,61/138,1.1.6 客戶/ 服務器,客戶與服務器的關系并不是一成不變的,它們是一種相對的關系。在某一時刻是服務器的程序,在另一時刻就有可能成為客戶程序。,楚雄師范學院計算機科學系 java程序設計課程,62/138,1.1.7 Internet和WWW,Internet互聯(lián)網(wǎng)絡是上世紀60年代以來,由美國國防部投資開發(fā)的。最初只是聯(lián)接大約十幾所大學和研究機構的主要計算機系統(tǒng)。今天,聯(lián)入Internet的計算機數(shù)量已達幾億臺。 WWW(The World Wide Web)是Internet互聯(lián)網(wǎng)絡上一種最廣泛的應用技術或應用形式,它使Internet互聯(lián)網(wǎng)絡上的用戶從
34、世界各地訪問多媒,楚雄師范學院計算機科學系 java程序設計課程,63/138,1.1.7 Internet和WWW,體電子信息寶庫??梢允褂肳WW查找和查看所有主題的基于多媒體的文檔,可以預定旅館的房間、購買飛機票、注冊學習課程、下載各種資料、與朋友聊天、觀看電影、收聽實況直播等等。,楚雄師范學院計算機科學系 java程序設計課程,64/138,內(nèi)容摘要,1.1計算機、Internet和WWW 1.2 Java語言 1.3 Java程序 1.4 對象與統(tǒng)一建模語言UML,楚雄師范學院計算機科學系 java程序設計課程,65/138,1.2 Java語言,Java是功能齊全的能用程序設計語言,
35、可以開發(fā)可靠的、要求嚴格的應用程序。Java不僅可以開發(fā)Web應用程序,而且還可以開發(fā)跨平臺的獨立應用程序,這些程序用于服務器、臺式機、移動設備等。,楚雄師范學院計算機科學系 java程序設計課程,66/138,1.2.1 Java語言的特點,Java具有許多誘人的特點。這些特點正如Sun公司在Java語言白皮書開始處所說,包括Java是簡單的、面向對象的、分布式的、解釋型的、健壯的、安全的、結構中立的、可移植的、高效的、多線程的以及動態(tài)的等。 1. Java是簡單的 任何一門計算機語言都不是簡單的,,楚雄師范學院計算機科學系 java程序設計課程,67/138,1.2.1 Java語言的特點
36、,因為他們都具有進行程序設計所需要的基本功能和基本成份,需要完成常規(guī)程序設計。但是與程序設計語言C+相比,Java要顯得簡單一些。Java部分地模仿了C+,但是進行了極大的簡化和改進。例如,C+中的指針和多重繼續(xù)常常使程序復雜化,而Java丟棄了指針,并使用一種所謂接口(interface)的簡單概念代替了多重繼續(xù)。,楚雄師范學院計算機科學系 java程序設計課程,68/138,1.2.1 Java語言的特點,C+要求程序員自己去進行內(nèi)存的分配與回收,而Java采用自動內(nèi)存分配與回收。另外,Java比C+具有更少的語言概念,而功能卻更強大。 2. Java是面向對象的 Java一開始就設計為完
37、全面向對象的,即Java天生就是面向對象的。而許多面向對象語言如C+,包含了面向過程的特征。,楚雄師范學院計算機科學系 java程序設計課程,69/138,1.2.1 Java語言的特點,所謂面向過程,指程序是按照問題解決的既定過程設計而的,它在的運行過程完全符合問題解決的既定過程,這就要求設計過程中必須按照(規(guī)定的)解決問題過程來進行,即通過把問題分解為若干小問題來進行求解,也即進行所謂的功能分解。這樣,設計出來的程序是由一些功能模塊構成,楚雄師范學院計算機科學系 java程序設計課程,70/138,1.2.1 Java語言的特點,(這種“功能模塊”在C語言中稱為函數(shù)),如圖1-5所示,該程
38、序是用于計算規(guī)則圖形面積,它被分解為四個功能模塊。,楚雄師范學院計算機科學系 java程序設計課程,71/138,1.2.1 Java語言的特點,而面向對象是指程序是由對象構成的,這種對象是問題中事物的抽象,它包含數(shù)據(jù)字段和方法;數(shù)據(jù)字段和方法分別用來表征事物的屬性和行為。面向對象還提供了對象的繼承和多態(tài)性,這用來反映事物之間的關系。面向對象是對現(xiàn)實世界中事物及其關系的一種自然的反映,因而,它便于反映現(xiàn)實世界的變化,并且對付這種變化付出的代價要比面向過程技術小得多。,楚雄師范學院計算機科學系 java程序設計課程,72/138,1.2.1 Java語言的特點,作為面向對象的Java,它提供了封
39、裝、繼承和多態(tài)性,這使得它具有了極大的靈活性、模塊性、透明性和可重用性。其中的重用性使我們可以重用代碼。 3. Java是分布式的 分布式計算是網(wǎng)絡上的一種高級應用形式,它使網(wǎng)絡上的多臺計算機整合為一個整體(好象一臺計算機一樣),,楚雄師范學院計算機科學系 java程序設計課程,73/138,1.2.1 Java語言的特點,透明地完成用戶提交的工作。Java的設計使分布式計算變得容易起來,由于Java一開始就設計了網(wǎng)絡工作能力,因而編寫網(wǎng)絡程序如同在文件中存取數(shù)一起。 4. Java是解釋型的 Java程序運行前需要編譯成一種所謂Java虛擬機(Java Virtual Machine,JVM
40、)編碼,這種編碼稱,楚雄師范學院計算機科學系 java程序設計課程,74/138,1.2.1 Java語言的特點,為字節(jié)碼(bytecode)。字節(jié)碼獨立于具體的計算機,運行時需要Java解釋器來把它轉換成本地計算機代碼予以完成,所以它能在任何具有Java解釋器的機器上運行。如圖1-6所示是Java程序、Java字節(jié)碼、Java虛擬機和計算機的關系。,楚雄師范學院計算機科學系 java程序設計課程,75/138,楚雄師范學院計算機科學系 java程序設計課程,76/138,1.2.1 Java語言的特點,大多數(shù)高級語言的編譯器都把程序編譯成機器代碼,這種機器代碼只能在本地計算機上運行,如果要在
41、其他計算機上運行,還得在這些計算機上重新編譯。使用Java,只需要編譯一次,其編譯而成的字節(jié)碼即可以在任何具有Java解釋器的平臺上運行。 5. Java是健壯的 任何一門程序設計語言都不能是絕對,楚雄師范學院計算機科學系 java程序設計課程,77/138,1.2.1 Java語言的特點,可靠的,其編制的程序都有可能發(fā)生這樣或那樣的錯誤。所謂健壯的就指避免錯誤和處理錯誤的能力較強。Java丟棄了其他語言中容易引起錯誤的某些程序概念類型,例如,它不支持指針,從而避免了重寫內(nèi)存而造成的數(shù)據(jù)破壞的可能性。另一方面,Java具有實時異常處理的功能,該特點有助于提高程序的健壯性。Java強,楚雄師范學
42、院計算機科學系 java程序設計課程,78/138,1.2.1 Java語言的特點,制程序員編寫處理異常的代碼,所以它能夠捕獲并響應意外情況,從而發(fā)生實時錯誤時程序能夠繼續(xù)正常執(zhí)行錯誤處理代碼,穩(wěn)妥地結束。 5. Java是安全的 Java一開始就是用于Internet程序設計而出現(xiàn)的,網(wǎng)絡和分布式環(huán)境是它的主要用途之一。所以,Java在安全上進行了精心的考慮,它執(zhí)行多層安,楚雄師范學院計算機科學系 java程序設計課程,79/138,1.2.1 Java語言的特點,全機制用以保護系統(tǒng)不受到惡意地破壞,從而使用戶在下載并運行一個Java applet(一種特殊的Java程序,它需要下載到本地計
43、算機Internet瀏覽器中運行)時,它不會損害本地的系統(tǒng)。安全性的前提是什么也不能信任。 6. Java是結構中立的 Java是解釋型的,這一特點使得Java,楚雄師范學院計算機科學系 java程序設計課程,80/138,1.2.1 Java語言的特點,成為結構中立的(architecture-neutral),即Java是平臺無關的。得用Java虛擬機,我們可編寫任何平臺上都能運行的程序。 7. Java是可移植的 Java是結構中立的,因而Java程序是可移埴的,它不必重新編譯就能在任何平臺上運行。Java在不同平臺上運行時,用戶不用擔心數(shù)值的最大長度,楚雄師范學院計算機科學系 java
44、程序設計課程,81/138,1.2.1 Java語言的特點,和精度會發(fā)生變化。 8. Java是高效的 9. Java是多線程的 多線程使得一個程序可以同時執(zhí)行多個任務成為可能,因而它被廣泛應用于圖形用戶界面(Graphics User Interface,GUI)和網(wǎng)絡程序設計中。在GUI程序設計中,有許多任務需要同時進行,如播放音樂、瀏覽網(wǎng),楚雄師范學院計算機科學系 java程序設計課程,82/138,1.2.1 Java語言的特點,頁等。在網(wǎng)絡程序設計中,一個服務器可能同時為多個客戶服務,如多臺計算機上的瀏覽器同時向一臺WWW服務器請求網(wǎng)頁信息時,就需要服務器有多個線程分別響應它們的要求
45、。一般而言,使用多線程必須調用操作系統(tǒng)特定的過程才能實現(xiàn),但Java語言卻平衡地集成了多線程程序設計技術,簡化了程序員的編程難。,楚雄師范學院計算機科學系 java程序設計課程,83/138,1.2.1 Java語言的特點,10. Java是動態(tài)的 Java是為適應變化的環(huán)境而設計的,不用重新編譯就可以在不知不覺中裝入新類。既不需要開發(fā)者創(chuàng)建新的軟件版本,也不需要用戶重新安裝,必要時,新特征就可以透明地并入。,楚雄師范學院計算機科學系 java程序設計課程,84/138,1.2.2 Java環(huán)境與工具,Java環(huán)境由Java 應用編程接口(API)和Java虛擬機 (JVM)構成。Java 應
46、用編程接口是已編譯的可在我們的程序中使用的代碼庫或預定義類庫。它們使我們能夠添加現(xiàn)成的可定制的功能,以節(jié)約編程時間。Java虛擬機是用來解釋執(zhí)行我們的Java程序。,楚雄師范學院計算機科學系 java程序設計課程,85/138,1.2.2 Java環(huán)境與工具,Java工具是給我們編寫和運行Java程序提供支持的一組程序,它的主要功能就是編譯Java程序。 為了構建Java環(huán)境,Sun公司提供了Java系統(tǒng),該系統(tǒng)目前已支持1998年公布的Java2平臺,主要的有三種即Java 2標準版(Java 2 Standard Edition,J2SE)、,楚雄師范學院計算機科學系 java程序設計課程
47、,86/138,1.2.2 Java環(huán)境與工具,Java 2企業(yè)版(Java 2 Enterprise Edition,J2EE)以及Java 2微型版(Java 2 Micro Edition,J2ME)。其中J2SE主要用來開發(fā)客戶端獨立的Java應用程序和Java applet程序,J2EE主要用來開發(fā)服務端的應用程序如Java Servlets和JavaSever Page。J2ME主要用來開發(fā)移動設備編程。本書主要以,楚雄師范學院計算機科學系 java程序設計課程,87/138,1.2.2 Java環(huán)境與工具,J2SE5.0版為主。 Java工具都是由一些獨立的程序構成,它們都是從命
48、令行運行的,例如,javac用來編譯Java源程序,java用來解釋執(zhí)行已編譯的Java程序。為了方便程序員編程,多家公司已經(jīng)提供了快速集成開發(fā)環(huán)境IDE(Integrated Development Enviroment),它們把編輯、編譯、,楚雄師范學院計算機科學系 java程序設計課程,88/138,1.2.2 Java環(huán)境與工具,鏈接、調試和在線幫助都集成在一個圖形窗口中。只需要在一個窗口中輸入源程序或打開已有的程序文件,點擊按鈕、菜單或者使用功能鍵就可以編譯源程序。主要的Java集成開發(fā)工具有: Sun公司的NetBeans Open Source(),楚雄師范學院
49、計算機科學系 java程序設計課程,89/138,1.2.2 Java環(huán)境與工具,Borland公司的Jbuilder() IBM公司的Eclipse Open Source() 本書將使用NetBeans集成開發(fā)工具。,楚雄師范學院計算機科學系 java程序設計課程,90/138,1.2.3 Java程序及其運行過程,一般地,運行一個Java程序需要經(jīng)歷三個步驟: 第一就是要把源程序正確無誤地輸入到計算機內(nèi)部,并存放在.java文件中,這一步稱為編輯源程序,并且是通過運行一個所謂的編輯程序來完成的; 第二步就是運行編譯程序,來把源程,楚雄師范學院計算機科學系 j
50、ava程序設計課程,91/138,1.2.3 Java程序及其運行過程,序翻譯成一種Java虛擬機的字節(jié)碼,并存放在.class文件中; 第三步就是解釋執(zhí)行該字節(jié)碼,完成特定的計算。 如圖1-7所示Java語言程序運行過程。,楚雄師范學院計算機科學系 java程序設計課程,92/138,楚雄師范學院計算機科學系 java程序設計課程,93/138,內(nèi)容摘要,1.1計算機、Internet和WWW 1.2 Java語言 1.3 Java程序 1.4 對象與統(tǒng)一建模語言UML,楚雄師范學院計算機科學系 java程序設計課程,94/138,1.3 Java程序,Java是一個成熟且功能強大的語言,可
51、用于多種用途。本節(jié)介紹兩種Java程序,即Java應用程序(Java Application)和Java applet程序。,楚雄師范學院計算機科學系 java程序設計課程,95/138,1.3.1簡單Java應用程序的基本結構,Java應用程序是由一個或多個所謂的類(class)構成的,其中至少有一個類需要使用public來聲明。我們在本節(jié)只看最簡單的Java應用程序,它由一個類構成。先看一個例子。 例1.2 給出一個Java應用程序,它把指定兩個數(shù)的平均值顯示在屏幕上。 解答:完成該問題的程序前面曾給出過,這里重新給,并配上注釋。,楚雄師范學院計算機科學系 java程序設計課程,96/13
52、8,1.3.1簡單Java應用程序的基本結構,1 / 本程序計算兩個數(shù)的平均值 2 public class average 3 4 public static void main(String args) 5 6 int a = 12, b = 34, c ; 7 c = (a+b)/2;,楚雄師范學院計算機科學系 java程序設計課程,97/138,1.3.1簡單Java應用程序的基本結構,8 System.out.println(“The average is:”+c); 9 10 例子說明:該程序由一個類構成,該類由兩個部分構成,第一部分是類頭,由第2行給出,它用class聲明從本處開
53、始的是一個類,用public聲明該類是公共的,并,楚雄師范學院計算機科學系 java程序設計課程,98/138,1.3.1簡單Java應用程序的基本結構,給出了本類的類名為average;類的第二部分稱為類體,由第3行到第10行構成,它以“”開始且以“”結束,中間部分是由方法構成。 該類包含一個稱為main的方法(第4行至第9行)。在這個程序中main方法包含有三條語句,語句使用分號(;)結束,其中第6行是一條聲明語句,使用int聲明三個整型變量a、,楚雄師范學院計算機科學系 java程序設計課程,99/138,1.3.1簡單Java應用程序的基本結構,b和c,且初始化a和b為12和34;第7
54、行計算a和b的平均值,并將計算結果賦值給(存放到)變量c;第8行是System.out.println語句,它在屏幕上輸出“The average is:”+c的結果,這里“The average is:”是一個字符串,通過加號(+)把它與變量c的值合并成一個新的串作為結果輸出。 該程序的第1行是注釋行,由/開始,楚雄師范學院計算機科學系 java程序設計課程,100/138,1.3.1簡單Java應用程序的基本結構,后跟注釋的文字。注釋并不是程序的一部分,它只起到說明的作用,以便使程序可讀性強,編譯程序在編譯源程序時會去除注釋,不會編譯它的。 注:上述程序必須存放到.java文件中,且文件名
55、必須與類同名,即上述程序文件為average.java。 注:這里的方法為什么使用main作為名,為什么要這樣定義,等等,,楚雄師范學院計算機科學系 java程序設計課程,101/138,1.3.1簡單Java應用程序的基本結構,這些問題留待后續(xù)章節(jié)回答,現(xiàn)在我們只能暫且接受這些。 由上述例子我們可以給出簡單Java應用程序的結構為:,楚雄師范學院計算機科學系 java程序設計課程,102/138,1.3.1簡單Java應用程序的基本結構,在圖1-8中,由符號“”括起來的部分,如,表示在具體程序中由用戶自己根據(jù)實際情況給出。,楚雄師范學院計算機科學系 java程序設計課程,103/138,1.
56、3.2 Java應用程序的執(zhí)行,Java應用程序的執(zhí)行過程分為三步,即 第一步使用編輯程序輸入源程序,并存放到.java文件中,該文件名與源程序中的public類同名; 第二步使用javac編譯源程序,編譯結果即字節(jié)碼存放到.class文件中,該文件與源程序文件同名;,楚雄師范學院計算機科學系 java程序設計課程,104/138,1.3.2 Java應用程序的執(zhí)行,第三步使用java解釋執(zhí)行.class文件。 這樣執(zhí)行例1.2程序的過程是, 首先可以使用任一編輯程序,如微軟的記事本,輸入源程序并存放到average.java文件中; 然后,鍵入如下命令進行編譯: javac average.
57、java,楚雄師范學院計算機科學系 java程序設計課程,105/138,1.3.2 Java應用程序的執(zhí)行,最后,輸入如下命令進行解釋執(zhí)行: java average 注:要使上述后兩步過程順利進行,則進入命令窗口后,就使用path命令設置搜索路徑到Java系統(tǒng)目錄。例如,如果Java系統(tǒng)安裝到 C:ProgramFilesJavajdk1.5.0_06中,,楚雄師范學院計算機科學系 java程序設計課程,106/138,1.3.2 Java應用程序的執(zhí)行,則path命令為: path C:ProgramFilesJavajdk1.5.0_06bin,楚雄師范學院計算機科學系 java程序設
58、計課程,107/138,1.3.3簡單Java applet程序的基本結構,Java applet程序是一種小程序,它應用于網(wǎng)頁之中,由Internet瀏覽器執(zhí)行。Java applet程序與Java應用程序在結構上有一定差別。我們先看一個例子。 例1.3 給出一個Java applet程序,它把指定兩個數(shù)的平均值顯示在屏幕上。,楚雄師范學院計算機科學系 java程序設計課程,108/138,1.3.3簡單Java applet程序的基本結構,解答:完成該問題的Java applet程序如下。 1 / 本程序計算兩個數(shù)的平均值 2 import java.awt.Graphics; / 導入類
59、Graphics 3 import javax.swing.JApplet; /導入類JApplet 4 public class average_applet extends JApplet 5 ,楚雄師范學院計算機科學系 java程序設計課程,109/138,1.3.3簡單Java applet程序的基本結構,6 public void paint(Graphics g) 7 8 int a = 12, b = 34, c ; 9 c = (a+b)/2; 10 super.paint(g); 11 g.drawString(“The average is:”+c,25,25); 12 13 ,楚雄師范學院計算機科學系 java程序設計課程,110/138,1.3.3簡單Java applet程序的基本結構,例子說明:該Java applet程序由一個類構成,該類由兩個部分構成,第一部分是類頭,由第4行給出,它用class聲明從本處開始的是一個類,用public聲明該類是公共的,用extends聲明本類由類JApplet派生,即本類從類JApplet中繼承了它的框架,并給出了本類的類名為average_applet;類的第二部分稱為,楚雄師范學院計算機科學系 java程序設計課程,111/138,1.3.3簡單J
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年豐城新高焦化有限公司本部(第2批次)招聘4人備考題庫附答案
- 2025年聊城臨清市衛(wèi)健系統(tǒng)事業(yè)單位公開招聘工作人員筆試考試題庫附答案
- 2025宿遷市泗陽縣招聘合同制和公益性崗位工作人員38人(公共基礎知識)綜合能力測試題附答案
- 2025年湖北省建設科技與建筑節(jié)能辦公室統(tǒng)一組織公開招聘工作人員(公共基礎知識)測試題附答案
- 2025年湖北省教育科學研究院專項公開招聘3人考試參考題庫附答案
- 2026廣西北海市第三人民醫(yī)院招聘筆試備考題庫及答案解析
- 2026上海復旦大學環(huán)境科學與工程系招聘王戎課題組科研助理崗位2人筆試備考試題及答案解析
- 2026青海省海西州德令哈市司法局招聘1人筆試備考試題及答案解析
- 2025秋人教版道德與法治八年級上冊9.1社會責任我擔當教學設計
- 2026湖南長沙市天心區(qū)實驗小學教師招聘筆試備考試題及答案解析
- 餅房(西點)廚師長年度工作總結課件
- 2025年統(tǒng)編版語文三年級上冊第七、八單元模擬測試卷
- 2026年江蘇鹽城高中政治學業(yè)水平合格考試卷試題(含答案詳解)
- 主動脈瓣置換術指南
- 裝配式裝修管線分離培訓課件
- 2025年陜西公務員《申論(C卷)》試題含答案
- 管理體系不符合項整改培訓試題及答案
- 消防鑒定考試承諾書(初-中-高級模板)
- 醫(yī)院住院部建筑投標方案技術標
- 偏癱康復的科普小知識
- 2025年(AIGC技術)生成式AI應用試題及答案
評論
0/150
提交評論