Java學習入門資料.ppt_第1頁
Java學習入門資料.ppt_第2頁
Java學習入門資料.ppt_第3頁
Java學習入門資料.ppt_第4頁
Java學習入門資料.ppt_第5頁
已閱讀5頁,還剩685頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 Java語言概述,1,1.1 Java的歷史,(前身)OAK(James Gosling 1990) 90年,Sun公司開始Green工程 93年,WWW席卷全球 94年,開始定位于Internet 95年,Java命名 Hotjava, 第一個支持Java的瀏覽器 Netscape2.0 1995.5.23 Java誕生(Java1.0.2 API) 1997.2.18 JDK1.1 (java1.1 API) VJ+6.0、cafe、JBuilder . 支持 1998.12 JDK1.2 (Java 2 SDK v1.2 Standard Edition) 2009. JDK 1

2、.6 2011. JDK 1.7,2, ,Java資源網(wǎng)址,3,Simple : 易學;自動內(nèi)存管理;簡化重載;去掉指針及C+中一些不是絕對必要的功能 object-oriented: 純面向?qū)ο笳Z言,程序代碼以類的形式組織,由類來定義對象的各種狀態(tài)和行為 Distributed : 豐富的網(wǎng)絡編程功能-輕松處理TCP/IP ;通過URL訪問遠地資源;字節(jié)碼可來自網(wǎng)絡,1.2 Java語言特點,4,Interpreted: Java是解釋型的,但Java通過預先將源代碼編譯為接近于機器指令的字節(jié)碼,有效地克服了傳統(tǒng)解釋型語言的性能瓶頸,同時又保持了解釋型語言的可移植性;Java解釋器能直接在任

3、何機器上執(zhí)行Java字節(jié)碼 Robust: 靜、動態(tài)檢查,排除出現(xiàn)錯誤的條件;異常處理機制,正確處理運行時的錯誤;取消指針,保護內(nèi)存數(shù)據(jù)與程序;數(shù)據(jù)類型的匹配,數(shù)組下標越界檢查;自動內(nèi)存管理,碎片收集,5,Secure: 用于網(wǎng)絡/分布式運算環(huán)境,確保建立無病毒且不會被侵入的系統(tǒng);內(nèi)存分配及布局由Java運行系統(tǒng)決定;字節(jié)碼加密傳輸,客戶端校驗 architecture-neutral: Java應用程序能夠在網(wǎng)絡上任何地方執(zhí)行;字節(jié)代碼 - 平臺無關性;完全統(tǒng)一的語言版本 - 實現(xiàn)無關性;訪問底層操作系統(tǒng)功能的擴展類庫 不依賴于具體系統(tǒng) Portable: 源于平臺無關性,且Java本身環(huán)境

4、的可移植性,6,high-performance: 字節(jié)碼- 目標代碼;JIT(Just-In-Time)即時時編譯器 multi-threaded: 在語言級嵌入了對并發(fā)控制的功能 - 多線程控制,大大簡化了多線程應用程序的開發(fā) Dynamic: 面向?qū)ο笤O計的延伸。JAVA的基本組成單元是類,而Java的類又是運行時動態(tài)裝載的。可以在分布環(huán)境中動態(tài)地維護應用程序和類庫的一致性。更能適應時刻變化的環(huán)境。Java不會因程序庫的更新,而必須重新編譯程序,7,1.3 Java開發(fā)環(huán)境與工具,Java技術包括兩部分: Java程序設計語言 Java平臺。 Java 語言是一種廣泛使用的高水平的程序設

5、計語言,是一個有力的軟件平臺。這個語言平臺為軟件開發(fā)提供了一整套必備的工具和功能實現(xiàn),具體如下列的功能: 開發(fā)工具:提供編譯、運行、監(jiān)視、調(diào)試和應用程序文檔生成等開發(fā)工具。對于初學者,主要使用的工具有:編譯工具javac,運行工具java, 文檔生成工具javadoc。,8,應用程序接口API:API提供Java程序設計語言的核心功能。比如隊列,網(wǎng)絡,安全,XML,數(shù)據(jù)庫訪問。核心API包含的內(nèi)容非常大,具體可查閱SDK文檔。 部署技術:JDK提供了標準機制部署你的應用程序給最終用戶,例如 Java Web Start 和 Java技術。 用戶界面工具箱:Swing 和 Java 2D too

6、lkits 用于創(chuàng)建傳統(tǒng)的圖形用戶界面(GUIs)。 其他功能綜合庫:包含如IDL, JDBC, JNDI, RMI, RMI-IIOP 等。,9,Java程序開發(fā)和運行環(huán)境的組成:,10,Java程序設計語言是一種高級語言,它用我們熟悉的字詞、句等表述需要計算機為我們做的事情。大多數(shù)程序設計語言,都要經(jīng)過編譯或解釋以便能在計算機上運行。 在Java程序設計語言中,所有源代碼寫在一個擴展名是.java的純文本文件里。這些源文件通過Java編譯器(javac.exe)編譯成.class文件。.class文件不包含本地處理器的代碼,而包含Java虛擬機機器語言代碼,它是一種在Java平臺上被解釋器

