面向對象的程序設計課件_第1頁
面向對象的程序設計課件_第2頁
面向對象的程序設計課件_第3頁
面向對象的程序設計課件_第4頁
面向對象的程序設計課件_第5頁
已閱讀5頁,還剩378頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第一章HelloJavaJava語言及其家族的發(fā)展史;主要的運行平臺;程式運行環(huán)境的安裝;一個簡單的java程式及其運行;Java語言基礎知識;面向對象程式設計思想。2Historyofjava--24頁Machinelanguages:stringsofnumbers

Assemblylanguages:English-likeabbreviations

High-levellanguages:likeeverydayEnglishandmathematicalnotations

C,C++andjava+1300042774

+1400593419

+1200274027loadbasepay

addoverpay

storegrosspaygrosspay=basepay+overtimepay3DifferencesinC,C++andjava不再有#include

和#define

等於處理功能;不再有structure,union及typedef;不再有函數(shù)、不再有指針、不再有多重繼承(inherit);不再有goto;不再有操作符重載(OperatiorOverloading);取消自動類型轉換,要求強制轉換。結論:Java=“C++”-”複雜性和奇異性”+“安全性和可移植性”4Historyofjava1991:Oaklanguage;1994:OaknamedJava;1995:Java正式發(fā)佈,Microsoft,IBM,Netscape,NovellApple,DEC紛紛購買使用權.1996:Sun成立Javasoft分公司5主要的運行平臺J2EE(Java2EnterpriseEdition)—企業(yè)計算J2SE(Java2StandardEdition)—桌面計算J2ME(Java2MicroEdition)—嵌入計算6程式運行環(huán)境的安裝—J2SE運行檔“jdk-1_5_0_06-windows-i586-p.exe”,直到安裝成功。運行檔“UltraEdit_11.101_SC(1).exe”安裝java根源程式編寫工具。打開UltraEdit_11.101_SC(1).exe,我們編寫一個簡單的java小程式。7FirstPrograminJava:PrintingaLineofText//Text-printingprogram.publicclasswelcome{

//mainmethodbeginsexecutionofJavaapplicationpublicstaticvoidmain(Stringargs[]){System.out.println("WelcometoJavarogramming!");}//endmethodmain}//endclassWelcome8程式運行環(huán)境的安裝安裝完JDK後,

命令行輸入cmd程式運行過程是:

先編譯javacWelcome.java->

成功后會生成Welcome.class可執(zhí)行檔,我們再輸入javaWelcome即可執(zhí)行這個檔?!踩鐖D〕9程式運行環(huán)境的安裝如果發(fā)生錯誤,請檢查環(huán)境變數(shù)有沒有設置好。先觀察一下安裝jdk的目錄結構:C:\javabinlibclasses.zipjavacjavaappletviewer用戶類檔所在目錄myclasses當前目錄10程式運行環(huán)境的安裝環(huán)境變數(shù)具體設置

方法是:EditPathVariable=\jdkinstallfold\bin;11程式運行環(huán)境的安裝AddCLASSPATHVariable

=.;\jdkinstallfold\lib;

\myjavaprogramclass12Java語言的運行時環(huán)境:java虛擬機25頁JavasourcecodeMachinecodeJavabytecodeBytecodeinterpreterBytecodecompilerJavacompiler13JDK1.2(~V1.3.0,V1.3.1,V1.4.2,V1.5.0)Jcreator:圖形化的Java程式的編輯環(huán)境

Forte:Sun功能強大的集成開發(fā)環(huán)境

Jbuilder:圖形化,客戶端與伺服器端

WebLogic:適於開發(fā)伺服器端

VisualAge:與Webshpere結合,也適於客戶端

Symantec的VisualCafe、Oracle的

JDeveloper和OracleApplicationServerJava常用開發(fā)環(huán)境14例題1.1//********************************//Lincoln.javaAuthor:Lewis/Loftus////Demonstratesthebasicstructureofajavaapplication//**********************************************************PublicclassLincoln{////Printsapresidentialquote.//Publicstaticvoidmain(String[]args){system.out.println(“AquotebyAbrahamLincoln”);system.out.println(“whateveryouare,beagoodone.”);}}Java應用程式舉例15輸出結果:

AquotebyAbrahamLincolnWhateveryouare,beagoodman注意:

1:程式的開始幾行是注釋,由符號//開始到一行結束

2:所有的Java程式都有一個main方法,程式的執(zhí)行從main方法開始,main中包含的語句按照順序一條一條地執(zhí)行,直到這個方法結束。164.1注釋

注釋是獨立於代碼的,應當表現(xiàn)程式員編寫程式的初衷或者意圖。注釋的內容可以是任何文本,注釋將被電腦忽略,不影響程式的執(zhí)行。Java有三種注釋的方式:1。//

注釋內容由//一直到此行結束2。/*和*/定義一個注釋塊3。/**開始,*/結束這種注釋方法可用來自動產(chǎn)生文檔17識別字和保留字--20頁識別字(Identifier):以字母(letter),下劃線(underline)(_),美元符($)開始的一個字元序列,後面可以跟字母,下劃線,美元符,數(shù)字(number)。Java對大小寫敏感,識別字命名應該具有描述性和可讀性。例如:Identifier,userName,User_Name,_sys_val,$change,2mail,room#,classrightrightwrong18識別字和保留字--20頁保留字(reservedword):特殊的有意義的識別字。abstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while19空白符--22頁空白符用於分隔程式中的單詞和符號。合理使用空白符可以使程式更加可讀和易懂。見例1.2,1.320面向對象編程classCar{intcolor_number;intdoor_number;intspeed;

voidbrake(){…}voidspeedUp(){…};voidslowDown(){…}}

電腦中的對象的原型

現(xiàn)實生活中的對象21類(class)和對象(object)類是描述對象的“基本原型”,類沒有存儲空間。對象是類的一個實例,每個對象都有自己的存儲空間,它由一組結構化的數(shù)據(jù)(variables)和在其上的一組操作(methods)構成。variablesmethods22封裝(encapsulation)什麼是封裝?封裝把對象的所有組成部分組合在一起,封裝定義程式如何引用對象的數(shù)據(jù)。私有數(shù)據(jù)

方法封裝實際上是將類的數(shù)據(jù)隱藏起來,控制用戶對類的修改和訪問數(shù)據(jù)的程度。

