Java程序設(shè)計(jì):第2章 Java概述和入門程序_第1頁
Java程序設(shè)計(jì):第2章 Java概述和入門程序_第2頁
Java程序設(shè)計(jì):第2章 Java概述和入門程序_第3頁
Java程序設(shè)計(jì):第2章 Java概述和入門程序_第4頁
Java程序設(shè)計(jì):第2章 Java概述和入門程序_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第2章 Java概述和人門程序Java程序設(shè)計(jì) 12教學(xué)目標(biāo)Java語言歷史、發(fā)展和特點(diǎn)Java類庫Java開發(fā)環(huán)境JDK 下載、安裝與使用Java集成開發(fā)環(huán)境Java程序類型及簡單例子應(yīng)用程序小應(yīng)用程序applet32.1 Java歷史及發(fā)展Java來自于上個(gè)世紀(jì)90年代初Sun公司的一個(gè)叫Green的項(xiàng)目,其原先的目的是為家用消費(fèi)電子產(chǎn)品開發(fā)一個(gè)分布式代碼系統(tǒng),這樣可以把E-mail發(fā)給電冰箱、電視機(jī)等 詹姆斯.高斯林(James Gosling)等人基于C+開發(fā)一種新的語言O(shè)ak(Java的前身) Oak是一種用于網(wǎng)絡(luò)的精巧而安全的語言。Sun公司曾依次投標(biāo)一個(gè)交互式電視項(xiàng)目,但結(jié)果被S

2、GI打敗,Sun打算拋棄Oak.但隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣泛應(yīng)用前景,于是改造Oak,在1995年以”Java”的名稱正式發(fā)布,從此Java走上繁榮之路。42.1 Java歷史及發(fā)展現(xiàn)在Java用于:開發(fā)大型企業(yè)的應(yīng)用程序;增強(qiáng)WWW服務(wù)器的功能;動畫游戲的設(shè)計(jì),包括圖形圖像的調(diào)用;為消費(fèi)類設(shè)備(如手機(jī)、傳呼機(jī)和移動設(shè)備等)提供應(yīng)用程序。52.2 Java語言特點(diǎn)Java語言特點(diǎn):簡單性、面向?qū)ο?、平臺無關(guān)、可移植、解釋型、高性能、動態(tài)性、可靠、安全、多線程、分布式處理等。 6Java語言特點(diǎn)1.簡單性最初是為對家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語言,因此它必須簡單

3、明了。Java語言的簡單性主要體現(xiàn)在三個(gè)方面:風(fēng)格類似于C+,對C+程序員而言非常容易掌握J(rèn)ava編程技術(shù)。 Java摒棄了C+中容易引發(fā)程序錯誤一些特性,如指針操作和內(nèi)存管理等;提供豐富的類庫,可以幫助我們很方便的開發(fā)Java程序。 7Java語言特點(diǎn)2面向?qū)ο驤ava語言是面向?qū)ο蟮木幊陶Z言,所以它支持繼承、重載、多態(tài)等面向?qū)ο蟮奶匦?。面向?qū)ο蠹夹g(shù)的核心更接近于人類思維的方式建立計(jì)算機(jī)模型,它利用類和對象的機(jī)制將數(shù)據(jù)與其上的操作封裝在一起,并通過統(tǒng)一的接口與外界交互。Java程序的結(jié)構(gòu):由一個(gè)以上的類組成。8Java語言特點(diǎn)3平臺無關(guān)性用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺上

4、運(yùn)行。 Java靠Java虛擬機(jī)(Java Virtual Machine,JVM)實(shí)現(xiàn)平臺無關(guān)性。JVM是一種抽象機(jī)器,它附著在具體操作系統(tǒng)之上,本身具有一套虛擬機(jī)的機(jī)器指令,并有自己的棧、寄存器組等。Byte Code計(jì)算機(jī)硬件環(huán)境JVM9Java語言特點(diǎn)3平臺無關(guān)性在JVM上,有一個(gè)Java解釋器用來解釋Java編譯器編譯后的程序。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節(jié)代碼(Byte Code)。任何一臺機(jī)器只要配備了Java解釋器,就可以運(yùn)行這個(gè)程序,而不管這種字節(jié)碼是在何種平臺上生成的。Byte Code計(jì)算機(jī)硬件環(huán)境JVM通過JVM以及