7、解釋的平臺無關代碼,稱之為“字節(jié)碼”。,1.Java程序設計語言,11,Java執(zhí)行工具(java)用來運行.class文件,它是一個解釋程序,又稱“Java虛擬機”,它負責解釋分解并執(zhí)行每個Java字節(jié)碼指令。下圖反映這個過程:,12,Java虛擬計算機,可以認為Java字節(jié)碼像機器指令碼一樣。任何Java解釋器,不論是開發(fā)工具的,還是運行applet的web瀏覽器,都可認為是運行的Java虛擬計算機。Java虛擬機在許多不同的操作系統(tǒng)都是有效的,所以同樣的.class文件有能力運行在Windows、Solaris、 Linux、MacOS等多種操作系統(tǒng)下,如圖:,13,2.Java平臺,平

8、臺是程序運行的硬件和軟件環(huán)境。我們已經(jīng)了解的一些流行平臺像Windows、Linux、Solaris和MacOS等。多數(shù)平臺被描述成操作系統(tǒng)與硬件的復合體。Java平臺不同于其它平臺,它是一個純軟件平臺,在其它硬件基礎平臺上運行,如下圖:。,14,Java平臺有兩個部分: Java虛擬機(Java VM) Java應用程序接口(Java API) Java虛擬機是Java平臺的基礎,是在各種不同的硬件基礎平臺上的接入口。Java字節(jié)碼程序就是由它解釋并執(zhí)行,同時提供程序的運行環(huán)境。 Java API是一個巨大的,提供許多有用功能的,軟件組成的集合體。Java API被組合在庫中,由相關的類和接

9、口構成,這些庫稱做“包”。下圖表示運行在Java平臺上的程序。圖中顯示,Java API和虛擬機把程序與硬件隔離開,Java程序通過API在VM上運行。,15,16,J2 SDK,JRE,JVM,JVM plus all APIs, compilers ,tools, and documentation (what you need in order to write java technology programs).,JVM plus basic APIs (what you need to distribute to people who will run your Java progr

10、ams),17,3 Java術語,JVM java虛擬機 JVM將 java 字節(jié)碼程序翻譯成機器語言。然后由計算機執(zhí)行。 JRE java 運行環(huán)境 JRE 是由JVM 和 java platform 核心類以及相關支撐文件組成。 API Application programming interface. API 是rules(syntax) :在java技術中如何編程。 API包括數(shù)百個類公司預先編好的代碼,你可以在編程中充分利用它們的功能。,18,JDK java developers kit (java開發(fā)工具包) JDK 包含JVM和其他工具,以及所有的API和相關的文件。 JDK

11、 是java 技術的舊名(1999年11月以前采用), JDK1.1 是最后版本。 Java 2 Java 2 Platform, J2 SDK java技術的新名稱。 SDK Software Development Kit,19,4.Java虛擬機,JVM提供以下定義: 指令集(Bytecodes 是JVM的機器指令)。 寄存器組 類文件格式 棧 垃圾回收“堆”(實現(xiàn)內(nèi)存的動態(tài)分配和自動回收) 內(nèi)存區(qū)域,Java程序執(zhí)行時,首先虛擬機對要執(zhí)行的class文件裝載,然后對字節(jié)碼進行驗證,最后用解釋器對字節(jié)碼解釋執(zhí)行,下圖是jvm的邏輯構造。,20,類裝配器,字節(jié)碼驗證器,解釋器,本地計算機系

12、統(tǒng),代碼生成器 JIT code generator,Xxx.class,21,加載代碼 類裝配器 加載程序運行所需要的所有的類。類裝配器將本地文件系統(tǒng)的類的名字空間與從網(wǎng)絡資源來的類的名字空間分開。這樣就限制了特洛伊木馬程序,因為本地類總是首先加載。 一旦所有的類被加載,可執(zhí)行程序的內(nèi)存布局就被確定了。內(nèi)存地址被分配給符號引用表,查找表被建立。由于內(nèi)存的布局出現(xiàn)在運行時刻,防止了對于代碼域的未授權的訪問。,22,驗證代碼 字節(jié)碼驗證器 java代碼在你的機器上執(zhí)行前要經(jīng)過幾個測試。字節(jié)碼驗證器測試代碼段的格式,檢查代碼段是否有非法代碼(偽造指針,對象上的非法存取,試圖改變對象類型等)。 所有