方法數(shù)據(jù)對象A對象B公有數(shù)據(jù)23繼承(inheritance)子類是作為另一個類的擴充或修正所定義的一個類.bicycle(superclass)父類MountainbikesRacingbikesTandembikessubclass(子類)24繼承(inheritance)繼承是子類利用父類中定義的方法和變數(shù)就像它們屬於子類本身一樣.一個類可以通過繼承由其他類產(chǎn)生,而一個類本身還可以派生出更多的類,這樣就建立起類層次結構。classCar{intcolor_number;intdoor_number;intspeed;

push_break(){…}add_oil(){…}}

classTrash_Car

extendsCar{doubleamount;fill_trash(){…}}25多態(tài)性(Polymorphism)多態(tài)性指用一種統(tǒng)一的方式引用有繼承關係的不同類型的對象。Java是一種面向對象編程語言,對象是java程式中最基本的實體。本課程的重點就是學習java的面向對象程式設計思想。學習方法:認真聽課,多上機實踐,及時鞏固。26課後自練:安裝java編程環(huán)境jdk1.5,並正確配置環(huán)境變數(shù)。鍵入教材17頁例1.1程式並在java虛擬機上編譯執(zhí)行。試在你的機器上練習36頁的pp1.1,pp1.2,pp1.7,pp1.8.主要內容1:字串2:變數(shù)與賦值3:基本數(shù)據(jù)類型4:運算式5:數(shù)據(jù)類型轉換6:交互程式7:圖形8:JavaApplet9:繪圖282.1字串字元字元是指用單引號括起來單個字元,這裏的字元不是指占1個位元組的ASCII字元,而是指占2個位元組的Unicode字元。因為Unicode被設計用來處理現(xiàn)在世界上所有書面語言中的字元,所以一個漢字也是被當作一個字元來處理的。29

字串指的是字元的序列,有兩種類型的字串:一種是創(chuàng)建以後不需要改變的,稱為字串常量,在Java中,String類用於存儲和處理字串常量;另外一種字串是創(chuàng)建以後,需要對其進行改變的,稱為字串變數(shù)。一個字串是一個對象,由String類定義。在Java中常以雙引號作為字串的定界符。字串30

System.out.println(“whareveryouare,beagoodman.”);注意:

System.out對象代表一個輸出設備或者檔,默認的輸出設備是顯示器螢幕。2.1.1println和print方法println方法為我們執(zhí)行了一個服務,向輸出設備發(fā)送一個println消息,請求輸出某個文本消息。Println與print的相同與區(qū)別相同點:都是向輸出對象發(fā)送一個消息,請求輸出某中消息不同點:println在輸出消息後換行,print保持游標在當前位置31當輸出長度大於一行的字串時,使用字串拼接。方法:使用字串拼接運算符號“+”將兩個字串拼接起來例如:“Theonlystupidquestionis”+”theonethat’snotasked.”2.1.2字串拼接輸出結果:Theonlystupidquestionistheonethat’snotasked.注意:如何區(qū)分符號“+”的作用如果“+”運算符的兩個運算元中至少有一個是字串,則執(zhí)行字串拼接322.1.3轉義序列

在Java中使用轉義序列來表示特殊的字元。

通常一個轉義序列以反斜杠(\)開頭,表明該字符或者後續(xù)字元應當用特殊的方式來解釋。如輸出:’’則\”33342.2變數(shù)與賦值2.2.1變數(shù)變數(shù)代表保存數(shù)據(jù)的記憶體單元,變數(shù)名是記憶體單元的符號地址。一行變數(shù)聲明由類型說明符及後續(xù)的變數(shù)名列表組成。每一個變數(shù)可以在聲明時用指定的運算式進行初始化。如果聲明中使用了final修飾符,則所聲明的識別字命名為常量,並且一旦賦值就不可以更改。一行變數(shù)聲明語句可以同時聲明多個具有相同類型的變數(shù)。聲明同時可以根據(jù)需要對變數(shù)進行初始化。35Java中使用賦值運算符“=”為變數(shù)賦值基本格式是:

識別字=運算式過程:基本賦值語句用賦值運算符號將運算式的計算結果保存到指定的識別字所代表的記憶體單元中,該識別字代表的記憶體單元通常是一個變數(shù)。

2.2.2賦值語句注意:不允許將一個值賦給一個類型不一致的變數(shù)。例如:

sides=10;36常量:

常量的值在整個程式執(zhí)行過程中是不能修改的。與變數(shù)不同的是常量在存在期間保存一個特定的值。2.2.3常量在Java中使用保留字fianl來定義一個識別字為常量。通常用大寫字母命名一個常量以區(qū)別普通變數(shù),並且常量名的各單詞之間用下劃線分隔。例如:finalintMAX_INT=100

常量初始化賦值後,如果試圖修改常量的值,則編譯器會產(chǎn)生錯誤資訊。

372.3基本數(shù)據(jù)類型分四大類:邏輯、字元、整數(shù)和浮點共8種基本數(shù)據(jù)類型邏輯類型:boolean字元類型:char整數(shù)類型:byte,short,int和long浮點類型:float和double

各種數(shù)值類型的差別在於保存不同數(shù)據(jù)類型的數(shù)時佔用記憶體空間大小不同,由此決定了不同數(shù)據(jù)類型所能表示的數(shù)的取值範圍。38在Java編程語言中有四種整數(shù)類型,每種類型可使用關鍵字byte,short,int和long中的任意一個進行聲明。所有Java編程語言中的整數(shù)類型都是帶符號的數(shù)字,不存在無符號整數(shù)。整數(shù)類缺省為int類型,如在其後有一個字母“L”表示一個long值(也可以用小寫“l(fā)”)。由於小寫“l(fā)”與數(shù)字“1”容易混淆,因而,建議大家採用大寫“L”2.3.1整數(shù)類byte,short,int,long四種整數(shù)類型的存儲空間長度、能表示的範圍是不一樣的,具體範圍見後表。3940

在Java編程語言中有兩種浮點類型:float和double。

如果一個數(shù)包括小數(shù)點或指數(shù)部分,或者在數(shù)字後帶有字母F或f(float)、D或d(double),則該數(shù)為浮點數(shù)。如果不明確指明浮點數(shù)的類型,浮點數(shù)缺省為double。下麵是幾個浮點數(shù):

3.14159

(double型浮點數(shù))

6.56f

(float型浮點數(shù))

2浮點類double,float