5、JRE將其轉(zhuǎn)成本地機(jī)器代碼,10Java語言特點(diǎn)4.可移植性Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,而與體系結(jié)構(gòu)無關(guān)。5.解釋性Java代碼是解釋執(zhí)行的,我們使用Java編譯器將Java代碼編譯成字節(jié)碼,這是一種中間代碼,然后由Java解釋器解釋執(zhí)行,將Java字節(jié)碼轉(zhuǎn)換為機(jī)器碼,然后執(zhí)行。6.高性能雖然Java是解釋執(zhí)行程序,但它具有非常高的性能。另外,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。 11Java與傳統(tǒng)語言的不同運(yùn)行機(jī)制12Java語言特點(diǎn)7.動態(tài)性允許程序動態(tài)地裝入運(yùn)行過程中所需要的類。如果程序連接了網(wǎng)絡(luò)中另一系統(tǒng)中的某一類,該類的所

6、有者也可以自由地對該類進(jìn)行更新,而不會使任何引用該類的程序崩潰。在C+程序設(shè)計(jì)過程中,每當(dāng)在類中增加一個(gè)實(shí)例變量或一個(gè)成員函數(shù)后, 引用該類的所有子類都必須重新編譯,否則將導(dǎo)致程序崩潰。Java編譯器不是將對實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下來,傳遞給解釋器,再由解釋器在完成動態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。一個(gè)在存儲器中生成的對象不在編譯過程中決定,而是延遲到運(yùn)行時(shí)由解釋器確定。這樣,對類中的變量和方法進(jìn)行更新時(shí)就不至于影響現(xiàn)存的代碼。13Java語言特點(diǎn)8可靠性和安全性Java是強(qiáng)類型語言;Java不支持指針,這杜絕了內(nèi)存的非法訪問;Ja

7、va的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題;Java解釋器運(yùn)行時(shí)實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界;Java提供了異常處理機(jī)制,使程序從錯誤狀態(tài)中恢復(fù)。當(dāng)Java字節(jié)碼進(jìn)入解釋器時(shí),首先必須經(jīng)過字節(jié)碼校驗(yàn)器的檢查,隨后,類裝載器負(fù)責(zé)把來自網(wǎng)絡(luò)的類裝載到單獨(dú)的內(nèi)存區(qū)域,避免應(yīng)用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問某些文件系統(tǒng)。14Java語言特點(diǎn)9.多線程Java提供Thread類,只要繼承這個(gè)類就可以編寫多線程的程序。多線程就好像我們做一張桌子,如果你一個(gè)人完成這張桌子就好像單線程,那么你需要先做桌面,做完桌面后,再做4個(gè)桌子腿,如果現(xiàn)在

8、有5個(gè)人來做桌子在程序中開辟5個(gè)線程,其中1個(gè)人做桌面,另外4個(gè)人分別做4個(gè)桌子腿,就是多線程。15Java語言特點(diǎn)10分布式處理分布式包括:數(shù)據(jù)分布:指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上,操作分布:指把一個(gè)計(jì)算分散在不同主機(jī)上處理。Java支持WWW客戶機(jī)/服務(wù)器計(jì)算模式,因此,它支持這兩種分布性。Java數(shù)據(jù)分布: Java提供了一個(gè)叫作URL的對象,利用這個(gè)對象,你可以打開并訪問具有相同URL地址上的對象,訪問方式與訪問本地文件系統(tǒng)相同。Java操作分布: Java的applet小程序可以從服務(wù)器下載到客戶端,即部分計(jì)算在客戶端進(jìn)行,提高系統(tǒng)執(zhí)行效率。支持TCP/IP協(xié)議。162.3 Jav