13、網(wǎng)絡來的類文件都要經(jīng)過字節(jié)碼驗證。 執(zhí)行代碼 解釋器,23,5.Java開發(fā)工具,Java開發(fā)工具是用于編寫編寫和生成Java程序。對于現(xiàn)有的計算機平臺,必須安裝Java開發(fā)工具箱,即Java Development Kit,簡稱“JDK”,才能夠運行和開發(fā)Java程序 。JDK由Sun公司提供,其安裝包可以從Sun公司的Java網(wǎng)站下載獲得,網(wǎng)站地址: 。 注意,Sun公司針對不同的平臺提供了各自不同的安裝包,下載時根據(jù)需要選擇下載。 JDK僅為程序開發(fā)者提供了一個基本的Java程序編寫環(huán)境,對于那些大型的復雜的Java程序,需要一種綜合集成的大型開發(fā)工具。,24,1.4 建立Java平臺和

14、開發(fā)環(huán)境,1.建立Java平臺,Java平臺的建立只需安裝JDK或JRE就可以完成。JRE是Java運行環(huán)境(Java Runtime Environment)縮寫,如果僅僅用來運行Java程序,僅安裝JRE就可以了。如果需要開發(fā)和運行Java程序,就必須安裝JDK。 第一步:下載JDK。 通常到sun的Java網(wǎng)站去下載JDK的安裝包程序,當然也可以從別的地方獲得。JDK安裝程序的文件名不同的版本可能有差異,這里以JDK1.6.0_16為例,它的安裝包程序文件名是 jdk-6u16-windows-i586.exe。,25,JDK安裝程序,將文件下載到你的計算機某個文件夾,比如“C:temp

15、”,見下圖。,26,第二步:運行JDK安裝程序。 與執(zhí)行其他程序一樣,用鼠標雙擊剛才下載的JDK安裝程序,開始安裝JDK。在安裝過程中通常不用人為干預,安裝程序會自動安裝,當出現(xiàn)提示時只要用鼠標點擊“下一步”或“Next”按鈕即可。當安裝成功結束后,在計算機操作系統(tǒng)所在的磁盤上看到存放Java系統(tǒng)的文件夾,默認安裝目錄是: C:Program FilesJavajdk1.6.0_16 下圖顯示執(zhí)行jdk-6u16-windows-i586.exe后JDK的安裝目錄 。,27,JDK安裝目錄,28,在JDK安裝目錄中包含有: 開發(fā)工具:(bin)指工具和實用程序,可幫助您開發(fā)、執(zhí)行、調(diào)試和保存以