在兩種類型的浮點數(shù)中,float為32位(單精確度),double為64位(雙精度)。也就是說double類型的浮點數(shù)具有更高的精度。412.3.2字元型字元型是一種電腦使用和管理的基本數(shù)據(jù)類型。單個字元可以作為一項數(shù)據(jù)。

在Java中,用單引號表示字元常量。字串常量用雙引號作為定界符號。而String不是Java的基本數(shù)據(jù)類型,而是一個類。注意:一個數(shù)字作為一個字元和作為一個數(shù)值的差別。Java使用16為Unicode字元集來表示字元。422.3.3布爾型Java使用boolean定義布爾變數(shù)。布爾型變數(shù)包括兩種有效值:true和false

布爾變數(shù)通常用於判斷一個具體條件是否為真,也可以用於標識任何一種有兩種狀態(tài)的情況。

一個布爾型值不能夠轉換為其他任何一種類型的值,反之亦然。432.4運算式運算式由一個以上的運算符和運算元按一定規(guī)則組合而成,通常用於完成計算。2.4.1算術運算符算術運算符包括加號(+)、減號(-)、乘號(*)、除號(/)、取模(%)、自增運算符(++)、自減運算符(--)等。在算術運算中,有以下值得注意的地方:(1)算術運算符的原則是先乘除、再加減,括弧優(yōu)先。(2)整數(shù)除法會直接砍掉小數(shù),而不是進位44(3)與C語言不同,對取模運算符%來說,其運算元可以為浮點數(shù)。如:37.2%10=7.2。(4)Java也用一種簡寫形式進行運算,並同時進行賦值操作。例如,為了將10加到變數(shù)x,並將結果賦給x,可用:x+=10。(5)Java對加運算符進行了擴展,使它能夠進行字串的連接,如"abc"+"def",得到串"abcdef"。

45(6)首碼++、--與尾碼++、--的區(qū)別:

++i(首碼++)在使用i之前,使i的值加1,因此執(zhí)行完++i後,整個運算式和i的值均為i+1;

i++(尾碼++)在使用i之後,使i的值加1,因此執(zhí)行完i++後,整個運算式的值為i,而i的值變?yōu)閕+1。

--i在使用i之前,使i的減1,因此執(zhí)行完--i後,整個運算式和i的值均為i-1;

i--在使用i之後,使i的減1,因此執(zhí)行完i--後,整個運算式的值為i,而i的值變?yōu)閕-1。462.4.2運算符優(yōu)先順序算術運算符遵循代數(shù)運算相同的運算規(guī)則。乘、除法和求餘運算符有相同的運算優(yōu)先順序,優(yōu)先順序別高於加減法。具有相同優(yōu)先順序別的運算符按照從左到右的順序執(zhí)行。在運算式中,可以使用括弧來強制性改變運算符的優(yōu)先順序。當括弧嵌套使用時,運算式的計算從嵌套最內層的括弧開始。賦值運算符的運算優(yōu)先順序比算術運算符的優(yōu)先順序別低。注意引用不改變變數(shù)的值:如:sum=count+totalsum=sum+1

47482.5數(shù)據(jù)類型轉換2.5.1類型轉換的安全性基本數(shù)據(jù)類型間的類型轉換可分為兩類:

擴展類型轉換和壓縮類型轉換

擴展類型轉換是安全的類型轉換,因為在進行類型轉換時將使用相等的或者更大的存儲空間來保存類型轉換後的值,不會丟失資訊。

壓縮類型轉換是使用更少的存儲空間來保存類型轉換後的值,某些資訊被捨棄。49在Java中,數(shù)據(jù)轉換的方式有三種:1:賦值類型轉換。當將一個類型的變數(shù)賦給另一種類型的變數(shù)時,該值將會被轉換為新類型的值。只能進行擴展類型轉換。例如:money=dollars2:低級別類型向高級別類型的自動類型轉換當某種運算符為了進行運算需要修改其運算元類型時,將進行自動類型轉換。2.5.2數(shù)據(jù)類型的轉換技術50

強制類型轉換的格式是:(數(shù)據(jù)類型)變數(shù)名

經(jīng)過強制類型轉換,將得到一個在“()”中聲明的數(shù)據(jù)類型的數(shù)據(jù),該數(shù)據(jù)是從指定變數(shù)所包含的數(shù)據(jù)轉換而來的。值得注意的是,指定變數(shù)本身不會發(fā)生任何變化。將佔用位數(shù)較長的數(shù)據(jù)轉化成佔用位數(shù)較短的數(shù)據(jù)時,可能會造成數(shù)據(jù)超出較短數(shù)據(jù)類型的取值範圍,造成“溢出”。如:

longi=10000000000;intj=(int)i;

因為轉換的結果已經(jīng)超出了int型數(shù)據(jù)所能表示的最大整數(shù)(4294967295),造成溢出,產(chǎn)生了錯誤。3:強制類型轉換512.6交互程式Scanner類是標準的Java類庫的類,提供了一些從不同數(shù)據(jù)源讀取各種類型數(shù)據(jù)的方法。首先必須創(chuàng)建Scanner類對象以便應用其方法。

Scannerscan=new

Scanner(System.in)Scanner類的next方法將下一個輸入資料項目作為字串讀入並返回該字串。如果輸入數(shù)據(jù)由一系列用空格分隔的單詞組成,每次調用next函數(shù)將返回一個單詞。Nextline方法讀取所有數(shù)據(jù)直到輸入行結束,並將所讀的數(shù)據(jù)作為一個字串返回。

例題2.8

例題2.9522.7圖形基本概念像素:構成一副圖形的基本元素。通過保存每個像素的顏色值來保存一副完整的圖形。數(shù)位化以後的圖形可以通過重組像素點來重建,表示圖形用的像素越多,圖形越清晰和真實。表示圖形所用的像素點數(shù)稱為圖形的解析度。顯示器所能顯示的像素點數(shù)稱為顯示器解析度。

53

圖像的每個像素點都能映射到顯示器螢幕上的像素點上。與傳統(tǒng)座標相比較,java使用一套相對簡單的坐標系統(tǒng)。座標的圓點在繪圖區(qū)的左上角,所有的可見座標都是正值。Java語言使用一套相對簡單的坐標系統(tǒng),所有的值都是正的。2.7.1坐標系統(tǒng)YX(0,0)11240(112,40)542.7.2顏色表示方法黑白圖形的一個像素用1位二進位位表示(white=0,black=1)彩色圖片需要更多資訊,因此產(chǎn)生了一些方法來表示它。三基色表示法。每種顏色可以由三種基本顏色表示出來:

