Java程序設計教程葉核亞_第1頁
Java程序設計教程葉核亞_第2頁
Java程序設計教程葉核亞_第3頁
Java程序設計教程葉核亞_第4頁
Java程序設計教程葉核亞_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

《高級語言程序設計》12014.92教材、參考書教材Java程序設計實用教程葉核亞參考書ThinkinginJava(4thEdition),作者:(美)BruceEckel,出版社:PrenticeHallPTR。Java程序設計教程.作者:H.M.Deitel/P.J.Deitel出版社:清華大學出版社。Java程序設計實用教程作者:耿祥義,出版社:人民郵電出版社。3《Java程序設計實用教程》(第3版)第1章Java概述第2章Java語言基礎第3章類的封裝、繼承和多態第4章接口、內部類和JavaAPI基礎第5章異常處理第6章圖形用戶界面第7章多線程第8章Applet應用程序第9章輸入/輸出流和文件操作第10章網絡通信第11章數據庫應用第12章綜合應用設計4第1章Java概述1.1Java簡介1.2Java程序分類及執行機制1.3JDK的安裝、設置與使用1.4Eclipse/MyEclipse簡介本章簡要介紹Java語言的特點和核心技術,介紹Java兩種應用程序Application和Applet的基本形式,以及由虛擬機支持的程序運行機制;以Windows平臺的JavaSE6版本為例,介紹JDK的安裝和設置方法,以及編譯、運行Java程序的方法;介紹在Java集成開發環境MyEclipse中編輯、編譯和運行Java程序的方法。5第1章Java概述短短的十幾年間,Java憑借平臺無關、健壯、安全、高效這些適應網絡運行需要的特點,Java快速成長,不僅在Internet上游刃有余,而且通過JavaME、JavaSE、JavaEE三大平臺,其應用領域全面覆蓋了嵌入式應用、桌面應用和企業級應用,所表現出的強大的應用系統設計能力,使Java無處不在。本章內容概要介紹Java特點和核心技術;介紹Java兩種應用程序Application和Applet的基本形式,以及由虛擬機支持的程序運行機制;介紹JDK的安裝和設置方法,以及編譯、運行Java程序的方法;介紹在Java集成開發環境MyEclipse中編輯、編譯和運行Java程序的方法。61.1Java簡介1.1.1Java的誕生和發展1.1.2Java語言的特點及優勢1.1.3Java的核心技術71.1.1Java的誕生和發展前身Java的前身是源于20世紀90年代初Sun公司的一個叫Green的項目,該項目旨在開發一個嵌入家用電器的分布式軟件系統。該系統最初采用C++進行開發,但因C++語言過于復雜、安全性差,于是項目小組只好另辟蹊徑,在“簡單的、可靠的、緊湊的并易于移植的”的框架內開發了一個小型的計算機語言,當時取名為Oak,即橡樹的意思。誕生當Oak語言成熟之時,全球互聯網也正興起,SUN公司很快意識到Oak有了更好的用武之地。項目組使用Oak首先編制了HotJava瀏覽器,并取得很大成功,由此觸發了Oak進軍Internet。1995年Oak注冊登記時發現該名已被占用,遂更名為Java,因爪哇咖啡而得名。經過一番市場運作后,Oak以Java的新身份逐漸得以走紅。8Java發展大事記1995年5月23日,Java語言誕生。1996年,正式發布JDK1.0和HotJava。JDK(JavaDevelopmentKit)集成了Java編程語言、開發工具、環境和Java類庫等。1998年,JDK1.2發布,稱為Java2平臺(Java2platform),并分為標準版、企業版和微縮版3個版本,分別簡稱為J2SE、J2EE、J2ME。2004年10月,期待已久的JDK1.5發布。為了突顯這個版本重大更新SUN公司將原平臺稱謂中的"2"字去掉,將簡寫名稱中的"J"改為全稱"Java",版本號改為5.0。三個版本分別改稱為JavaSE5.0、JavaEE5.0、JavaME5.0。2006年12月,JavaSE6.0發布。企業版的發布往往比標準版晚1-3年。如JavaEE6.0直到標準版發布3年后的2009年12月才正式發布。91.1.2Java特點Sun公司在“Java白皮書”中對Java的定義是:“Java:Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,anddynamiclanguage.”。翻譯過來就是:Java是一種具有“簡單、面向對象的、分布式、解釋型、健壯、安全、與體系結構無關、可移植、高性能、多線程和動態執行”等特性的語言。下面我們簡要敘述Java的這些特性:10簡單性內核:基本Java系統(編譯器和解釋器)所占空間不到250KB。語言:擯棄了C++語言的全程變量、goto語句、宏定義、全局函數以及結構、聯合和指針數據類型。提供語言級的內存自動管理和異常處理方式。完全面向對象面向對象:程序=對象+消息(面向過程:程序=數據結構+算法)Java是純面向對象的語言,所有設計都必須在類中實現,一個Java程序就是多個類的集合。可靠性語言級別:提供嚴密的語法規則,在編譯和運行時嚴格檢查錯誤。運行架構級別:自動資源回收機制,減小了內存出錯的可能性,減輕了程序員的工作量,提高了程序運行的可靠性。11安全性采用域管理方式的安全模型,可以通過配置策略設定可訪問的資源域。摒棄指針、數組下標越界檢查、自動內存管理等,使Java成為最安全的編程語言和環境之一,Java代碼無法成為類似特洛伊木馬、病毒和蠕蟲等具有潛在破壞作用的東西。分布式直接支持分布式的網絡應用,實現高效的網絡編程多線程提供環境級和語言級的多線程支持,從而提高了程序執行的并發度,提高系統執行效率。平臺無關性Writeonce,runanywhere:程序不經修改即可在不同硬件或軟件平臺上運行(Java虛擬機)。121.1.3Java核心技術Java支持的多種核心技術,滿足了企業級應用對軟件在安全性、可靠性、高效性上的高要求,使JavaEE成為開發分布式企業級應用的工業標準。主要核心技術包括:JDBC/JTA/JPA