16、 Java編程語言編寫的程序。Java用于運行Java程序,Javac用來把Java源程序(.java)編譯成能由Java解釋執(zhí)行字節(jié)碼程序(.class)。 運行時環(huán)境:(jre)由 JDK 使用的 Java Runtime Environment (JRETM) 的實現(xiàn)。JRE 包括 JavaTM 虛擬機 (JVMTM)、類庫以及其他支持執(zhí)行以 JavaTM 編程語言編寫的程序的文件。 附加庫:(lib開發(fā)工具所需的其他類庫和支持文件。,29,演示applet和應用程序:(demo)JavaTM 平臺的編程示例(帶源代碼)。包括使用 Swing 和其他 Java 基類以及 Java平臺調(diào)試

17、器體系結構的示例。 樣例代碼:(sample)某些 Java API 的編程樣例(帶源代碼)。 C頭文件:(include)支持使用Java本機界面、JVMTM 工具界面以及 Java平臺的其他功能進行本機代碼編程的頭文件。 源代碼:(src.zip)組成 Java 核心 API 的所有類的 JavaTM 編程語言源文件(即,java.*、javax.* 和某些 org.* 包的源文件,但不包括 com.sun.* 包的源文件)。,30,第三步:設置JDK環(huán)境變量。 通常JDK安裝完成后需要設置Java環(huán)境變量PATH和CLASSPATH。,(1).PATH變量 是操作系統(tǒng)用于查找可執(zhí)行文件的

18、目錄集,格式如下: PATH=;bin JDK安裝完成以后需要將開發(fā)工具的存放目錄加入到PATH變量中,使得在編譯或執(zhí)行Java程序時操作系統(tǒng)能夠找到編譯程序javac或解釋程序java。,31,(2).CLASSPATH變量 是Java編譯器編譯用于查找相關類或接口的目錄集,也是Java解釋器用于查找相關類或接口的目錄集,格式如下: CLASSPATH=或;. 這里由每個jar文件及存放它的目錄名組成,例如 D:Program FilesJavajdk1.6.0_16libdt.jar 多個路徑名之間用“;”分隔。,32,在Windows系統(tǒng)下設置環(huán)境變量可以從控制面板的系統(tǒng)設置添加。這里以

19、JDK1.6為例介紹環(huán)境變量的設置過程,假設JDK安裝的安裝路徑是 C:Program FilesJavajdk1.6.0_16,在控制面板中打開“系統(tǒng)”,選擇“高級”標簽見圖.,然后“環(huán)境變量”按鈕打開環(huán)境設置窗口,見圖 .,33,在“系統(tǒng)變量”中選擇“Path”,然后安下“編輯”按鈕彈出“編輯系統(tǒng)變量”窗口。,34,在“變量值”中添加 ;C:Program FilesJavajdk1.6.0_16bin; 最后按下“確定”。,35,在“系統(tǒng)變量”中后按下“新建”按鈕。 在“變量名”中輸入CLASSPATH。在“變量值”中依次輸入下列內(nèi)容 C:Program FilesJavajdk1.6.

20、0_16jrelibrt.jar; C:Program FilesJavajdk1.6.0_16libdt.jar; C:Program FilesJavajdk1.6.0_16libtools.jar; (省略) 按下“確定”。,36,Java平臺建立(即安裝JDK)完成后就可以運行或開發(fā)Java程序了。JDK提供了基本的Java開發(fā)工具,這些工具放在JDK安裝目錄下的bin目錄。但是,對于復雜大型的Java程序是不能滿足要求,需要專門的集成開發(fā)工具。下面分別介紹JDK提供主要工具軟件,并對目前常用的集成開發(fā)工具做簡單介紹。,(1)JDK開發(fā)工具,JDK開發(fā)工具包括工具和實用程序,可幫助開發(fā)

21、、執(zhí)行、調(diào)試和保存以 Java 編程語言編寫的程序。在這些程序中主要工具程序有:編譯工具Javac,解釋工具Java,文檔生成工具,Java平臺調(diào)試工具等。,2.建立Java開發(fā)環(huán)境,37,Javac Java編譯器,將Java源程序編譯成字節(jié)碼,生成class文件。在bin目錄下,文件名稱是javac.exe。命令格式:,javac 選項 源文件 類 argfiles 其中, 選 項 編譯參數(shù)。 源文件 一個或多個需要編譯的java源程序文件。 類 一個或多類。 argfiles 參數(shù)文件。,38,使用示例:編譯Java源程序HelloWorldApp.java。,39,Java Java解

22、釋器,直接從類文件執(zhí)行Java應用程序,即application。命令格式:,java 選項 類 參數(shù). java 選項 -jar jar文件 參數(shù). javaw 選項 類 參數(shù). javaw 選項 -jar jar文件 參數(shù). ,其中, 選項 運行參數(shù)。 類 被調(diào)用的類的名稱。 -jar jar文件 被調(diào)用的jar文件名稱。 參數(shù) 傳送給main方法的參數(shù)串。,40,使用示例:執(zhí)行Java類HelloWorldApp.class。,41,(2)Java集成開發(fā)工具,集成開發(fā)環(huán)境(簡稱IDE及Integrated Development Environment的縮寫)是用于提供程序開發(fā)環(huán)境的應

23、用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務套。所有具備這一特性的軟件或者軟件套(組)都可以叫做集成開發(fā)環(huán)境,可以獨立運行,也可以和其它程序并用。JAVA的集成開發(fā)環(huán)境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,這里簡單介紹JCreator、netbeans和eclipse。,42,JCeator 分為JCeator Le和JCeator Pro兩個版

24、本,JCreat Le為免費版,而JCeator Pro要注冊。JCreat Le功能不及JCeator Pro。 JCreator Pro是一款適合于各個 Java 語言編程開發(fā)人員的IDE工具。它為使用者提供了大量強勁的功能,例如: 項目管理、工程模板、代碼完成、調(diào)試接口、高亮語法編輯、使用向?qū)б约巴耆勺远x的用戶界面。缺點是只能進行簡單的開發(fā),不能進行企業(yè)J2EE開發(fā)應用。,43,NetBeans IDE NetBeans是一個全功能的開放源碼Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署Java應用,并將版本控制和XML編輯融入其眾多功能之中。NetBeans 可支持Jav

25、a 2平臺標準版(J2SE)應用的創(chuàng)建、采用JSP和Servlet的2層Web應用的創(chuàng)建,以及用于2層Web應用的API及軟件的核心組的創(chuàng)建。此外,NetBeans 最新牒還預裝了兩個Web服務器,即Tomcat和GlassFish,從而免除了繁瑣的配置和安裝過程。所有這些都為Java開發(fā)人員創(chuàng)造了一個可擴展的開放源多平臺的Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作,如Solaris、Linux、Windows或Macintosh。,44,2010年6月16日,Oracle正式發(fā)布NetBeans 6.9正式版,將擴大對JavaFX 1.3和OSGi的支持。目前Netbean

26、s的最新版本是Netbeans 6.9.1 可以從官方網(wǎng)上下載安裝文件netbeans-6.9-ml-windows.exe,下載網(wǎng)址: / 。Netbeans的安裝分為兩步: 安裝JDK(如果已經(jīng)安裝了JDK可以跳過)。 安裝netbeans 6.9.1。運行安裝文件即可。如果沒有特別的使用要求,安裝過程中出現(xiàn)提示時直接點擊【Next】或【ok】按鈕,直到安裝結束。,45,Eclipse,Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為C+、Python、PHP等其他語言的開發(fā)工具。Ec