紅色(Red),綠色(Green),藍色(Blue)Java用三個數(shù)字表示顏色值,稱為RGB

用一個位元組(8位)保存一個基色值,取值範圍是0—255

一個基色值可以表示這種基色的256級亮度。每種基色的亮度級的合成決定像素點的最終顏色。55Java使用Color類(包含在java.awt中),定義和管理顏色,Color類的每個對象代表一種顏色。Color類的每個對象代表一種顏色,該類創(chuàng)建了幾個實例用於提供一組預定義的顏色,如下所示:ObjectColor.blackColor.blueColor.cyanColor.orangeColor.whiteColor.yellowRGBValue0,0,00,0,2550,255,255255,200,0255,255,255255,255,0562.8Javaapplet

Java程式分為兩類:Java小應用程式(javaapplet)和Java應用程式。Java應用程式是一個擁有主方法的單獨程式。Javaapplet是一種可以通過Web軟體下載執(zhí)行的可執(zhí)行程式。2.8.1Javaapplet的基本概念使用Javaapplet是為了將Javaapplet嵌入HTML文檔,通過網(wǎng)路傳送並使用流覽器執(zhí)行。Javaapplet可以通過JDK提供的appletviewer,來解釋執(zhí)行。Javaapplet沒有主方法。但是還有一些特殊的方法用於構建applet。57paint方法在applet繪圖的時候將自動調用,繪製圖像內容。Pain方法接收的參數(shù)是一個Graphics對象。一個Graphics對象定義了用於交互的繪圖上下文環(huán)境,該環(huán)境將作為整個applet窗口環(huán)境。Graphics類有繪圖的方法提供給用戶使用。58Javaapplet在使用之前必須編譯成位元組碼格式,然後將位元組碼鏈接到一個HTML檔並通過Web進行傳送,一旦達到目的地,嵌入到Web流覽器中的Java解釋器將用於執(zhí)行Javaapplet.

要使一個Javaapplet能通過Web傳送並由Web流覽器執(zhí)行,必須在超文本標記語言文檔中引用applet。。2.8.2利用Web執(zhí)行Java

applet59<html><head><title>TheEinsteinApplet</title></head><body><appletcode="Einstein.class"width=350height=175></applet></body></html>注意:1:applet標記規(guī)定存放在Einstein.class檔中的位元組碼由網(wǎng)路進行傳送。在電腦中執(zhí)行。同時規(guī)定了applet的高度和寬度。2:applet引用的是位元組碼檔,而不是根源程式。602.9繪圖

Java提供許多支持繪圖功能的類,Graphics類其中之一。該類包含在java.awt包中,主要提供了各種方法繪製圖形,包括線段、矩形和橢圓等。Graphics類的方法允許指定是否需要填充圖形。一個非填充的圖形只顯示圖形的輪廓線,圖形是透明的,可以看到底層的任何圖形。一個填充的圖形邊界是填實的。繪圖主要方法見P65611:畫直線XY102015045page.drawLine(10,20,150,45);page.drawLine(150,45,10,20);or622:畫矩形XYpage.drawRect(50,20,100,40);502010040633:畫橢圓XYpage.drawOval(175,20,50,80);175205080boundingrectangle64每一個繪圖組件上有一個背景色。每一個圖形上下文環(huán)境有一個當前的前景色。二者都可以清晰地看到。可以由Graphics類的setColor方法設置前景色,由setBackground方法設置背景色。見例題2.11

1:外接矩形用於定義曲線圖形的位置和大小。2:一段弧可以看成橢圓的一段,要畫一段弧,需要指定這段弧所屬的橢圓和要畫的該橢圓上的弧段。3:弧段的起點由起始角定義,結束點由弧角定義。注意:65建立對象String類包Random類Math類主要內容格式化輸出枚舉型包裝類組件和容器嵌套的面板圖像663.1建立對象

在Java中,變數(shù)名代表一個基本數(shù)據(jù)類型值或者是一個對象.

類名能被用於定義對象變數(shù)。

Stringtitle;上述語句並不創(chuàng)建任何對象。一個對象引用變數(shù)不能保存對象本身,而是保存該對象的地址。對象本身必須單獨創(chuàng)建。67通常我們使用new關鍵字來建立一個對象。建立一個對象稱為對相應“類”的實例化或對象化。Stringtitle=newString("JavaSoftwareSolutions");調用了String的構造函數(shù),這一函數(shù)建立一個String類型的對象title,並對其初始化為“JavaSoftwareSolutions”

使用new運算符返回新對象的地址。68分析下麵兩條聲明語句:經(jīng)過聲明的變數(shù)經(jīng)過初始化後:“JamesGosling"namenum142intnum;Stringname;num=42;name=newString(“JamesGosling”);69類對象初始化以後,可以使用”.”運算符來引用對象的方法。該運算符直接跟在對象名後,接著給出被調用的方法。

count=title.length()有些方法完成後產(chǎn)生返回值,有些方法則不產(chǎn)生返回值,方法的返回值可以用於運算式或者任務。一個方法的調用可以看成是讓對象執(zhí)行某種服務。70在使用一個對象引用變數(shù)之前,必須完成初始化,使之指向一個有效的對象,不然系統(tǒng)將發(fā)出錯誤資訊??梢詫ο笠米償?shù)設置為null,表示一個對象引用變數(shù)不指向任何對象。使用new運算符建立對象後,將調用類的構造方法初始化新對象。構造方法是一種特殊的方法,方法名與類名相同。幾點說明:

對象引用變數(shù)保存的是對象的地址,可以看成是指向對象存儲單元的指針。71在聲明時初始化對象,可以將聲明對象引用變數(shù)和創(chuàng)建對象合併。如:

Stringtitle=newString(“Java”);對於String對象,無須顯式地使用new運算符以及調用構造方法來創(chuàng)建對象,如:

StringCity=“BeiJing”;