9、a類庫Java類庫也稱作Java API (Application Programming Interface)。在學(xué)習(xí)Java時(shí),實(shí)際上學(xué)習(xí)內(nèi)容分成兩部分。第一部分是Java語言本身,以便編寫自己的類;第二部分學(xué)會擴(kuò)展Java類庫的類。本書通過例子討論了Java的大量類庫的使用。172.3 Java類庫Java中的包:Java為編寫應(yīng)用程序提供了豐富的預(yù)定義類庫,這些預(yù)定義類庫按相關(guān)類的范疇進(jìn)行了分組,這些分組被稱作包(package).一個(gè)包是一個(gè)已命名的類的集合,一個(gè)包還可以包含其他的子包。Java所有的包被稱為Java應(yīng)用程序接口API。Java API包分成:核心包(以java開頭的

10、包)和可選包(以javax開頭的包)核心包和可選包一般被包含Java開發(fā)工具包(JDK)中。182.3 Java類庫JDK中的一些重要的包:java.lang: 提供支持Java的基礎(chǔ)類。 java.util: 提供實(shí)用方法和數(shù)據(jù)結(jié)構(gòu)的類。java.awt :javax.swing:java.applet: 創(chuàng)建小應(yīng)用程序提供必要的元件java.io : 提供輸入、輸出流支持。: 提供支持聯(lián)網(wǎng)的類。Java.sql: 提供數(shù)據(jù)庫操作的類。 提供圖形用戶界面編程的類庫集合。192.4 Java開發(fā)環(huán)境Java開發(fā)環(huán)境:使用JDK工具集(Java Developers Kits,JDK),是一種命

11、令行的方式。使用集成環(huán)境IDE(Integrated Developed Environment)。我們將通過程序例子分別介紹它們的使用方法。20JDK 下載、安裝與使用JDK(Java Development Kit)即Java軟件開發(fā)工具包,是Java的開發(fā)環(huán)境。JDK可從Oracle官方網(wǎng)站免費(fèi)下載,在這里下載適合于我們計(jì)算機(jī)操作系統(tǒng)的JDK。 如Window操作系統(tǒng)下,我們下載JDK的開發(fā)工具“jdk-6u5-windows-i586-p.exe ”和JDK的開發(fā)文檔“jdk-6-doc.zip ”(幫助文檔)。 Window操作系統(tǒng)下安裝時(shí),直接運(yùn)行 “jdk-6u5-windows

12、-i586-p.exe ”, 按照安裝向?qū)нM(jìn)行安裝。解開“jdk-6-doc.zip ”,得到JDK的開發(fā)文檔。21JDK 安裝與使用安裝JDK后產(chǎn)生主要的目錄結(jié)構(gòu)如下: bin目錄:Java開發(fā)工具,包括Java編譯器、解釋器、applet解釋器等 demo目錄:一些實(shí)例程序 lib目錄:Java開發(fā)類庫 jre目錄: Java運(yùn)行環(huán)境,包括Java虛擬機(jī)、運(yùn)行類庫等22JDK 安裝與使用Java開發(fā)工具包括的文件有 :javac:Java編譯器,用來將java程序編譯成Bytecode。java: Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的java應(yīng)用程序。jdb: Java調(diào)試器,

13、 用來調(diào)試java程序。javap:反編譯,將類文件還原回方法和變量。javadoc:文檔生成器,創(chuàng)建HTML文件。appletviwer:applet解釋器, 用來解釋已經(jīng)轉(zhuǎn)換成Bytecode的Java小應(yīng)用程序。23JDK 安裝與使用安裝完JDK后,必須設(shè)置環(huán)境變量PATH和CLASSPATH。 PATH環(huán)境變量指定Java工具的路經(jīng), CLASSPATH環(huán)境變量是指定類的路經(jīng)。 假如:JDK安裝在目錄: C:Program FilesJavajdk1.6.0_05bin, 用戶的Java類文件放在目錄下: D:javaExamples, 則環(huán)境變量設(shè)置如下: PATH= ;C:Prog

14、ram FilesJavajdk1.6.0_05bin; CLASSPATH= D:javaExamples24 Java集成開發(fā)環(huán)境Java開發(fā)領(lǐng)域的集成開發(fā)環(huán)境IDE:JCreator、Eclipse、MyEclipse、JBuilder、Visual J+、NetBean等。 具體選用哪種開發(fā)工具要視項(xiàng)目的具體情況而定。對于初學(xué)者而言,集成開發(fā)環(huán)境的界面不能太復(fù)雜。適合于初學(xué)者學(xué)習(xí)的,應(yīng)該是界面簡單一些,最好是不需要對開發(fā)環(huán)境做很多的設(shè)置的軟件。 25Eclipse的介紹Eclipse是一個(gè)著名的集成開發(fā)環(huán)境(Integrated Development Environment,IDE)