27、lipse的本身只是一個框架平臺,眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。 Eclipse的運行需要有Java的虛擬機存在,在編譯java的時候不需要額外的編譯器。自身就能對java源代碼進行編譯。由于Eclipse是使用java編寫的,所以在跨平臺上做的很好,常用的平臺Eclipse都能運行。,46,Eclipse最大的特點使用插件滿足使用者根據(jù)自己的需要對其進行擴展,且Eclipse源代碼進行開放,使插件的數(shù)量不斷增長,其中不乏一些非常優(yōu)秀的插件。也使得Eclipse的功能大大增強,使用Ecli

28、pse作為基礎來開發(fā)的軟件也很多。,47,Eclipse的安裝分為兩步: 安裝JDK(如果已經(jīng)安裝了JDK可以跳過)。 到下載eclipse,可以選擇: Download now: Eclipse SDK 3.2 , Windows (120 MB) 下載完成后,只需要將下載的壓縮文件eclipse-SDK-3.2-in32.zip解壓到指定位置,例如d:Eclipse即可完成安裝. 安裝完成后,eclipse文件夾中的目錄結構如圖:,48,啟動eclipse,雙擊安裝目錄下的eclipse.exe文件,在啟動畫面消失后,屏幕將顯示一個對話框,提示選擇工作空間的目

29、錄位置,這個目錄用于存放用戶創(chuàng)建的項目文檔(你自己選一個地方),最后進入Eclipse的工作環(huán)境.如圖:,49,1.5 Java(源)程序結構,1.Java程序的構成,Java 程序是由一個或多個編譯單元構成,每個編譯單元都一個以.java為擴展名的文本文件,又稱Java源程序文件。在java編譯單元(源程序)中包含幾種不同的元素,即:,package 語句 import 語句 類(class)聲明或接口(interface)聲明語句,50,一個程序可包括若干個類。 各類之間存在并列、繼承和包含關系。 這些類通常是在一起協(xié)同工作的。 編程只能在方法中。 類和方法中的語句包含在“”和“”之間。

30、每條語句以分號“;”結尾。 語句由表達式、變量、字面值和關鍵字構成。 編譯后每個類產(chǎn)生一個 .class 文件。,51,package 包名稱; import 包名.類; class 類名1 域定義 方法名1() 方法名2() . ,52,Java示例程序:LotsHellosApplication . java,53,2.Java程序的幾種類型,Application(Java應用程序) “Java應用程序”是可以獨立運行的Java程序。由Java解釋器控制執(zhí)行。 Applet(Java小程序) “Java小程序”不能獨立運行,而是被嵌入到Web頁中。由Java兼容瀏覽器控制執(zhí)行。,54,S

31、erverlets Java技術對CGI 編程的解決方案。 運行于Web server上的、作為來自于Web browser 或其他HTTP client端的請求 和 在 server上的數(shù)據(jù)庫及其他應用程序之間的中間層程序。 Serverlets的工作是: 讀入用戶發(fā)來的數(shù)據(jù)。 找出隱含在HTTP請求中的其他請求信息。 產(chǎn)生結果。 格式化結果(網(wǎng)頁)。 設置HTTP response參數(shù)。 將文檔返回給客戶端。,55,3.程序類型與用戶界面,56,4. Application程序基本結構,public class HelloApplication public static void mai