723.1.2別名機制對於簡單數(shù)據(jù)類型:賦值語句將num1中的值賦值一份賦給num2變數(shù)。num138num296Before:num2=num1;num138num238After:73對於對象類型:賦值語句複製的僅僅的對象的引用地址。name2=name1;name1name2Before:"SteveJobs""SteveWozniak"name1name2After:"SteveJobs"74別名——多個對象引用變數(shù)指向同一個對象。多個對象引用變數(shù)互為別名。一個對象能夠通過多個對象引用變數(shù)進行訪問。別名機制非常有用,但是要小心處理。當利用其中任意一個引用改變其所指的對象時,同時也使所有的引用指向的對象發(fā)生了改變。75垃圾收集當對象的最後一個引用丟失,它不能被程式再使用。這個對象沒有任何使用價值,成為垃圾。Java自動執(zhí)行垃圾對象回收,將其所占的記憶體空間釋放給系統(tǒng),以便資源重用。76

一個String對象一旦建立後,它的長度和值是不可改變的。因而稱一個String對象是不可變的。String類提供了方法(P77)可以返回新的String對象,這些新對象是原來對象字元值修改的結果。但是可以利用String類提供的方法返回新的String對象,這些新對象是對原來對象字串修改的結果。

3.2String類77字元索引String類方法使用字元索引的概念處理字串。一個字元可以由該字元在字串中的位置(即索引)來確定?!八饕睆?開始,往右遞增。例題3.1783.3包類庫由一組支持程式開發(fā)的類組成。Java標準類庫是開發(fā)環(huán)境的一部分。有些類不是Java語言的內建部分,而是Java標準類庫類庫可以從第三方軟體商獲得,也可以自己編寫。類庫由幾組相關的類族構成,成為JavaAPI(應用程式介面)。Java標準類庫的類被劃分為包,每個類屬於一個具體的包。見P80圖3.279PackagesPackagejava.langjava.appletjava.awtjavax.swingjava.utiljavax.xml.parsersPurposeGeneralsupportCreatingappletsforthewebGraphicsandgraphicaluserinterfacesAdditionalgraphicscapabilitiesNetworkcommunicationUtilitiesXMLdocumentprocessing80編寫Java程式時,java.lang包中的類自動成為可用類如果要使用其他包中的類,則必須完整地聲明相應類的引用。

java.util.Scanner或者使用import導入該類,然後使用該類名。

importjava.util.Scanner;如果來自兩個包的兩個類的名稱相同,則要在程式中寫出完整的類引用名。import聲明可以使用”*”,表示程式可能使用指定包中的任何類。例如:importjava.util.*3.3.2Import聲明813.4Randam類該類是java.util包中的類,模擬一個偽亂數(shù)發(fā)生器。一個偽亂數(shù)發(fā)生器通過執(zhí)行複雜計算來產(chǎn)生模擬一個亂數(shù)。偽亂數(shù)發(fā)生器基於一個種子,在執(zhí)行一系列複雜計算後,將會產(chǎn)生模擬亂數(shù)。

P82圖3.3列出了Random類的部分方法。

nextInt方法:無參數(shù)產(chǎn)生的亂數(shù)分佈在整個int類型的取值範圍。82有參數(shù)n

產(chǎn)生一個分佈在0-n-1區(qū)間的亂數(shù)。n是得到返回值的個數(shù)??梢酝ㄟ^在亂數(shù)上加減一個適當?shù)闹祦韺崿F(xiàn)。nextFloat方法返0.0-1.0區(qū)間的浮點亂數(shù)??梢話裼贸朔▽Ω↑c亂數(shù)進行比例放大,截斷小數(shù)後轉換成int型亂數(shù)。然後採用與整型亂數(shù)相同的處理方法將亂數(shù)取值區(qū)間移動到所需要的區(qū)間。例題3.2833.5Math類Math類定義在Java標準類庫的java.lang包中,提供了大量用於計算的基本數(shù)學函數(shù)。Math類的所有方法都是靜態(tài)方法(Static方法,類方法),靜態(tài)方法可以用類名直接調用,不需要事先實例化類的對象。

value=Math.cos(90)+Math.sqrt(delta);Math類的方法的返回值可以根據(jù)需要用於運算式。

P83圖3.4列出了部分方法。

例題3.3843.6格式化輸出NumberFormat類該類提供了通用的數(shù)據(jù)格式化能力,NumberFormat對象不是用new運算符實例化,而是通過類名調用靜態(tài)方法來請求執(zhí)行。該類的getCurrencyInstance

方法和getPercentInstance方法分別用於返回格式器對象用於格式化貨幣值和格式化百分率值。

NumberFormat類和DecimalFormat類用於格式化資訊,使得顯示出來的資訊格式編排清晰、合理。這兩個類是定義在Java標準類庫的類,定義在java.text包中。85通過格式器對象調用格式化方法,將返回一個String型的字串,該字串表示格式化後的數(shù)。例題3.4DecimalFormat類該類需要用new運算符創(chuàng)建對象。該類的構造方法接收一個String型參數(shù),該參數(shù)確定了控制格式化處理的模式。調用format方法可以格式化一個具體的值。還可以根據(jù)需要調用applyPattern方法,改變格式化對象的模式。

例題3.5(P87)86除了print方法和println方法。System類提供了printf方法該方法允許用戶列印出含有數(shù)值的格式字串。它的第一個參數(shù)值指定格式字串,其餘的參數(shù)指定將插入到格式字串中的數(shù)值。

System.out.printf(“ID:%5d\tName:%s”,id,name)在java中添加printf方法以支持遺產(chǎn)系統(tǒng)的移植。3.6.3prinft方法87Java提供一種枚舉型數(shù)據(jù)類型,用於聲明枚舉型變數(shù)。枚舉型聲明通過列舉出變數(shù)所有可能的取值,為枚舉變數(shù)建立所有的枚舉值。枚舉值可以定義為所希望的任何識別字。

enumSeason{winter,spring,summer,fall};

枚舉變數(shù)的枚舉值沒有個數(shù)的限制。定義了枚舉類型,就可以用該類型聲明枚舉變數(shù)。

Seasontime;

枚舉值通過枚舉類型名訪問。

例:time=Season.spring;3.7枚舉型88枚舉型的每個枚舉值在Java內部保存為代表枚舉值序數(shù)的整型數(shù)。第一個枚舉值的序數(shù)值為0,第二個為2,依此類推。儘管枚舉值對應著一個有效的序數(shù)值,單不能在程式中將一個數(shù)值賦給一個枚舉型變數(shù)。枚舉型是一個特殊的類,枚舉型變數(shù)是對象變數(shù)。主要方法有:

ordinal方法返回與一個枚舉型值相關聯(lián)的序數(shù)值。

name方法返回枚舉值名。例題3.6枚舉類型是一種安全類型,任何一種試圖使用枚舉值之外某個值的操作都將導致編譯錯誤。893.8.1包裝類的創(chuàng)建和使用