:Java數據庫相關技術JSP/Servlet/JSF:Java服務端表示層技術JavaBean/EJB:Java組件技術JavaMail:Java郵件開發技術JNDI:Java命名和目錄服務技術本課主要介紹Java語言基礎及面向對象編程的方法,有興趣的同學可以多關注這些相關技術131.2Java程序分類及執行機制1.2.1Java程序分類1.2.2Java程序執行機制141.2.1Java程序分類ApplicationJava應用程序,是可在Java虛擬機環境中直接運行的Java程序Applet即Java小應用程序,是可隨網頁下載到客戶端由瀏覽器解釋執行的Java程序。Servlet即Java服務器端小程序,是配置在Web服務器(容器)中運行的Java程序。JavaBeans即Java組件,是可重用的Java數據和功能的封裝,由其它程序調用執行。1.2.2Java程序執行機制161.3JDK安裝、設置與使用1.3.1JDK的安裝與設置1.3.2編譯和運行Java程序1.3.3包171.3.1JDK的安裝與設置安裝JDK從Sun公司的網站()下載JDK工具包(jdk-6u20-windows-i586.exe或java_ee_sdk-6-windows.exe),然后安裝。設置環境變量WindowsXP設置path:D:\jdk1.6\bin;classpath:.;D:\jdk1.6\jre\lib\rt.jar;

