java語言程序設計基礎篇第八版課件完整版_第1頁
java語言程序設計基礎篇第八版課件完整版_第2頁
java語言程序設計基礎篇第八版課件完整版_第3頁
java語言程序設計基礎篇第八版課件完整版_第4頁
java語言程序設計基礎篇第八版課件完整版_第5頁
已閱讀5頁,還剩277頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論