Java使用基本數(shù)據(jù)類型表示數(shù)據(jù)。當同時管理兩類數(shù)據(jù)(基本類型和對象引用)是一種挑戰(zhàn)。當一個用於包含其他各種類型對象的容器要求包含一個簡單的整型值時,需要將基本數(shù)據(jù)值“包裝”成對象。包裝類是代表一種具體的基本數(shù)據(jù)類型,包裝類的構造方法接受並保存一個基本類型的值。3.8包裝類903.8包裝類包裝類屬於java.lang標準包。PrimitiveTypeWrapperClassbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBooleanvoidVoidVoid類不能夠被實例化,它代表一個空引用。913.8包裝類一個包裝類允許將基本類型數(shù)據(jù)作為對象管理。IntegerageObj=newInteger(40);包裝類提供了各種與管理基本類型對應的方法。圖3.8Integer類的部分方法圖3.8中,注意:靜態(tài)方法可以通過類名直接調用。例:num=Integer.parseInt(“978”);將串“978”轉換成了整型數(shù)978,並賦值給變數(shù)num92包裝類定義了很多有用的靜態(tài)常量。Integer類有靜態(tài)常量MIN_VALUE,MAX_VALUE,分別代表int型數(shù)據(jù)的最小值和最大值。

93自動包裝是基本數(shù)據(jù)類型與相應的包裝對象之間的自動轉換。

Integerobj; intnum=42; obj=num;與上述類型轉換相反的轉換成為拆除包裝,當需要時也能自定進行轉換。基本類型與對象類型之間的賦值通常是不相容的,自動包裝只能在基本類型與包裝類之間進行。

3.8.2自動包裝94Java程式不但是具有命令行應用程式,也可以具有圖形組件。在本書的各章末尾將探討建立圖形用戶介面(GUI)組件可以看成是構成具有GUI的java應用程式的控件。GUI組件包括標籤(label),按鈕(button)、單行文本(textfield)、滾動條(scrollbar)和菜單(menu)等Java組件以及有關GUI類主要定義在java.awt和javax.swing抽象窗口工具包(AWT)是JavaGUI的原始版容器:是一個保存和組織其他組件的特殊組件。框架(frame)和麵板(panel)都是容器。3.9組件和容器95框架是一個容器,用於顯示基於GUI的Java應用程式介面。一個框架顯示為具有標題欄的獨立窗口,可以根據(jù)需要在螢幕上重定位和改變窗口的大小??蚣苡肑Frame類定義。面板不能獨立顯示。必須加載到一個可以顯示它的容器中,隨著包含該面板的容器移動。其作用是在一個GUI中協(xié)助組織其他組件。面板用JPanel類定義。3.9.1框架和麵板96容器可以分為兩類:重量級容器重量級容器由操作系統(tǒng)管理。如frame羽量級容器由Java程式管理。如panel通常通過創(chuàng)建一個顯示GUI的框架來建立一個Java圖形應用程式。容器只有在輔助組織和顯示其他組件時候才有用。標籤組件用於顯示用戶介面的一行文本,也可以顯示一副圖像。例題3.7

97佈局管理器對象對容器進行管理,協(xié)調容器內部的組件部署位置。一般情況下,面板中的組件都是按行順序進行排列除非一行的寬度容納不下或者程式員特別指定。3.9.2佈局管理器983.10嵌套的面板可以對面板進行嵌套,建立一個複雜的組件容器層次結構。見例3.8(95)99Java支持使用JPEG和GIF格式的圖像。一個標籤可以含有文本或圖像,或者同時包含文本和圖像。由Graphics類提供drawImage方法繪製圖形。圖像可以加入到一個標籤組件,標籤組件可以包含文字和圖像。

ImageIcon類代表一個包含在標籤中的圖像,該類的構造方法接受一個圖像檔案名參數(shù),並將參數(shù)指定的圖像檔裝入到ImageIcon對象中。ImageIcon對象可以顯示JPEG或GIF圖像。3.11圖像100可以使用標籤的各種方法設置圖像的位置以及對齊方式例題3.9

4.1類和對象的核心概念4.2類的分析4.3封裝4.4方法剖析4.5構造方法的關鍵概念4.6圖形對象4.7圖形用戶介面4.8按鈕4.9單行文本框主要內容:1024.1類和對象的核心概念面向對象程式開發(fā)的實質是設計和實現(xiàn)自己的類,以滿足用戶的特殊需求的過程。類是現(xiàn)實世界某些對象的共同特徵(屬性和操作)的表示,對象是類的實例。類與對象的關係:類是對象的藍圖;對象是這個類代表概念的一次實現(xiàn),也稱類的對象化或實例化對象是有狀態(tài)的,對象的狀態(tài)是由對象的屬性值確定。Java中,一個對象的屬性由類中所聲明的變數(shù)定義。103對象具有行為,行為由對象可執(zhí)行的操作確定。一個對象的操作可能改變該對象的狀態(tài)。在Java中,對象的操作由類中聲明的方法定義。104例題4.1每個類有數(shù)據(jù)和方法聲明,數(shù)據(jù)聲明定義了將保存到每個對象中的數(shù)據(jù),方法聲明定義了對象將提供的服務。類的數(shù)據(jù)和方法稱為類的成員。

4.2類的分析105類的成員數(shù)據(jù)和方法聲明--類的成員--圖4.2intsize,weight;charcategory;DatadeclarationsMethoddeclarations數(shù)據(jù)聲明定義了保存在每個對象中的數(shù)據(jù)。方法聲明定義了對象將提供的服務。106例題4.2

構造函數(shù):是一類特殊的方法,函數(shù)名和類對象相同。在使用new運算符創(chuàng)建一個新的類對象時候,調用構造方法。類中的其他方法定義了類對象提供的各種服務。注意:

類中的每個方法都應該用一段代碼說明方法的功能,這樣使得代碼段分塊清晰,便於查找各個方法。