或.;D:\jdk1.6\lib\dt.jar;D:\jdk1.6\lib\tools.jarMyEclipse中設置默認已設置好自帶的JDK庫,也可如下操作改為專門安裝的JDK庫選擇[windows|preferences]→[java|installedJREs],點<Add…>,選StandardVM,然后設置JDK的主目錄。18JDK常用工具集工具名稱說明JavacJava編譯器,用于將Java源程序.java編譯成字節碼.class用法:javac[選項]<源文件>JavaJava解釋器,用于解釋執行Java字節碼.class或.jar用法:java[選項]<類文件名>[命令行參數]或java-jar[選項]<JAR文件名>[命令行參數]appletviewer小應用程序瀏覽器,用于測試和運行Javaapplet程序用法:appletviewer[選項]<HTML文件>JavadocJava文檔生成器,從Java源文件生成API文檔HTML頁用法:javadoc[選項]<軟件包名>[源文件][@file]Javap類反匯編器,用于查看類文件中的所有聲明(類名、方法名、字段)用法:javap[選項]<類文件名>Jar打包程序,用于將多個類壓縮到一個擴展名為jar的文件中。用法:jar<ctxu>[其它選項]類文件1類文件2...JavahC頭文件生成器,利用此命令可實現在Java類中調用C++代碼用法:javah[選項]<類文件名>191.3.2編寫、編譯、運行Java程序Java程序運行流程20基本步驟(1)

利用文本編輯器建立Java源程序文件.java;(2)

利用Java編譯器(Javac.exe)編譯該application,生成字節碼文件.class;(3)

利用解釋器(java.exe/javaw.exe)解釋執行字節碼文件。下面以【例1.1】Hello.java

為例說明JavaApplication程序的建立、編譯及運行過程。JavaApplication程序21(1)建立Java源程序文件利用任何一個文本編輯器來建立Java源程序文件Hello.java。如DOS的EDIT、Windows的記事本、寫字板、Word等。保存文件時取擴展名.java。需要特別注意的是,文件名必須與類名完全一致(包括大小寫)!(2)編譯利用Java編譯器(Javac.exe)對源文件進行編譯。在DOS提示符后,鍵入命令:javacHello.java