32、n(String args) System.out.println(Hello, Java world! ); ,由一個或多個“類”組成。 其中必須有一個“類”定義了main() 方法,該方法是自動執(zhí)行的類方法,是Java應用運行的起始點。而這個類也就稱之為“主類”。 Java程序源文件名要與主類名同名(包括大小寫一個類產(chǎn)生一個.class文件。例如HelloApplication.java。,57,Application程序上機過程,編輯源程序 Edit HelloApplication.java (dos命令) 使用notepad編輯器編輯java源程序更為方便。 編譯 javac jav

33、ac HelloApplication.java 產(chǎn)生HelloApplication.class 文件 解釋執(zhí)行 java java HelloApplication (隱含.class文件),58,5.applet 小程序,import java.awt.Graphics; import java.applet.Applet; class HelloApplet extends java.applet.Applet public void paint(Graphics g) g.drawString(“Hello, Java World!”, 10,20); ,源程序文件名:HelloAp

34、plet.java,59,編譯java小程序 javac HelloApplet.java 使用文本編輯建立test.html文件,嵌入HelloApplet.class 瀏覽html文件 使用appletviewer appletviewer test.html 使用常規(guī)的瀏覽器,applet 小程序,60,Application:,D: edit HelloApplication.java D: javac HelloApplication.java D: java HelloApplication Hello, Java World!,1.6 運行你的第一個java程序,1.利用JDK實

35、用工具編寫、運行程序,1.進入到“命令提示符”。 2.按下圖所示順序操作。,61,Applet:,D: edit HelloApplet.java D: javac HelloApplet.java D: edit test.html D: appletviewer test.html,62,2.利用集成環(huán)境編寫、運行程序,(略),63,64,第二章、Java語言基礎,基礎語言 ( Java程序的構成 ),65,2.1、Java程序的構成,java 程序是由一個或多個編譯單元構成,每個編譯單元都一個以.java為擴展名的文本文件,又稱Java源程序文件。,1.Java程序的組成,主程序(類)

36、源程序(類)1 源程序(類)2 源程序(類)3 源程序(類)n,Java 程序,例如 名為CodePointIM的Java程序由三個源文件組成: CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java 因為主類的名稱是CodePointIM,所以可以此名做為程序的名稱。,CodePointIM,CodePointIM.java CodePointInputMethod.java CodePointInputMethodDescriptor.java,66,2.Java源程序的組成,packag

37、e 包名稱; import 包名稱.類名稱; 類或接口聲明語句,在java編譯單元(源程序)中包含幾種不同的元素,即:,package 語句是可選的。如果有該語句編譯器在生成類 文件時會將編譯生成的“.class”文件存放到由“包名稱”指定的包中。每個源程序中只能有一條package語句,而且必須在第一條語句。 import 語句引入由“類名稱”指定的其他類。一個源程序中可以有多條import語句。,67,一個程序可包括若干個類,但由 public 修飾的類只能有一個。 各類之間存在并列、繼承和包含關系。 這些類通常是在一起協(xié)同工作的。 編程只能在方法中。 類和方法中的語句包含在“”和“”之間

38、。 每條語句以分號“;”結尾。 語句由表達式、變量、字面值和關鍵字構成。 編譯后每個類產(chǎn)生一個 .class 文件。,類或接口聲明語句是Java原程序的主體,編寫程序的過程實際上就是聲明類或接口的過程。,68,package 包名稱; import 包名.類; public class 類名1 類的成員變量(或域); 方法名(參數(shù)) 局部變量和語句; ,下圖就是Java源程序的一般形式。,69,例 程序Line.java,package chapt02.shape; import java.awt.Graphics; public class Line protected int x1,y1;

39、 protected int x2,y2; public Line(double x1,double y1,double x2,double y2) this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; public void draw(Graphics g) g.drawLine(x1,y1,x2,y2); ,包名稱,引入的類名稱,類名稱,Line方法,draw方法,方法參數(shù),70,3.Java源程序文件的命名,按Java語言規(guī)定,源程序的文件名必須與由 public 修飾的類的類名稱相同。例如下面的程序:,public class

40、TestFx extends Applet private Fx fx; public void init() fx = new Fx(this.getSize().height); public void paint(Graphics g) for(int x=0;xgetSize().width;x+) g.drawLine(x,(int)fx.getFx(x),x+1,(int)fx.getFx(x+1); ,源程序的文件名稱是:TestFx.java。,71,4.Java應用程序(Application)的組成,Java應用程序是Java程序中的一種。這類程序具有下面的一些特征: 程序

41、可以獨立運行,直接從操作系統(tǒng)啟動。 多數(shù)應用程序都具有圖形用戶界面,即GUI界面。 每個程序都具有完整的功能和用途,可以獨立完成具體的事務,有明確的應用領域。 程序可能很簡單,也可能非常復雜和龐大。,72,由一個或多個“類”組成。 其中必須有一個“類”定義了main() 方法,該方法是自動執(zhí)行的類方法,是Java應用運行的起始點。而這個類也就稱之為“主類”。 Java程序源文件名要與主類名同名(包括大小寫一個類產(chǎn)生一個.class文件。例如HelloApplication.java。,Java應用程序在程序構成上具有下列這些特征:,例如下面的程序就是一個Java應用程序。這個程序完成一個數(shù)學函

42、數(shù)的計算。,73,例 Fx程序計算數(shù)學函數(shù)。源程序文件名:Fx.java。,public class Fx public int fx(int x) if(x213) return 1; else return 0; public static void main(String args) Fx y = new Fx(); System.out.println( f(x)=+y.fx(267); ,74,關于main()方法,main()方法是由解釋器或Java虛擬機自動執(zhí)行的方法,是Java應用運行的起始點。 含有main()方法的類稱之為“主類”。當有多個類在同一個源程序時main()方法

43、應放在由public修飾的類。 main()方法的方法聲明(格式)必須是: 修飾符public和static沒有固定的順序,但習慣上是 public在前static在后。 參數(shù)的類型必須是String ,參數(shù)名稱可以用任何名字,但習慣上使用args或argv。,public static void main(String args),75,5.Java小程序(Applet)的組成,Java小程序是不能獨立運行,是被嵌入到Web頁中,由Java兼容瀏覽器控制執(zhí)行。在程序結構上它沒有像應用程序那樣的main()方法,因此它的程序具有如下特征:,由一個或多個“類”組成。 由Java兼容瀏覽器控制執(zhí)行

44、的類必須是Applet類的子類,它是Java小程序運行的起始點,也就小程序的“主類”。Java程序源文件名要與主類名同名。 在類中根據(jù)需要覆蓋init()、start()、stop()、destroy()和paint()等方法。 小程序執(zhí)行由html文件中的實現(xiàn)。,76,Applet程序的基本結構,import java.awt.*; import java.applet.*; public class 類名 extends Applet public void init() public void stop() public void start() public void destroy(

45、) public void paint(Graphics g) ,77,Applet程序的執(zhí)行Html標記, ,78,Applet程序示例程序,import java.awt.*; import java.applet.*; public class HelloApplet extends Applet public void paint(Graphics g) g.drawString(JavaApplet 歡迎你!, 50, 60 ); ,這個程序只需簡單地顯示一個字符串,沒有復雜要求,更沒有需要初始化的變量或操作,因此只覆蓋了paint方法。,79,80,第二章、Java語言基礎,基礎語

46、言 ( 數(shù)據(jù)類型、字面量、變量 ),81,2.2、數(shù)據(jù)類型、字面量、變量,1.數(shù)據(jù)類型,Java數(shù)據(jù)類型有: 原始數(shù)據(jù)類型(Primitive Data Types ) 引用類型(reference type ) Java原始數(shù)據(jù)類型又稱基本數(shù)據(jù)類型,它說明了在程序中所能表示的基礎數(shù)據(jù)的種類,通常有8種。 引用類型包括類、接口等,具體內(nèi)容將在后面章節(jié)介紹。,82,boolean 布爾型,只有真(true)與假(false) byte 8位符號整數(shù),取值范圍-128+127 short 16位符號整數(shù),取值范圍-32768+32767 char 16位字符,Unicode字符集,字符碼數(shù)值范圍

47、0(u0000 )65535(uffff)。 int 32位符號整數(shù),取值范圍: -2147483648+2147483647 long 64位符號整數(shù),取值范圍: -9223372036854775808+9223372036854775807 float 32位單精度浮點數(shù),使用IEEE754標準。 double 64位雙精度浮點數(shù),使用IEEE754標準。,Java原始(基本)數(shù)據(jù)類型,Java原始數(shù)據(jù)類型變量的默認值,83,Java原始數(shù)據(jù)類型占用的位數(shù),84,85,符號是構成程序的基本單位,一個程序?qū)嶋H上是用特定符號描述的計算機命令集合,這些命令確定存儲器分配,完成各種計算和控制。j

48、ava采用Unicode字符集,使他可以更好的提供多語言支持。java符號可分為如下5種:,標識符(Identifiers) 指構成java程序代碼中變量、類、方法的名字的符號串。 關鍵字(Keyword) java語言使用的專用符號。 字面值(Literals) 表示一些具有固定值的常數(shù)。 運算符(Operands) 表示算術、邏輯運算的符號。 分隔符(Separator) 空格、值表符、回車換行符等。,2.Java符號,86,(1)注釋 java語言可使用三種格式的注釋。,/注釋內(nèi)容 從/到行末的內(nèi)容被忽略 /*注釋內(nèi)容*/ 在/* 和 */之間的內(nèi)容 /*注釋內(nèi)容*/ 同上,/* (#)

49、Sample3_3.java 1.0 01/10/22程序計算一個梯形 */ public class Sample3_3 int L1,L2; /上下底邊 int H; /高 ,注釋,注釋,87,(2)標識符 標識符構成java程序代碼中變量、類、方法和接口的名字,這些名字是唯一的。java語言所有標識符是由字符組成的字符串,構造標識符遵循下面的規(guī)則:,標識符必須以字母、下畫線或$符號為第一個字符。 后續(xù)字符可以是數(shù)字0-9,其他非保留字字符。 java語言中大小寫是有區(qū)別的。,例如, int ox,oy; String $name,_year; 都是正確的標識符,在此表示變量名稱。,88,

50、(3)關鍵字 所謂關鍵字是指java語言使用的標識符,又稱保留字。例如下面列出的幾個關鍵字。,89,字面值是源代碼固定值的表示。java中的字面值區(qū)分為不同的數(shù)據(jù)類型,通常有: 整型 實型 字符 布爾 字符串 空對象,3.字面值(常量),89,90,(1)整型字面值,有三種表示形式:,八進制 :以0開頭只能出現(xiàn)數(shù)字07,例如 0126,0453等。,十六進制:以0 x開頭的整型數(shù),可以包括數(shù)字09,字母af或AF,例如 0 x12AD,0 x9FFDBD等。,十進制 :由第一個字符不為0的數(shù)字串組成,例如 234、122、657489等。,90,91,(2)浮點型 字面值,用十進制表示,主要由

51、三部分組成:整數(shù)、小數(shù)點、小數(shù)部分、指數(shù)和類型后綴。,小數(shù)表示: 整數(shù).小數(shù) 指數(shù)表示: 整數(shù).小數(shù)E指數(shù) 整數(shù).小數(shù)e指數(shù),例如:4.0987 3.12E34 3.678E-12,用在小數(shù)后加后綴d或D,表示double型浮點數(shù);在小數(shù)后加后綴f或F,表示float型浮點數(shù)。 例如,2.0D、2.0d 是double型浮點數(shù); 2.0f、2.0F 是float型浮點數(shù)。,91,92,(3)布爾型字面值,有兩個值:true(真)、false(假)。 (4)字符型字面值,由單引號括起的字符。 例如 Q,P,天等。 Java采用Unicode字符集,因而每個字符占用16位,可表示065535之間的

52、字符碼。 轉(zhuǎn)義字符:,b 退格 單引號 t 水平制表符 反斜線 n 換行 f 表格符 r 回車 ” 雙引號,92,(5)空對象字面值,表示形式:null。 它常用來作為對象是否可用的 標記。,(6)class字面值,表示形式:類型名稱 .class。例如: String.class Integer.class 等。,93,94,對象存儲它的狀態(tài)在域(Field)中,變量也是存儲程序中數(shù)據(jù)的,它們都是通過一個名字引用值。在Java語言中域(field)和變量(variable)都使用,因此會引起一些混亂,原因是它們通常具有相同的含義和用途。,4.變量(域),(1)變量命名: 是一個合法的標識符,

53、它是字母、數(shù)字、下劃線或美元符“”的序列,Java對變量名區(qū)分大小寫,變量名不能以數(shù)字開頭 ,而且不能為保留字 。 合法的變量名如:myName、 value-1、 dollar等 。非法的變量名如: 2mail、room#、 class (保留字)等,變量名應具有一定的含義,以增加程序的可讀性 。,94,95,(2) 變量類型: 可以為上面所說的數(shù)據(jù)類型中任意一種數(shù)據(jù)類型 。 (3) 變量的作用域: 聲明一個變量的同時也就指明了變量的作用域。java規(guī)定允許變量在任何代碼塊中聲明,一個代碼塊由大括號括起的代碼。按作用域來分,變量可以有下面幾種: 實例變量(Instance Variables

54、)即非靜態(tài)域(Non-Static Fields )。 類變量(Class Variables)即靜態(tài)域(Static Fields )。 局部變量(Local Variables )。 參數(shù)(Parameters)。,95,96,實例變量(Instance Variables): 非靜態(tài)域(Non-Static Fields),聲明時不用static修飾的域。對象存儲它的個體狀態(tài)在非靜態(tài)域中,非靜態(tài)域也被稱做“實例變量”,它們的值對于一個類的每個實例是唯一的。,實例變量,public class Circle static final MIN_RADIUS=1; protected int

55、m_radius; protected int m_ox,m_oy; public Color m_color; ,96,類變量(Class Variables): 類變量是聲明時用static修飾的域,不管類被實例化多少次(也就是創(chuàng)建多少個對象),類變量僅有一個,即類的多個實例(對象)共享類變量。,public class Circle static final MIN_RADIUS=1; protected int m_radius; protected int m_ox,m_oy; public Color m_color; ,實例變量,類變量,97,public class Cuboi

56、d public String toString() String msg=nCuboid 對象成員n length :+length; msg+=n width :+width+n high :+high; return msg; public static void main(String argc) Cuboid c1=new Cuboid(); System.out.println(c1.toString(); ,局部變量(Local Variables ) : 在方法中保存臨時狀態(tài)值的變量即局部變量。Java語言沒有專門的關鍵字指明一個局部變量,它聲明在方法開始符號“”和結束符號“”

57、之間。局部變量僅在聲明它的方法中有效,類中的其他方法是不能使用的。,局部變量,局部變量,98,參數(shù)(Parameters) : 是在方法中傳遞給方法數(shù)據(jù)的變量,它在方法參數(shù)表中聲明,它的作用域就是這個方法。 下面的程序中main方法有一個參數(shù)argc。,方法參數(shù),public class MemberVariable public static void main(String argc) MemberVariable mv=new MemberVariable(); mv.printValue(); ,99,100,成員變量范圍,方法參數(shù)范圍,局部變量范圍,例外處理參數(shù)范圍,變量在類中位置,

58、100,在程序中使用變量時,必須明確提供變量的名稱和類型。變量名稱是一個合法的標識符以字母開始的長度無限的Unicode字符序列。變量是Java程序中數(shù)據(jù)的基本存儲單元,變量通過一個名字引用值,即包含在變量中的數(shù)據(jù)。變量類型決定了它保存的值以及可以實現(xiàn)的操作。使用變量前必須聲明變量,它的聲明語法格式:,(4) 變量聲明:,變量類型 變量名稱=初始值 , ;,“變量類型” 即變量的數(shù)據(jù)類型,變量的數(shù)據(jù)類型可以是基本類型,也可以是類、接口等復雜的引用型。,101,“變量名稱”聲明的變量的名稱,如果聲明多個變量,每個變量間用“,”隔開。 “=初始值” 如果在定義變量時需要給變量確定數(shù)值,可以用“=”為變量賦值。,例如 boolean startFlag = false; boolean opened , runnable; byte c1 , c2 = A , c3 = n; short size; int width , length; long scroe; float year , size = 0.45f; double height , sum ,;,102,public class MaxVariables public static void main(String args

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論