




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第1章 Java語言概述與面向對象思想11.1 Java語言的發(fā)展11.1.1 Java語言的產生11.1.2 Java語言的發(fā)展11.2 Java語言的特點21.3 面向對象與面向過程的差異31.3.1 面向過程思想回顧41.3.2 面向對象思想介紹41.4 面向對象程序設計中的主要概念和特征41.4.1 主要概念51.4.2 主要特征5* 1.5 Java與C+的差異51. 6本章小結5習題5第2章 Java語言開發(fā)環(huán)境62.1 JDK62.1.1 JDK的簡介62.1.2 JDK的構成62.1.3 JDK的使用62.2 IDE82.2.1 IDE簡介82.2.2 JBuilder92.2
2、.3 Eclipse92.2.4 相關資源92.3 Project管理92.3.1 Project的含義92.3.2 可行的Project組織模式92.3.3 主要開發(fā)工具的Project目錄102.4 本章小結10習題10第1章 Java語言概述與面向對象思想1.1. Java語言的發(fā)展1.1.1. Java語言的產生以介紹面向對象編程的基本概念、基本理論為重點,結合Java語言的語法規(guī)則、編程特點和設計思想、強調容易發(fā)生錯誤和編程應注意的地方,使學生能對Java技術有一個總體了解,通過本課程學習,使學生掌握Java語言的基礎知識,理解和掌握面向對象程序設計的基本思想,熟練地使用Java語言
3、進行程序的編寫、編譯以及調試工作上世紀90年代初期,Sun公司在研究一種適用于未來的智能設備的編程語言,該語言要具有一些新的特性,以避免C+的一些不足。該語言起初命名為Oak,來源于語言作者Gosling辦公室窗外的一棵橡樹(Oak)。后來在注冊時候遇到了沖突,于是就從手中的熱咖啡聯想到了印度尼西亞一個盛產咖啡的島嶼,中文名叫爪哇,Java語言得名于此。隨著Internet的迅速發(fā)展,Web應用日益廣泛,Java語言也得到了迅速發(fā)展。1994年,Gosling用Java開發(fā)了一個實時性較高、可靠、安全、有交互功能的新型Web瀏覽器,它不依賴于任何硬件平臺和軟件平臺。這種瀏覽器名稱為HotJav
4、a,并于1995年同Java語言一起,正式在業(yè)界對外發(fā)表,引起了巨大的轟動,Java的地位隨之而得到肯定。此后的發(fā)展非常迅速。2 / 16Java編程語言的句法與C+的句法相似,語義則與Small Talk TM的語義相似。Java編程語言可被用來創(chuàng)建任何常規(guī)編程語言所能創(chuàng)建的應用程序。設計Java編程語言的主要目標是:l提供一種易于編程的語言,從而消除其它語言在諸如指針運算和存儲器管理方面影響健壯性的缺陷。l利用面向對象的概念使程序真正地成為完全面向對象的程序。l為使代碼盡可能清晰合理、簡明流暢提供了一種方法。l為獲得如下兩點益處提供一種解釋環(huán)境:提高開發(fā)速度消除編譯鏈接裝載測試周期;代碼可
5、移植性使操作系統(tǒng)能為運行環(huán)境做系統(tǒng)級調用。l為運行不止一個活動線程的程序提供了一種方式。l通過允許下載代碼模塊,從而當程序運行時也能動態(tài)支持程序改變。l為那些保證安全性而裝載的代碼模塊提供了一種檢查方法。精心開發(fā)的Java核心技術為上述目標的實現提供了保證,其中包括如下幾個主要技術:lJava虛擬機l自動垃圾收集l代碼安全性1.1.2. Java語言的發(fā)展Java語言的發(fā)展目標并不僅僅是一種編程語言,同時還要構建一種開發(fā)環(huán)境、一種應用環(huán)境、一種部署環(huán)境。作為Java語言的最基本支持,Sun公司在1996年發(fā)布了Java開發(fā)工具包JDK 1.0(JDK是Java Develop Kit的簡稱),
6、其中包括了進行Java開發(fā)所需要的各種實用程序(編譯、執(zhí)行、文檔生成器等等)、基本類庫(相當于C語言的函數庫以及C+的類庫)、程序實例等等。1998年,Sun公司發(fā)布了更新的JDK 1.2,由于在技術思想方面與以前有很多改進,所以此后的Java技術一般稱之為Java 2。隨后,針對不同的領域特征,Java技術分為三種不同的平臺(最新的稱謂又去掉了意義模糊的2,如JavaSE):lJ2SE標準Java平臺J2SE是Java語言的標準版,指的就是JDK(1.2及其以后版本),包含Java基礎類庫和語法。它用于開發(fā)具有豐富的GUI(圖形用戶界面)、復雜邏輯和高性能的桌面應用程序。lJ2EE企業(yè)級Ja
7、va平臺J2EE建立在J2SE之上,用于開發(fā)和實施企業(yè)級應用程序。它是一個標準的多層體系結構,可以將企業(yè)級應用程序劃分為客戶層、表示層、業(yè)務層和數據層,主要用于開發(fā)和部署分布式、基于組件、安全可靠、可伸縮和易于管理的企業(yè)級應用程序。lJ2ME嵌入式Java技術平臺J2ME也是建立在J2SE之上,主要用于開發(fā)具有有限的連接、內存和用戶界面能力的設備應用程序。例如移動電話(手機)、PDA(電子商務)、能夠接入電纜服務的機頂盒或者各種終端和其他消費電子產品。任何語言建立的應用程序的類型或多或少都與應用程序的運行環(huán)境有關,而Java語言一般可以建立如下的兩種程序:lApplicationsApplic
8、ations是一種獨立的程序,它是一種典型的通用程序,可運行于任何具備Java運行環(huán)境的設備中。lAppletsApplets是一種貯存于WWW服務器上的用Java編程語言編寫的程序,它通常由瀏覽器下載到客戶系統(tǒng)中,并通過瀏覽器運行。Applets通常較小,以減少下載時間,它由超文本標識語言(HTML)的Web頁來調用。Java運行環(huán)境具有一些特殊性,或者有很多特殊的人為建立的運行環(huán)境,所以Java編程中經常建立各種組件,它們可以在特定環(huán)境中運行,如Servlet、JavaBean、JSP等。在Java技術體系中,有很多免費或非免費的第三方Java組件,他們往往提供了某一方面的解決方案,可以應
9、用在很多項目的開發(fā)過程中。學習Java語言需要逐漸了解Java技術體系,從局部細節(jié)開始學習,從整體中進行認識并選擇方向,從應用中進行鞏固提高。1.2. Java語言的特點Java語言適用于Internet環(huán)境,是一種被廣泛使用的網絡編程語言,它具有如下的一些特點:l簡單Java語言的語法規(guī)則和C+類似,但Java語言取消了指針和多重繼承,統(tǒng)一使用引用來指示對象(C+中有兩種形式,實際上是兩種產生對象的途徑,而Java中只有一種),通過自動垃圾收集免去了程序設計人員對于內存塊的釋放工作。l面向對象(近于完全)Java語言為了提高效率,定義了幾個基本的數據類型以非類的方式實現,余下的所有數據類型都
10、以類的形式進行封裝,程序系統(tǒng)的構成單位也是類。因而幾乎可以認為是完全面向對象。l平臺無關性(可移植、跨平臺)Java虛擬機(JVM)是在各種體系結構真實機器中用軟件模擬實現的一種想象機器,必要時候可以用硬件實現。當然,這些虛擬機內部實現各異,但其功能是一致的執(zhí)行統(tǒng)一的Java虛擬機指令。Java編譯器將Java 應用程序的源代碼文件(.java)翻譯成Java字節(jié)碼文件(.class),它是由Java虛擬機指令構成的。由于是虛擬機器,因而Java虛擬機執(zhí)行Java程序的過程一般稱為解釋。依賴于虛擬機技術,Java語言具有與機器體系結構無關的特性,即Java程序一旦編寫好之后,不需進行修改就可以
11、移植到任何一臺體系結構不同的機器上。從操作系統(tǒng)的角度看,執(zhí)行一次Java程序的過程就是執(zhí)行一次Java 虛擬機進程的過程。l面向網絡編程Java語言產生之初就面向網絡,在JDK中包括了支持TCP/IP、HTTP和FTP等協(xié)議的類庫。l多線程支持多線程是程序同時執(zhí)行多個任務的一種功能。多線程機制能夠使應用程序并行執(zhí)行多項任務,其同步機制保證了各線程對共享數據的正確操作。l良好的代碼安全性運行時(Runtime)一詞強調以動態(tài)的角度看程序,研究程序運行時候的動態(tài)變化,也用運行時環(huán)境一詞表達類似的含義。Java技術的很多工作是在運行時完成的,如加強代碼安全性的校驗操作。一般地,Java技術的運行環(huán)境
12、執(zhí)行如下三大任務:l加載代碼由類加載器執(zhí)行類加載器為程序的執(zhí)行加載所需要的全部類(盡可能而未必同時)。l校驗代碼由字節(jié)碼校驗器執(zhí)行Java代碼在實際運行之前要經過幾次測試。字節(jié)碼校驗器對程序代碼進行四遍校驗,這可以保證代碼符合JVM規(guī)范并且不破壞系統(tǒng)的完整性。如檢查偽造指針、違反對象訪問權限或試圖改變對象類型的非法代碼。l執(zhí)行代碼由運行時的解釋器執(zhí)行l(wèi)自動垃圾收集許多編程語言都允許在程序運行時動態(tài)分配內存塊,分配內存塊的過程由于語言句法不同而有所變化,但總是要返回指向存儲區(qū)起始位置的指針。在C,C+ 及其它一些語言中,程序員負責取消分配內存塊。有時這是一件很困難的事情。因為程序員并不總是事先知
13、道內存塊應在何時被釋放。當在系統(tǒng)中沒有能夠被分配的內存塊時,可導致程序癱瘓,這種程序被稱作具有內存漏洞。當分配內存塊不再需要時,程序或運行環(huán)境應取消分配內存塊。l垃圾收集就是將不再需要的已分配內存塊回收。l在其它一般的語言中,取消分配是程序員的責任。lJava編程語言提供了一種系統(tǒng)級線程以跟蹤存儲區(qū)分配,來完成垃圾收集:n可檢查和釋放不再需要的存儲塊n可自動完成上述工作n可在JVM實現周期中,產生意想不到的變化l良好的代碼健壯性Java能夠檢查程序在編譯和運行時的錯誤。類型檢查能幫助用戶檢查出許多在開發(fā)早期出現的錯誤。同時很多集成開發(fā)工具(IDE)的出現使編譯和運行Java程序更加容易,并且很
14、多集成開發(fā)工具(如Eclipse)都是免費的。1.3. 面向對象與面向過程的差異一種程序設計語言的產生,不僅是以介紹面向對象編程的基本概念、基本理論為重點,結合Java語言的語法規(guī)則、編程特點和設計思想、強調容易發(fā)生錯誤和編程應注意的地方,使學生能對Java技術有一個總體了解,通過本課程學習,使學生掌握Java語言的基礎知識,理解和掌握面向對象程序設計的基本思想,熟練地使用Java語言進行程序的編寫、編譯以及調試工作程序設計技術的改進,也包含了表達和認知思想的進步。以C語言為代表的部分早期語言,被稱為面向過程的語言,不僅因為其程序設計的表達形式是以過程為基本元素,本質上更在于此時對計算機化的系
15、統(tǒng)的理解的主導思想還是控制流或者數據流的,構成系統(tǒng)的要素是模塊處理邏輯。面向對象語言的產生,是因為對于系統(tǒng)的理解或抽象到了更為高級的層次。此時的認知思想不僅更接近于現實世界,其抽象程度也很高。因而,既有易懂的一方面,也有難懂的另一方面,就看理解的境界了。1.3.2 面向對象思想介紹面向對象思想,對現實世界采用直觀的理解,計算機化時候采用深度的抽象,簡單地可以總結如下:系統(tǒng)是由事物構成的,事物之間是有聯系的,復雜的事物也是系統(tǒng);系統(tǒng)與系統(tǒng)、系統(tǒng)與事物、事物與事物之間是有明確界限(邊界)的;系統(tǒng)或事物的狀態(tài)刻畫可以用屬性表示,屬性一般是些簡單的數據,如果復雜那就是事物了;系統(tǒng)或事物的狀態(tài)會發(fā)生變化
16、,稱為行為,產生變化是有原因的(內部的或外部的),變化的過程可能是復雜的;不同的事物之間會具有共同的屬性和行為,共同的極端情形就是完全包含?;谝陨系恼J識,一個運行時(動態(tài))的具體系統(tǒng)或事物,是由幾個更小的具體事物構成(極端的事物就是一個簡單的屬性數據),它們是不斷發(fā)生變化的。如果對事物這一概念進行了有效的抽象,那么問題就迎刃而解。首先,將任何一個具體的事物稱為對象(Object),它的極端情形就是過去的變量;事物是分類的,每一類事物都具有統(tǒng)一的屬性和行為,即類型抽象數據類型,簡稱為類(Class);行為既然是過程,那么就抽象成函數,命名為方法,以示區(qū)別。例如:描述身高或姓名,各自只是一個簡單
17、的數據變量;描述一個學生,可以使用學號、姓名、宿舍、班級等;那更換宿舍算什么呢!那描述宿舍、班級,又要有許多個項目。1.4. 面向對象程序設計中的主要概念和特征面向對象程序設計(Object Oriented Programming,OOP)語言中,為了進行更為高度的抽象,會引入一些現實世界中難于找到的概念,但對于一個程序語言來說確實很有價值的。以下暫時介紹的概念基本上都來源于對現實世界的抽象,要從程序設計的角色中去理解它們。面向對象程序設計使系統(tǒng)更易于理解,也使代碼具有更好的重用性、可擴展性、易于管理和維護。1.4.1. 主要概念1、類類是對一類事物的抽象表示,其角色就相當于數據類型,當然可
18、以算作復雜的數據類型。如學生、宿舍、班級。2、對象對象表示一個具體的事物,其角色就是變量,即一個復雜數據類型xx類的變量。如周瑜、張飛、瑜飛居,飛虎班。1.4.2. 主要特征OOP語言有三個特征:封裝、繼承及多態(tài)性。1、封裝類的構成包括成員變量/對象與成員方法,這樣將相關的數據與函數包裝在一起,同其他的類相區(qū)分,就是封裝。顯然,避免了面向過程語言的平行缺陷,說明了類和成員之間的所屬關系。進一步地,可以限制類的成員在外部的可見性,那么就將封裝體現得更完美。2、繼承當一種事物甲完全是另一種事物乙的特例,那么,一般地,類甲只是比類乙多出一些成員變量/對象與成員方法,稱為類甲繼承類乙,類甲稱為(類乙的
19、)子類,類乙稱為(類甲的)父類。父類也稱為基類、超類,子類也稱為導出類、派生類。顯然編寫子類就沒有必要重復書寫父類中乙有的代碼部分,這是OOP中最典型的代碼重用。3、多態(tài)多態(tài)表示一個類的某種行為存在多種實現版本。簡單的情況是在一個類中,給出多種不同的實現,復雜的情況是在多個子類中各自給出不同的實現。* 1.5 Java與C+的差異1. 6本章小結習題1解釋Java語言的三種平臺。2解釋支撐Java語言目標的三種主要技術(自查資料完善)。3關于面向對象與面向過程的不同,從問題理解和問題表示兩種角度,按照個人的理解和認識,例示其不同的地方。第2章 Java語言開發(fā)環(huán)境2.1 JDK2.1.1 JD
20、K的簡介可以從Sun公司的官方網站()上下載Java開發(fā)工具包(JDK)。不必要求最新的版本,注意Java SE、Windows平臺等信息。如:jdk-1_5_0_17-windows-i586-p.exe2.1.2 JDK的構成2.1.3 JDK的使用1、安裝過程簡單,基本使用默認設置,注意安裝目錄(最好簡單化)。2、設置環(huán)境變量環(huán)境變量應用程序運行時候需要的一些相對固定值的參數。例如,Java開發(fā)工具等軟件需要使用JDK,那么必須知道JDK在系統(tǒng)中的什么位置,于是大家約定在操作系統(tǒng)中定義一個名稱為JAVA_HOME的環(huán)境變量,其內容表示JDK的安裝目錄。在win2000/2003中的方法:
21、操作【我的電腦】【屬性】【高級】【環(huán)境變量】后,在【系統(tǒng)變量】區(qū)域進行新建、編輯等操作即可。JAVA_HOME必設的環(huán)境變量,表示JDK安裝目錄(如C:Javajdk1.5.0_17)。(第一次是新建)Path名稱程序查找路徑。如果需要在命令行方式下使用Java的話,修改其內容,在前面增加JDK命令目錄,不同項目中間使用分號分隔。(修改,增加%JAVA_HOME%bin)CLASSPATH類庫設置。(新建,.; C:Javajdk1.5.0_17 libtools.jar)。3、使用l創(chuàng)建程序可以使用最簡單的文本編輯器,編寫如下的程序,保存的名字必須是Hello.java。package ch
22、ap01; /當前類所屬包名稱public class Hello /當前類名public static void main(String args) /應用程序的主函數System.out.println("Hello, 我的第一個Java應用程序!"); /輸出函數l程序內容解釋在以上的程序中,必須了解并逐漸熟悉的關鍵點:n聲明包名chap01,指明類的位置(所屬包)、相當于文件夾名稱,用途在于方便類的組織和管理;n聲明類名Hello,與程序文件名相同(指必須的public類);n類屬性public,描述類的可見性,即類和其它類、包的關系;n主函數main,程序入口(僅
23、Applications類型需要);n主函數屬性public static,公有、靜態(tài)(特殊的函數);n主函數的參數String args,命令行參數(如果執(zhí)行程序時候給了參數,將會由系統(tǒng)封裝成字符串數組傳遞到這里,程序內部可以從此獲得并處理);n輸出函數這是Java類庫中提供的一個在標準輸出設備(顯示器、字符輸出,對于操作系統(tǒng)來說是可以重定向的設備)顯示文本的函數。注意其中出現的類名稱System、成員對象名稱out、成員方法名稱println,書寫語法以及參數。從幫助中可以方便地查找到函數的參數語法;n整個類的框架括號等表達的結構。n注釋格式/表示行注釋,本行后面的內容為注釋;/*/表示塊
24、注釋,其中的內容為注釋。以上的內容在一個Java應用程序中幾乎是必需的。l典型源文件布局一個Java源文件可包含三個“頂級”要素:n一個包聲明(可選,沒有表示頂級包,但有點麻煩);n任意數量的導入語句import,表示將要使用的外部Java類;n類和接口聲明。該三要素必須以上述順序出現。即,任何導入語句出現在所有類定義之前;如果使用包聲明,則包聲明必須出現在類和導入語句之前。如果需要或者說是遵循編程規(guī)范,那么在文件開頭可以使用如下形式的文檔注釋:/*文檔信息描述*/這種形式的注釋可以被專門的文檔生成工具所處理(由javadoc命令生成的HTML文件)。l程序編譯如下圖中的命令javac Hel
25、lo.java。注意編譯后的文件變化。l程序運行如下圖中的命令java chap01.Hello。l命令窗口與簡單命令解釋有多種形式打開如下的命令窗口,注意其中常見的命令的含義以及其成功執(zhí)行的前提。一條命令一般由 命令動詞+空格+參數 構成,并以回車結束。命令動詞中如果不包含路徑那么將從默認的路徑中查找命令程序,命令可能的參數內容以及形式取決于程序本身,如果需要,可以使用諸如 java -? 或 java help 形式獲得。d:切換當前分區(qū);cd切換當前某分區(qū)下的工作文件夾,需要參數;md創(chuàng)建新的文件夾,需要參數;copy拷貝文件;2.2 IDE2.2.1 IDE簡介IDE的含義是Java集
26、成開發(fā)環(huán)境(Integrated Development Environment,IDE)。有很多IDE可供選擇,典型的如JBuilder、Eclipse等。2.2.2 JBuilderJBuilder是使用Java開發(fā)的,支持J2EE技術的Java集成開發(fā)環(huán)境。但JBuilder不是完全免費的。JBuilder的安裝程序存放在機器中的C:javaJBX中,兩個目錄相當于兩張光盤,安裝時候當出現安裝項目列表時候只選第一個即可,安裝后的處理按照其中的說明文件進行,解密環(huán)節(jié)或許需要執(zhí)行若干次。最好先安裝JDK。如果出現解密命令失敗,一般是path環(huán)境變量設置問題。2.2.3 EclipseEcli
27、pse是基于Java的,開放源碼的、可擴展的應用開發(fā)平臺,它為編程人員提供了一流的Java集成開發(fā)環(huán)境(Integrated Development Environment,IDE)。是一個可以用于構建集成Web和應用程序的開發(fā)工具平臺,其本身并不會提供大量的功能,而是通過插件來實現程序的快速開發(fā)功能。Eclipse是一個成熟的可擴展的體系結構。它為創(chuàng)建可擴展的開發(fā)環(huán)境提供了一個平臺。這個平臺允許任何人構建與環(huán)境或其他工具無縫集成的工具,而工具與Eclipse無縫集成的關鍵是插件。Eclipse還包括插件開發(fā)環(huán)境(PDE),PDE主要針對那些希望擴展Eclipse的編程人員而設定的。這也正是E
28、clipse最具魅力的地方。通過不斷的集成各種插件,Eclipse的功能也在不斷的擴展,以便支持各種不同的應用。雖然Eclipse是針對Java語言而設計開發(fā)的,但是它的用途并不局限于Java語言,通過安裝不同的插件Eclipse還可以支持諸如C/C+、PHP、COBOL等編程語言。Eclipse利用Java語言寫成,所以Eclipse可以支持跨平臺操作,但是需要SWT(Standard Widget Toolkit)的支持,不過這已經不是什么大問題了,因為SWT已經被移植到許多常見的平臺上,例如Windows、Linux、Solaris等多個操作系統(tǒng),甚至可以應用到手機或者PDA程序開發(fā)中。2.2.4 相關資源需要關注各家公司的官網、以及對應中文網站。還有如這樣的綜合性技術網站。2.3 Project管理2.3.1 Project的含義Project即項目或工程,幾乎所有的IDE,使用時候必須先建立Project,才可以創(chuàng)建程序、編譯程序、運行程序、修改程序、調試程序。如果有一種非常理想
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路ppp合同范本
- 分紅比例合同范本
- 公路規(guī)劃合同范本
- 協(xié)議合同范本寫法
- 兼職還款合同范本
- pos機推廣合同范本
- 入股店鋪協(xié)議合同范本
- 義齒加工合同范本模板
- 京東入職合同范本
- 醫(yī)院整體轉讓合同范本
- 考前沖刺攻略課件
- 新媒體運營合作合同范本
- 2024年12月2025中央統(tǒng)戰(zhàn)部直屬事業(yè)單位應屆高校畢業(yè)生公開招聘21人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 2024年湖北省煙草專賣局(公司)招聘筆試真題
- 2025中鐵快運股份限公司招聘全日制普通高校畢業(yè)生35人易考易錯模擬試題(共500題)試卷后附參考答案
- 計算機網絡試題及答案
- 2025年中國主題樂園行業(yè)發(fā)展概況、市場全景分析及投資策略研究報告
- 產后疼痛管理指南
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設有限公司招聘筆試參考題庫附帶答案詳解
- 工娛治療及其護理
- 人效管理措施
評論
0/150
提交評論