15、。通過它可以使用Java、C、C+等語言開發(fā)各種類型的應(yīng)用程序。在網(wǎng)站上可以下載Eclipse軟件下載完成后,將所下載的壓縮文件直接解壓到用戶自己設(shè)置的路徑下就可以使用。解壓后雙擊eclipse文件夾下面的eclipse.exe,就會啟動Eclipse262.5 Java程序類型及簡單例子Java程序有四種基本類型:應(yīng)用程序(application)小應(yīng)用程序(applet)Servlet是一種獨(dú)立于平臺和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動態(tài)Web頁面.Bean是用Java語言編寫的可重用軟件組件。 這四種類型程序的區(qū)別很少,Java的每一個(gè)程序都至少有一個(gè)類,并且Java語言的的基

16、本編程結(jié)構(gòu)對于所有類型的程序都適用。且每一種類型的程序,都要運(yùn)行在Java虛擬機(jī)JVM上。27應(yīng)用程序(applications)應(yīng)用程序(applications)是一個(gè)可以獨(dú)立運(yùn)行的程序,它只需要Java虛擬機(jī)就能夠運(yùn)行。 一個(gè)Java application中,一定要有一個(gè)類包含main方法。28例2-1第一個(gè)Java application/ FirstApp.java public class FirstApp public static void main(String args ) System.out.println(This is the first Java Applica

17、tion!); This is the first Java Application! 定義類的關(guān)鍵字 類名 必須這么寫 文檔注釋,程序運(yùn)行輸出結(jié)果:29例2-1第一個(gè)Java application的說明(1) 注釋行。Java中注釋有Java有二種注釋形式: / 一行的注釋 /* 一行或多行的注釋 */(2) 關(guān)鍵字class來聲明一個(gè)新的類,類名為FirstApp,。類定義由大括號括起來,類中封裝了類的變量(域)和類的方法。一個(gè)Java應(yīng)用程序由n(n0)個(gè)類組成,但這n個(gè)類中只能有一個(gè)是public類(公共類),且程序名必須與公共類名相同,這是本應(yīng)用程序文件起名為FirstApp.ja

18、va的原因。Java解釋器要求公共類必須放在與其同名的源文件中。(3) public static void main(String args ) 該類中定義了一個(gè)main方法,是應(yīng)用程序執(zhí)行的入口點(diǎn)。main方法所在的類叫做主類,一個(gè)應(yīng)用程序的主類只能有一個(gè)。 30例2-1第一個(gè)Java application的說明main方法署名中的符號解釋如下:public:指明為公共方法。public方法可以被類的對象使用。 static:指明方法是一個(gè)靜態(tài)方法,靜態(tài)方法是類的方法,而不是對象的方法,靜態(tài)方法可以通過類名直接調(diào)用。void:表示main方法執(zhí)行后不會返回任何值。括號中的String a