面向對象程式設計是基於類的定義,類代表了有合理的狀態(tài)和行為定義的對象。107Java中常將一個類保存為一個檔。當一個檔保存了多個類,則只有一個類可以用保留字Public來聲明,而且public類的名必須與檔案名相一致。4.2.1實例數(shù)據(jù)創(chuàng)建類實例時將為類中聲明的變數(shù)分配記憶體空間,稱類中聲明的變數(shù)為實例數(shù)據(jù)。每個對象都有分配記憶體空間,因此每個對象可以保存不同的實例數(shù)據(jù)值。1084.2.2UML圖UML(UnifiedModelingLanguage)代表統(tǒng)一建模語言.描述類和對象之間的關係。一個類用一個矩形來表示,由類名、屬性(數(shù)據(jù))和操作(方法)。類之間的關係由箭頭來表示。虛線表示一個類使用另一個類的方法。109UMLClassDiagrams描述RollingDice程式所包含類的UML類圖RollingDicemain(args:String[]):voidDiefaceValue:introll():intsetFaceValue(intvalue):voidgetFaceValue():inttoString():StringUML圖中,變數(shù)的類型寫在變數(shù)名後,並用冒號隔開。方法的返回值類型也採用相同的方法表示。110一個對象應該封裝起來,以防止類之外的代碼對該對象的數(shù)據(jù)進行不適當?shù)脑L問,這種特性稱為--封裝。Encapsulation(封裝)MethodsDataClient封裝:把對象的所有組成部分組合在一起,封裝定義程式如何引用對象的數(shù)據(jù)。111在Java中,使用修飾符實現(xiàn)對象封裝。修飾符是Java保留字,用於規(guī)定程式設計語言構造的具體特徵。私有數(shù)據(jù)

方法封裝實際上是將類的數(shù)據(jù)隱藏起來,控制用戶對類的修改和訪問數(shù)據(jù)的程度。

方法數(shù)據(jù)對象A對象B公有數(shù)據(jù)112Java中有些修飾符能夠控制對類成員的訪問,被稱為可見性修飾符。Java有三種可見性修飾符:Public,private,protectedpulic允許外部的代碼訪問或修改類中的數(shù)據(jù)值,破壞了類的封裝性。private

只能由類的內部訪問,不能被外部訪問。Protected

與繼承相關。將在第八章討論。4.3.1可見性修飾符113實例變數(shù)如果聲明為private可見性,可以提高類的封裝性。一個方法的可見性取決於該方法的用途,為客戶提供服務的方法必須聲明為public,這種方法稱為服務方法。Private方法用途是協(xié)助類的其他方法工作,通常被稱為支持方法。

封裝性對於常量基本無意義。

114VisibilityModifierspublicprivateVariablesMethodsProvideservicestoclientsSupportothermethodsintheclassEnforceencapsulationViolateencapsulationUML類圖中,在成員名字前加符號“+”,表示public可見性,加符號“-”表示private可見性。1154.3.2訪問器和修改器實例數(shù)據(jù)通常聲明為private可見性,一個類通常提供一些服務用於訪問和修改實例數(shù)據(jù)值。訪問器方法返回當前變數(shù)的值。修改器方法修改變數(shù)的值。訪問器命名的形式為:getXX是要訪問的數(shù)據(jù)成員的名。修改器命名的形式為:setXX是要修改的數(shù)據(jù)成員的名。這類方法有時被稱為獲取器和設置器。1164.4方法剖析一個方法是給定的一個名稱的一組編程語言語句,方法聲明指定了調用本方法時要執(zhí)行的代碼。當一個方法被調用時,執(zhí)行控制流就會轉移到該方法,並逐條執(zhí)行該方法中語句。當方法執(zhí)行完後,控制返回到調用該方法的位置,繼續(xù)執(zhí)行後續(xù)的程式。117myMethod();myMethodcompute

MethodControlFlow如果被調用的方法和調用方法屬於同一個類,可以直接用方法名進行調用。118doIt

helpMehelpMe();

obj.doIt();main

MethodControlFlow被調用方法和調用方法不屬於同一個類,則需要通過另一個類的對象名調用。119方法頭Amethoddeclarationbeginswithamethodheadercharcalc(intnum1,intnum2,Stringmessage)methodnamereturntypeparameterlistTheparameterlistspecifiesthetypeandnameofeachparameterThenameofaparameterinthemethoddeclarationiscalledaformalparameter120方法體Themethodheaderisfollowedbythemethodbodycharcalc(intnum1,intnum2,Stringmessage){intsum=num1+num2;charresult=message.charAt(sum);returnresult;}Thereturnexpressionmustbeconsistentwiththereturntypesum

andresultarelocaldataTheyarecreatedeachtimethemethodiscalled,andaredestroyedwhenitfinishesexecuting1214.4.1返回語句在方法聲明頭中指定返回值類型,該類型可以是基本數(shù)據(jù)類型、類名、或保留字void(返回空值)。有返回值的方法必須由一條返回語句。當執(zhí)行return語句時,控制立即返回到調用方法中的調用語句,並繼續(xù)往下執(zhí)行。返回語句由保留字return和後續(xù)的運算式組成,運算式確定了返回的值。returnexpression;一個方法的返回值的類型必須與方法聲明頭規(guī)定的返回值類型一致。1224.4.2參數(shù)參數(shù)是調用一個方法時候傳遞給該方法的值。方法聲明頭中的參數(shù)列表指定了將傳遞給方法的參數(shù)值和參數(shù)名,被調用的方法根據(jù)參數(shù)名引用參數(shù)。行參:方法聲明頭中的參數(shù)名稱實參:在一次方法調用中,實際傳遞給方法的參數(shù)方法調用和定義的形式是在方法名後的圓括號中給出參數(shù)列表。123如果沒有參數(shù),仍需保留括弧。形參是識別字,用作方法中的變數(shù)。一個方法的形參初始值由調用該方法的實參賦予。實參可以實常量值、變數(shù)或者運算式。調用方法的參數(shù)的列表必須與方法聲明時的參數(shù)列表相匹配。124Parameters調用一個方法時,將把實參複製給被調用方法的形參。charcalc(intnum1,intnum2,Stringmessage){intsum=num1+num2;charresult=message.charAt(sum);returnresult;}ch=obj.calc(25,count,"Hello");1254.4.3局部數(shù)據(jù)在方法內聲明的變數(shù)是局部數(shù)據(jù)。一個方法聲明頭中的形式參數(shù)名作為該方法的局部變數(shù)名,僅當進行方法調用時形參才存在,方法調用結束時形參消亡。在類中聲明的實例數(shù)據(jù)在全類中可以訪問,在方法中聲明的數(shù)據(jù)只能局限在該方法中。由於局部變數(shù)和實例變數(shù)有不同級別的引用範圍,在方法中聲明的局部變數(shù)名可以與類級聲明的實例變數(shù)同名。1264.4.4銀行帳戶實例下麵討論一個例子以及該類的使用方法。Account類代表一個幾本的銀行帳戶。該類實例包括帳號、當前餘額、帳戶戶主的姓名。類的服務包括存款、取款以及計算利息。1274.5構造方法的關鍵概念構造方法用於初始化與每個對象有關的變數(shù)。構造方法的兩個特點:

1:構造方法名與類名相同。

2:構造方法不能返回值。不能在構造方法的聲明中指定void返回類型。不必為每個類定義構造方法,每個類都有一個不帶參數(shù)的默認構造方法。1284.6圖形對象一些對象是有圖形介面的,他們的狀態(tài)與行為包含其視覺外觀的資訊描述。許多GUI組件是圖形對象。如框架、面板、標籤以及圖形。129SmilingFaceExampleTheSmilingFaceprogramdrawsafacebydefiningthepaintComponentmethodofapanelSeeSmilingFace.java(page117)SeeSmilingFacePanel.java(page118)在SmilingFace類中main方法只是生成程式框架,然後在該框架中生成並顯示

SmilingFacePanel類的一個實例。TheSmilingFacePanel類繼承了JPanel類。130SmilingFaceExample每一個Swing組件都有一個paintComponent方法。

paintComponent接收一個

Graphics類型的對象作為參數(shù),該類對象代表一個組件的圖形上下文。paintComponent除了設置面板的背景色之外,還通過各種方法繪製笑臉和文字。注意在面板上繪圖和往面板上添加組件到面板的區(qū)別。131SplatExample該程式在面板上繪製了一系列的填充圓,每一個圓都是一個單獨的對象。paintComponent方法讓每個circle對象繪製本身。SeeSplat.java(page121)SeeSplatPanel.java(page121)SeeCircle.java(page122)1324.7圖形用戶介面在java中建立圖形用戶介面至少需要三種類型的對象組件事件監(jiān)聽器GUI組件是用於顯示資訊的螢幕元素。labels,buttons,textfields,menus,etc.容器是一種特殊的組件,用於容納和管理其他組件。

frames,panels,applets,dialogboxes133事件事件時一個對象,代表我們關心的某個事件的發(fā)生。Forexample,wemaywantourprogramtoperformsomeactionwhenthefollowingoccurs:themouseismovedthemouseisdraggedamousebuttonisclickedagraphicalbuttonisclickedakeyboardkeyispressedatimerexpires大部分組件會根據(jù)用戶的動作產(chǎn)生與該組件相關的事件。134一個程式基於圖形用戶介面來處理用戶事件稱為事件驅動。監(jiān)聽器是一個對象,他等待某個事件的發(fā)生並作出某種反應。要認真建立監(jiān)聽器、監(jiān)聽器所監(jiān)聽的事件以及產(chǎn)生該事件的組件之間的聯(lián)繫。135EventsandListenersComponentAcomponentobjectmaygenerateaneventListenerAcorrespondinglistenerobjectisdesignedtorespondtotheeventEventWhentheeventoccurs,thecomponentcallstheappropriatemethodofthelistener,passinganobjectthatdescribestheevent136大多數(shù)情況下將使用java類庫定義的組件和事件。使用GUI創(chuàng)建Java程式工作流程:實例化並設置需要的組件。實現(xiàn)監(jiān)聽器類,定義某種事件發(fā)生時候程式該採取的動作。建立監(jiān)聽器類與產(chǎn)生用戶關心事件的組件之間的聯(lián)繫。137按鈕是一種允許用戶通過滑鼠點擊發(fā)出動作的組件。按鈕用JButton類定義。當JButton被按下時候會產(chǎn)生一個動作事件

PushCounter執(zhí)行後顯示一個按鈕,用戶每點擊按鈕一次,計數(shù)器就會被更形並顯示點擊次數(shù)。SeePushCounter.java(page125)SeePushCounterPanel.java(page125)4.8按鈕138PushCounterExample程式中使用的組件包括一個按鈕,一個用於顯示次數(shù)的標籤,一個組織介面的面板以及一個用於顯示該面板的框架。

PushCounterPanel

類用實現(xiàn)面板的功能,用來顯示按鈕和標籤。PushCounterPanel

類繼承了JPanel類

PushCounterPanel類的構造方法建立了圖形用戶介面。並且初始化計數(shù)器為0.139PushCounterExampleButtonListener

類用於監(jiān)聽按鈕按下的事件。將ButtonListener類定義為內部類:在一個類的內部定義一個類。可以對其所在的類的所有成員變數(shù)擁有了訪問許可權。監(jiān)聽器與GUI組件交互非常方便。內部類只在兩個關係緊密且不需要被外部的其他類訪問時候參使用時。140PushCounterExample編寫監(jiān)聽器類需要實現(xiàn)一個介面ButtonListener類實現(xiàn)

ActionListenerinterface介面中定義了一系列需要在實現(xiàn)他的類中定義的方法。ActionListener介面中只聲明了

actionPerformedmethodJava標準類庫中為很多事件都定義了介面。141PushCounterExamplePushCounterPanelconstructor:instantiatestheButtonListenerobjectestablishestherelationshipbetweenthebuttonandthelistenerbythecalltoaddActionListenerWhentheuserpressesthebutton,thebuttoncomponentcreatesanActionEventobjectandcallstheactionPerformedmethodofthelistenerTheactionPerformedmethodincrementsthecounterandresetsthetextofthelabel1424.9單行文本單行文本允許用戶一次輸入一行文本。當游標在單行文本框裏,用戶按下enterkey,會產(chǎn)生一個動作事件。SeeFahrenheit.java(page127)SeeFahrenheitPanel.java(page128)143FahrenheitExampleLikethePushCounterexample,theGUIissetupinaseparatepanelclassTheTempListenerinnerclassdefinesthelistenerfortheactioneventgeneratedbythetextfieldTheFahrenheitPanelconstructorinstantiatesthelistenerandaddsittothetextfieldWhentheusertypesatemperatureandpressesenter,thetextfieldgeneratestheactioneventandcallstheactionPerformedmethodofthelistenerTheactionPerformedmethodcomputestheconversionandupdatestheresultlabel

5.1布爾運算式5.2if語句5.3數(shù)據(jù)比較5.4switch語句5.5while語句5.6迭代器5.7do語

溫馨提示

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

評論

0/150

提交評論