。若源文件無錯誤,則產生Hello.class字節碼文件;若源文件中有錯誤,則編譯器將指出錯誤位置,此時需返回上一步對源文件進行修改。注意:擴展名.java不能少!(3)運行利用Java解釋器(java.exe)解釋執行字節碼文件。在DOS提示符后鍵入命令:javaHello,屏幕上將輸出:Hello!注意:不能帶擴展名.class!22程序分析publicclassHello這一行表示聲明此程序要建立一個新類,類名為Hello。Public修飾符聲明這個類是公共類,而這個類定義的內容就在后面緊跟的花括號內。任何Java程序都必須以類的形式出現,一個程序中可以定義若干個類,但只能定義一個public類。定義類必須用關鍵字class作為標志。文件名必須與public類的類名一致。在publicstaticvoidmain(Stringargs[])行定義了一個主方法,當程序執行時,解釋器會找主方法,它是程序的入口點。其中:public表明所有的類都可以調用這個方法,static表明這個方法可以通過類名直接調用,而void表明此方法執行后不返回任何值。Stringargs[]是向main傳遞的參數,為字符串數組。23main后面緊跟的花括號是main方法要執行的功能,這里只含一條語句:System.out.println(“Hello!");此語句的功能是輸出字符串“Hello!”。這里的System是Java系統類庫中的一個類,利用此類可以獲得Java運行環境的有關信息和輸入輸出信息等;out是System類中的一個屬性(代表標準輸出);println()是out對象的一個方法,此方法的作用是向標準輸出設備(顯示器)輸出參數指定的字符串,輸出完成后光標定位在下一行。【例1.3】通過命令行參數輸入數據的Java應用程序示例24基本步驟(1)

利用文本編輯器建立Java源程序文件;(2)

利用Java編譯器(Javac)編譯該JavaApplet,產生.class文件;(3)

建立一個HTML文件,在其中嵌入Java字節碼文件;(4)

用WWW瀏覽器或appletviewer裝入該HTML文件,使Applet運行。下面以【例1.2】HelloApplet.java為例,來說明Applet程序的建立、編譯及運行過程。JavaApplet程序的建立及運行25(1)建立JavaApplet源程序文件建立JavaApplet源程序文件的方法與建立JavaApplication源程序文件的方法相同。取名:HelloApplet.javaimportjava.awt.*;importjava.applet.Applet;public

classHelloAppletextendsApplet{

public

voidpaint(Graphicsg){g.setColor(Color.RED);g.drawString("Hello,Applet!",50,50);}}26(2)編譯編譯JavaApplet與編譯JavaApplication方法相同。鍵入如下命令:

javacHelloApplet.java(3)建立一個HTML文件用文本編輯器建立名為HelloApplet.html的HTML文件,并輸入下面兩行語句:<appletcode="HelloApplet.class"height=100width=300></applet>(4)運行在DOS提示符后輸入命令:

appletviewerHelloApplet.html

也可直接用瀏覽器打開該網頁文件(可能會因為瀏覽器的設置而無法顯示)。27程序分析import語句:用于導入Java類庫中的類,相當于C語言的include。本程序調用了java.awt包中的Graphics類和java.applet包的Applet類。publicclassHelloApplet

extendsApplet:該語句聲明此程序要建立一個名為HelloApplet的新類,extendsApplet說明該類是Applet的子類。Applet程序都必須是Applet的子類。publicvoidpaint(Graphicsg):定義名為paint的方法,用于繪出JavaApplet對象的內容。參數g是屬于Graphics類的對象。g.drawString("JavaNow!",25,25):調用Graphics類對象g的drawString()方法,將字符串"Hello,Applet!"顯示在applet畫板中。該方法有3個參數:第1個參數是要顯示的內容,第2、第3個參數指定字符串在applet窗口中顯示的位置(x、y坐標,以像素為單位)。對于JavaApplet的更多知識,將在第8章進一步介紹。在HTML文件中可用<APPLET>標記指示要插入網頁中的Applet程序,CODE指明Applet字節碼文件的文件名;width、height指出applet窗口的寬與高。281.3.3包包的概念包是Java組織和管理.class文件的一種方法,通常將功能相同或相關的類組織在一個包中。例如java.io包中的類都與輸入、輸出有關。一個包實際上就是一個文件夾,這個文件夾中存放著.class文件。包可以有多層結構,而各層之間以點(.)分隔,如java.io,java.awt,java.awt.color等。引用包中的類包{.子包}.類|接口導入包導入單個類:import

包{.子包}.類|接口;

按需導入類:import

包{.子包}.*;

默認包路徑:.29聲明類所在的包

要將類組織到包中,不僅僅是建立文件夾層次,還須在類文件中指明存放的包。即在程序的開頭加一語句:package包{.子包};Java源程序結構package //0或1個,必須是第一條語句import //0或n個publicclass或interface //0或1個 //源程序的文件名必須與該公共類/接口同名class //0或n個Interface //0或n個

【例1.4】創建及使用包30打包應用程序可以使用Java打包工具jar.exe將包結構及應用程序的所有.class文件壓縮成.jar包。語法:jar{ctxui}[vfm0Me][jar-file][manifest-file][entry-point][-Cdir]files...說明:ctxui只能有一個,c-創建新的歸檔文件,f-指定歸檔文件名,m-從指定文件中提取信息生成清單文件(MANIFEST.MF),x-解壓歸檔文件中的指定(或所有)文件,…示例:①jarcfmyjar.jar*.class

//將當前目錄下的所有.class文件打包進myjar.jar中,并生成META-INF文件夾,其中有一個默認的清單文件MANIFEST.MF②jarcfmmyjar.jarmymf.txt*.classmydir

//將當前目錄下的所有.class文件和mydir及其子目錄中的所有.class文件打包 進myjar.jar中,并在包中創建META-INF文件夾,其中的清單文件MANIFEST.MF內容從mymf.txt文件中提取。

31JavaAPI類庫的常用包包名功能java.lang語言包Java語言的核心類庫包含Java語言必不可少的系統類定義,包括Object類、基本數據類型封裝類、數學運算、字符串、線程、異常處理等java.util實用包實用工具類庫,包含日期類、集合類庫等java.awt抽象窗口包提供構建圖形用戶界面的類庫,包含組件、事件及繪圖功能java.applet實現Applet應用程序java.text文本包提供各種文本或日期格式化等類,如Format、DateFomat、SimpleDateFormatjava.io輸入/輸出流包提供標準輸入、輸出流及文件操作類庫網絡包提供網絡編程有關的類庫,包括Socket通信支持、Internet訪問支持等java.sql提供數據庫應用功能的類庫javax.swing擴充和增強圖形用戶界面功能的類庫表1-3JavaAPI的常用包32查閱API文檔從SUN官網可下載英文版的API文檔,如jdk-6-doc.zip,解壓后打開..\docs\api\index.html文件,就可在瀏覽器中查看JDK的所有包中的類的說明文檔,包括類/接口的屬性構成、構造方法、功能方法等的使用說明。網上也有中文版的API文檔,通常做成了電子書(.chm),方便下載和閱讀(演示)。窗口左側顯示所有包及層次關系,右側顯示選定類/接口的說明文檔。查閱API源碼在JDK的安裝目錄下有一個壓縮文件src.zip,其中包含了JDK所有類/接口的源碼。參考官方規范化的源碼有利于提升自己的編程水平。在MyEclipe的源碼編輯窗口,只要在類名上按F3鍵就可快速查看其源碼。331.4Eclipse/MyEclipse簡介Eclipse是一個開源、免費的Java集成開發環境(IDE),支持插件擴展,被廣泛應用。MyEclipse是Eclipse的一個插件,它大大增強了Eclipse的功能。MyEclipseEnterpriseWorkbench是被廣泛應用、功能強大的JavaEE集成開發環境,它支持代碼編寫、調試、編譯以及應用布署等所有功能,完整支持HTML、Struts、JSF、CSS、JavaScript、SQL以及第三方框架開發。341.4.1MyEclipse集成開發環境下載、安裝MyEclipse從MyEclipse官網/可下載MyEclipse開發平臺。最新版安裝文件文件是myeclipse-8.5.0-win32.exe。在安裝myeclipse之前通常應先安裝JDK,myeclipse安裝十分簡單,通常只須選擇合適的安裝路徑,其他選項保持默認即可。在安裝過程中,MyEclipse會自動尋找JDK。第一次啟動MyEclipse會彈出如圖1.13所示的對話框,詢問工作區路徑。工作區(workspace)是指存放源程序文件及配置文件的文件夾。35界面MyEclipse集成開發環境界面如圖1.14(P16)所示。如今這種界面已逐漸成為業界的一種標準。MyEclipse集成開發環境包括菜單欄、工具欄、視圖、編輯器、狀態欄等。視圖是MyEclipse的功能子窗口,可更改各視圖的大小,移動位置。雙擊某視圖標簽可最大化或還原視圖窗口。若干視圖組合稱為透視圖(Perspective)。執行"Window|ShowView"可顯示所需視圖。執行"Window|OpenPerspective"可打開所需透視圖。透視圖也會在相應操作時自動打開。常用視圖及功能說明如表1-4(P16)所示。36表1-4MyEclipse常用視圖及功能說明視圖功能說明Navigator顯示項目中的文件列表PackageExplorer顯示項目中的包和文件Outline顯示編輯器中的當前文件的方法聲明。單擊方法名可快速定位到指定方法Hierarchy顯示當前類的繼承關系Problems顯示編譯錯誤和警告信息Console顯示控制臺程序的運行結果Tasks顯示代碼中未完成的任務Debug顯示調試信息Variables顯示調試過程中的變量值37代碼提示和源代碼查看MyEclipse具有代碼提示和源代碼查看等功能。在編輯器中,當類名或對象名后輸入點(.)時將自動出現代碼提示窗口,從中可選擇輸入所需要的成員變量或方法。當按住Ctrl鍵并單擊類名或方法名時,如String類或println(),將打開指定類或該方法所在的類,可查看該類源碼及方法聲明細節。也可在類名或方法名上按F3完成同樣功能。38工作區(workspace)和項目(project)一個復雜點的應用程序通常需要多個類和多個程序文件構成。Eclipse以項目(project)為單位管理應用程序,一個項目對應一個應用程序,其中包含多個文件,項目本身保存為項目文件。一個大型企業級應用通常包含多個不同種類的應用程序,每個應用對應一個項目,Eclipse以工作區(workspace)來管理多個項目,一個工作區對應一個文件夾。工作區、項目、程序文件及其關系如圖1.15所示。工作區項目1Java程序1.javaJava程序2.java項目2391.4.2創建Java項目并運行創建Java項目選擇"File|New|JavaProject"→打開"NewJavaProject"對話框→輸入項目名→單擊<Finish>按鈕,即可在當前工作區中創建一個新項目,并創建與項目同名的文件夾(演示)。各選項含義如圖1.16所示。創建Java類選擇"File|New|Class"→打開"NewJavaClass"對話框,輸入類名(如Hello)→單擊<Finish>按鈕,將在Sourcefolder指定的文件夾中創建文件Hello.java,并打開該類的編輯窗口。編輯、編譯和運行Eclipse編輯器功能強大,除具有常規文本編輯器的所有功能(Copy、Cut、Paste、Delete、Undo、Redo、SelectAll、Find/Replace)。還具備分色顯示、智能輸入、動態幫助等功能。MyEclipse默認即時編譯,保存的同時即編譯。點擊工具欄Run圖標即可運行當前源程序,運行結果或打開窗口或顯示在Console視圖中。40重構選擇快捷菜單"Refactor|Rename",可更改當前項目或類的名稱,相應的文件夾名將被同步更改,類名、對應源程序文件名以及該類名的所有引用也被同步更改。切換工作區選擇"File|SwitchWorkspace",在打開的對話框中可選擇另一個文件夾作為工作區。訪問其他項目中的類和添加JAR包在項目上選擇快捷菜單"BuildPath|ConfigureBuildPath",然后選擇Projects頁,單擊<Add>按鈕可將其它項目,以便訪問本項目外的類。選擇Libraries頁可添加外部jar包或MyEclipse自帶類庫等。設置運行的命令行參數選擇"Run|RunConfigurations…"打開Run配置對話框,在Arguments頁的Programarguments編輯框中輸入命令行參數,多個參數以空格分隔。411.4.3程序調試技術在軟件開發過程中,程序出錯往往是不可避免的。調試程序、排除錯誤是程序員無法回避的工作。調試方法有許多種,歸根結底都是為了找到引發錯誤的代碼。程序調試能力是程序員必須掌握的一項基本技能,與程序設計能力相輔相成。只有具備較強的程序調試能力,才能擁有強大的程序開發能力,才能算是一個合格的程序員。Eclipse內置的Java調試器提供了所有標準調試功能,包括單步執行、設置斷點和值、檢查變量和值以及暫掛和恢復線程等。42程序錯誤、發現時刻及錯誤處理原則當程序不能正常運行或者運行結果不正確時,則表明程序中有錯誤。按照錯誤的性質可將程序錯誤分成三類:語法錯、語義錯、邏輯錯。這三類錯誤的發現時刻不同,處理錯誤的方式也不同。語法錯(syntaxerror)又稱為編譯錯,指違反語法規范的錯誤。如標識符未聲明、表達式中運算符與操作數類型不匹配、賦值時變量類型與表達式類型不兼容、括號不匹配、語句末尾缺少分號、else沒有匹配的if等。MyEclipse能在編輯時發現語法錯誤并以紅色x來標記出錯行,當鼠標移向出錯標記時會給出錯誤信息。程序員必須及時改正語法錯,再重新編譯程序。語義錯(semanticerror)指存在語言含義錯誤。如數據格式錯、除數為0錯、變量賦值超出其范圍、數組下標越界等。語義錯在運行時會被發現,故又稱為運行錯(run-timeerror)。MyEclipse運行時一旦發現語義錯,

溫馨提示

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

評論

0/150

提交評論