19、rgs是定義傳遞給main方法的參數(shù),參數(shù)名為args,為String 類的數(shù)組。31(4)System.out.println(This is my first Java Application!);System.out.println是在命令窗口上輸出(或打?。┮恍形谋尽ystem.out.print是在命令窗口上輸出(或打?。┪谋竞?但并不換行。(5)Java語句結(jié)束符號。每一條Java語句都由分號“;”結(jié)束。Java的一條語句可跨越多行。例如:total=a+b+c+ d+c+f+g; 例2-1第一個(gè)Java application的說明32程序的執(zhí)行分三步:編寫、編譯和運(yùn)行第一步:

20、利用文本編輯工具,編寫生成Java源程序,命名為FirstApp.java第二步:編譯。調(diào)用Java編譯器javac.exe,將源文件FirstApp.java編譯生成類FirstApp.class。 假定FirstApp.java放在D:javaExamples目錄下。 d: /改變盤符 cd javaExamples /改變當(dāng)前路徑 javac FirstApp.java /編譯第三步:運(yùn)行。調(diào)用Java解釋器java.exe對類文件FirstApp.class解釋執(zhí)行,輸出程序的執(zhí)行結(jié)果。 在MS-DOS命令行提示符“D:javaExamples”下,輸入下列命令執(zhí)行: java Fir

21、stApp 33例2-2用格式化方法printf輸出文本,并使用Eclipse編寫程序、編譯和運(yùn)行Second.java文件的代碼如下:/ Display text with printfpublic class Second public static void main( String args ) System.out.printf(You %sn%sn,print,Two lines ); 34/Addition.javaimport java.util.Scanner; public class Addition public static void main( String arg

22、s ) Scanner input=new Scanner(System.in); /聲明三個(gè)整型變量 int firstNumber; int secondNumber; int sum; / read in first number System.out.print( 輸入第一個(gè)數(shù): ); firstNumber=input.nextInt(); / read in second number System.out.print( 輸入第二個(gè)數(shù): ); secondNumber = input.nextInt(); / substract numbers sum = firstNumber+

23、 secondNumber; System.out.printf( 相加后的結(jié)果是: %dn,sum); 定義三個(gè)整型變量兩數(shù)相加顯示結(jié)果讀入兩個(gè)數(shù),送給整型變量 例2-3:要求用戶從鍵盤輸入二個(gè)整數(shù),計(jì)算這兩個(gè)整數(shù)之和,并顯示結(jié)果 35(1)Scnanner 類在包java.util中。使用時(shí)必須導(dǎo)入 import java.util.Scanner; (2)根據(jù)標(biāo)準(zhǔn)輸入流創(chuàng)建一個(gè)掃描器對象,并賦給引用變量input Scanner input=new Scanner(System.in);(3)通過調(diào)用掃描器對象input的方法nextInt(),完成接受從鍵盤輸入的一個(gè)整型數(shù)。 firs

24、tNumber =input.nextInt(); 例2-3:要求用戶從鍵盤輸入二個(gè)整數(shù),計(jì)算這兩個(gè)整數(shù)之和,并顯示結(jié)果 362.5.2 小應(yīng)用程序applet Java小應(yīng)用程序(applet)是一種嵌入在HTML文檔(即Web頁)中的Java程序。當(dāng)瀏覽器裝入一個(gè)含有applet的Web頁時(shí),applet被下載到該瀏覽器中,并開始執(zhí)行。執(zhí)行applet的瀏覽器一般稱為applet容器。 37小應(yīng)用程序applet的下載執(zhí)行過程38小應(yīng)用程序appletJava 軟件開發(fā)工具包含有appletviewer.exe,它是一個(gè)applet容器,一般用于對嵌入Web頁的 applet進(jìn)行測試。Ec

25、lipse編寫和調(diào)試Applet程序,調(diào)試的時(shí)候Eclipse會自動調(diào)用appletviewer容器,而不用嵌入到網(wǎng)頁中查看運(yùn)行效果 39編寫一個(gè)Applet程序1.從java.applet.Applet派生一個(gè)類,之前必須加上public :import java.applet.Applet;public class SimpleApplet extends Applet 2.從javax.swing.JApplet派生一個(gè)類, 之前必須加上public import javax.swing.JApplet;public class AppletName extends JApplet 40

26、java.lang.Object java.awt.Component java.awt.Container java.awt.Panel java.applet.Applet javax.swing.JAppletApplet的繼承結(jié)構(gòu)41Applet的程序結(jié)構(gòu)Java.applet.Appletpublic void init()public void destroy()public void start()public void stop()public void paint(Graphics g)編程時(shí)可按此結(jié)構(gòu)進(jìn)行這5個(gè)關(guān)鍵方法覆蓋,但并不是每個(gè)applet都要覆蓋這些方法,有些簡單

27、的applet可以一個(gè)方法也不覆蓋。42 初始態(tài)(瞬態(tài))運(yùn)行態(tài)停止態(tài)消亡態(tài)離開web頁面:極小化或裝入其他頁面,調(diào)用stop()方法重新裝入或改變頁面大小或返回Web頁面,調(diào)用start()方法關(guān)閉瀏覽器,調(diào)用destroy()方法第一次裝入,構(gòu)造applet類,調(diào)用init()方法調(diào)用start()方法Applet的生命周期43編寫一個(gè)Applet程序 public class SimpleApplet extends Appletpublic void init()public void start()public void stop()public void destroy()publi

28、c void paint(Graphics g) 44例2-4 第一個(gè)Java applet:繪制字符串第一個(gè)applet的功能是在applet顯示區(qū)域上繪制字符串“歡迎進(jìn)入 applet 程序設(shè)計(jì)”。 文件名為WelcomeApplet.java,經(jīng)過編譯后將生成WelcomeApplet.class。 由于Java小應(yīng)用程序是不能直接運(yùn)行的,必須嵌入到網(wǎng)頁中,要使用applet容器才能夠運(yùn)行。因此我們將小應(yīng)用程序WelcomeApplet.class嵌入在HTML文件WelcomeApplet.html中。 45小應(yīng)用程序WelcomeApplet.java的代碼如下:import jav

29、a.awt.Graphics; / 導(dǎo)入類 Graphicsimport javax.swing.JApplet; / 導(dǎo)入類 JApplet public class WelcomeApplet extends JApplet / draw text on applet background public void paint( Graphics g ) super.paint( g ); g.drawString( 歡迎進(jìn)入 applet 程序設(shè)計(jì), 25, 25 ); 調(diào)用基類方法 paint,刷新 applet顯示區(qū)域46HTML文檔文件WelcomeApplet.html的代碼如下:

30、 47使用支持Java的微軟的Internet Explorer瀏覽器和小應(yīng)用程序查看器AppletViewer這兩個(gè)applet容器,來執(zhí)行WelcomeApplet.html的顯示結(jié)果 :48例2-4 第一個(gè)Java applet的說明(1)import java.awt.Graphics; 導(dǎo)入javax.swing包中的Graphics類。Graphics類使Java applet能繪制各種圖形如直線、矩形、橢圓以及字符串等。(2)import javax.swing.JApplet; 導(dǎo)入javax.swing包中的JApplet類。 (3) public class Welcome

31、Applet extends JApplet 是applet類的聲明。定義了一個(gè)applet類名為 WelcomeApplet,關(guān)鍵字extends表示繼承,即表示W(wǎng)elcomeApplet是超類JApplet的子類,它擁有JApplet類的所有屬性和方法,并且在WelcomeApplet類可以重寫這些方法并擴(kuò)展新的功能。49例2-4 第一個(gè)Java applet的說明(4) public void paint( Graphics g )是applet的paint方法的聲明。paint方法由applet容器調(diào)用執(zhí)行。一個(gè)applet的方法有5個(gè):init、strat、paint、stop和de

32、stroy(此次序也是applet容器調(diào)用方法的執(zhí)行次序),這些方法的含義請參見Java文檔中的JApplet類的說明。(5) g.drawString( 歡迎進(jìn)入 applet 程序設(shè)計(jì), 25, 25 );通過引用變量調(diào)用Graphics對象的drawString方法,在 applet上指定的像素位置繪制一個(gè)字符串。drawString方法有三個(gè)參數(shù),第一個(gè)參數(shù)是要繪制的字符串;第二個(gè)和第三個(gè)參數(shù)是要繪制的字符串的左下角在applet上的平面坐標(biāo)(25,25),它們也是以像素為單位。50例2-4 第一個(gè)Java applet的說明(6)是在HTML文件中嵌入小應(yīng)用程序WelcomeAppl

33、et.class,并定義該applet在applet容器中顯示區(qū)域:以像素為單位的寬度和高度。在HTML文件中嵌入Java小應(yīng)用程序應(yīng)使用 標(biāo)志,這個(gè)標(biāo)志包含幾個(gè)參數(shù):CODE=“”:用來指出要嵌入的Java小應(yīng)用程序名稱。WIDTH=x:用來指定Java小應(yīng)用程序的寬度;HEIGHT=x:用來指定Java小應(yīng)用程序的高度。51例2-4 第一個(gè)Java applet的說明(7)WelcomeApplet的編譯和運(yùn)行假設(shè)WelcomeApplet.java、WelcomeApplet.class和WelcomeApplet.html放在文件夾“D:javaExamples”下。通過兩種方法來運(yùn)行

34、Java小應(yīng)用程序:(a)使用IE瀏覽器,打開IE瀏覽器,在地址欄上輸入命令:djavaExamplesWelcomeApplet.html(b)使用Java的小應(yīng)用程序查看器AppletViewer。Eclipse編寫和調(diào)試Applet程序,調(diào)試的時(shí)候Eclipse會自動調(diào)用appletviewer容器,而不用嵌入到網(wǎng)頁中查看運(yùn)行效果 52例2-5 第二個(gè)Java applet:繪制字符串和圖形第二個(gè)applet的功能是在applet顯示區(qū)域上繪制字符串“歡迎進(jìn)入 applet 程序設(shè)計(jì)!”并且在此字符串的上方和下方繪制兩條直線。類WelcomeLines從超類JApplet繼承。在pain

35、t方法中,兩次調(diào)用Graphics畫直線drawLine方法, 一次調(diào)用Graphics畫字符串drawString方法。畫直線drawLine方法需要四個(gè)參數(shù),表示直線在applet上的起點(diǎn)坐標(biāo)(x1,y1)和終點(diǎn)坐標(biāo)(x2,y2), 坐標(biāo)值均以像素為單位。 53/WelcomeLines.javaimport java.awt.Graphics; / import class Graphicsimport javax.swing.JApplet; / import class JAppletpublic class WelcomeLines extends JApplet / draw l

36、ines and a string on applet background public void paint( Graphics g ) / call superclass version of method paint super.paint( g ); / draw horizontal line from (15, 10) to (210, 10) g.drawLine( 15, 10, 180, 10 ); / draw horizontal line from (15, 30) to (210, 30) g.drawLine( 15, 30, 180, 30 ); / draw

37、String between lines at location (25, 25) g.drawString( 歡迎進(jìn)入 applet 程序設(shè)計(jì)!, 25, 25 ); / end method paint / end class WelcomeLines54WelcomeLines.html的代碼如下:例2-5 第二個(gè)Java applet:繪制字符串和圖形552.5.3 簡單輸入和輸出1. System.out.printf()方法進(jìn)行格式化的輸出 表2-1 printf方法中常用的格式說明符格式說明符含義示例%s輸出字符串,對應(yīng)的參數(shù)類型為String。This is a string%

38、c輸出字符.對應(yīng)的參數(shù)類型為chara%d輸出整形值,對應(yīng)的參數(shù)類型為整形123%f輸出浮點(diǎn)型值。對應(yīng)的參數(shù)類型為分 float或 double12.34%b輸出布爾型值。對應(yīng)的參數(shù)類型為booleantrue562.應(yīng)用Scanner類進(jìn)行輸入 Scanner類在包javax.until中,用import語句導(dǎo)入 方法含義int nextInt( )輸入int 整型數(shù)據(jù)* next*( )輸入* 類型的數(shù)據(jù),其中*為基本數(shù)據(jù)類型byte、short、int、long、float、double、boolean。String nextLine() 輸入一行字符串String next() 輸入一

39、個(gè)單詞表2-2 Scanner常用的輸入數(shù)據(jù)方法 2.5.3 簡單輸入和輸出573.利用對話框JOptionPane進(jìn)行輸入和輸出JOptionPane類在包javax.swing中,用import語句導(dǎo)入。 import javax.swing.JOptionPane; JOptionPane類提供靜態(tài)方法showInputDialog()用于輸入。 String showInputDialog(Objectmessage)JOptionPane類提供靜態(tài)方法showMessageDialog()用于輸出. String showMessageDialog(ComponentparentCo

40、mponent, Objectmessage, Stringtitle, int messageType)2.5.3 簡單輸入和輸出58例2-6Java application:二個(gè)整數(shù)相減 此程序利用對話框,要求用戶從鍵盤輸入二個(gè)整數(shù),計(jì)算這兩個(gè)整數(shù)之差,并顯示結(jié)果。59/Subtraction.cppimport javax.swing.JOptionPane; /導(dǎo)入類JOptionPanepublic class Subtraction public static void main( String args ) String firstNumber; String secondNumber; int number1; int number2; int sub; firstNumber = JOptionPane.showInputDialog( 輸入第一個(gè)數(shù) ); secondNumber = JOptionPane.showInputDialog( “輸入第二個(gè)數(shù) ”); number1 = Integer.parseInt( firstNumber );

溫馨提示

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

評論

0/150

提交評論