第7章 常用系統(tǒng)類_第1頁
第7章 常用系統(tǒng)類_第2頁
第7章 常用系統(tǒng)類_第3頁
第7章 常用系統(tǒng)類_第4頁
第7章 常用系統(tǒng)類_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章常用系統(tǒng)類主要任務(wù):介紹Java常用的系統(tǒng)類,包括JavaApplet、字符串類、輸入輸出流類、數(shù)學(xué)函數(shù)類、日期類、隨機數(shù)類以及向量類等。本章主要內(nèi)容1.Applet類2.字符串類3.輸入輸出流類4.其他常用類7.1Applet類Applet是一種特殊的Java程序,經(jīng)過編譯后可被嵌入到HTML文件中,并由Web瀏覽器內(nèi)置的Java解釋器執(zhí)行。所有Applet都繼承自同一個類:java.applet.Applet,這個類是Java語言的基礎(chǔ)類,有關(guān)Applet的所有特性都被定義在這個類中。7.1.1Applet的特點Applet是一種在Web頁中運行的小應(yīng)用程序。Java的Applet與Application有一個明顯的區(qū)別:Application是獨立程序,可直接通過Java解釋器來解釋運行;而Applet只能在Web瀏覽器上運行,必須通過<Applet>標簽將編譯后的字節(jié)碼文件嵌入到Web頁中。Applet的限制有以下幾個方面:·不能加載庫函數(shù)或定義本地方法?!げ荒茏x寫本地計算機上的文件系統(tǒng)?!こ讼螺d它的服務(wù)器外不能和其它主機建立網(wǎng)絡(luò)通訊?!げ荒苓\行本地計算機上的任何程序?!げ荒茏x取某些系統(tǒng)特性?!pplet打開的窗口和Application打開的窗口在外觀上有所不同。Applet能夠做的事情:

·可以和它所在的Web服務(wù)器建立網(wǎng)絡(luò)連接?!つ苁筗eb瀏覽器方便地顯示HTML文檔內(nèi)容?!るx開網(wǎng)頁后Applet可以繼續(xù)運行也可以停止運行。·可在狀態(tài)欄顯示短信息。·可以調(diào)用同一個網(wǎng)頁上的其它Applet中的公共方法。·可以播放聲音文件?!た梢詮腍TML的<Applet>標簽中獲取參數(shù)?!谋镜赜嬎銠C上加載Applet時沒有從網(wǎng)絡(luò)加載時所附帶的限制。7.1.2Java和HTML的關(guān)系理解Applet和HTML的關(guān)系對應(yīng)用Applet非常重要。HTML是網(wǎng)頁設(shè)計語言,它采用一整套標記來定義Web頁。一個HTML文件可定義一個Web頁,文件的擴展名為.html或.htm。HTML可以沒有Applet,但很多重要功能將無法實現(xiàn),而Applet有賴于HTML才能運行,二者共同為Internet這個虛擬世界增添光彩。含有JavaApplet的Web頁

Web頁源文件部分內(nèi)容

7.1.3Applet的生命周期與基本方法程序運行從開始到結(jié)束的過程稱為程序的生命周期。獨立應(yīng)用程序的生命周期從main()方法開始,直到運行結(jié)束。而Applet應(yīng)用程序的生命周期與瀏覽器相關(guān)。作為瀏覽器的一部分,Applet程序何時運行,何時結(jié)束都由瀏覽器控制,Applet對象只是作為瀏覽器窗口中運行的一個線程。Applet在瀏覽器中運行的全過程:在瀏覽器中打開包含Applet對象的頁面時,創(chuàng)建并初始化其中的Applet對象。顯示Applet時,啟動Applet線程運行。不顯示Applet時,停止Applet線程運行。在瀏覽器中關(guān)閉頁面窗口時,銷毀Applet對象。例7.1一個顯示生命周期的Applet,如圖所示。importjava.applet.Applet;importjava.awt.Graphics;publicclassLifeextendsApplet{StringBufferbuffer=newStringBuffer();publicvoidinit(){addWords("初始化...");}publicvoidstart(){addWords("開始...");}publicvoidstop(){addWords("停止...");}

publicvoiddestroy(){addWords("清除...");}voidaddWords(Strings){System.out.println(s);buffer.append(s);

repaint();}publicvoidpaint(Graphicsg){g.drawString(buffer.toString(),5,15);}}Applet的6種基本方法

1.初始化2.開始運行3.停止運行4.清除5.畫出(顯示)6.刷新7.1.4HTML和Applet的參數(shù)傳遞從HTML文件向Applet傳遞參數(shù)為用戶提供了一個強有力的手段,通過參數(shù)傳遞大大加強了Applet的靈活性,使你的Applet不用修改和重新編譯就能適用于多種情形。HTML語言有一個<Applet>標簽,可加入各種屬性來指定與Applet有關(guān)的內(nèi)容,其中code、width、height是必選屬性。如果需要向Applet傳遞參數(shù),可通過param標簽來指定。例7.2Applet的參數(shù)傳遞,如圖所示。importjava.applet.Applet;importjava.awt.Graphics;publicclassAxsextendsApplet{Stringstring=null;intx,y;publicvoidinit(){string=getParameter("message");x=Integer.parseInt(getParameter("xPos"));y=Integer.parseInt(getParameter("yPos"));}

publicvoidpaint(Graphicsg){if(string!=null)g.drawString(string,x,y);g.drawString("參數(shù)x為"+x,30,60);g.drawString("參數(shù)y為"+y,30,90);}}相應(yīng)的Axs.html文件內(nèi)容如下:<html><Applet

codebase=e:/java/程序

code=Axs.classwidth=300height=120>

<paramname=messagevalue="參數(shù)傳遞示例">

<paramname=xPosvalue=30>

<paramname=yPosvalue=30></Applet></html>7.1.5Applet標簽屬性語法格式如下:

<Appletcode=字節(jié)碼文件名width=寬度height=高度

[codebase=字節(jié)碼文件路徑][alt=可替換的文本內(nèi)容][name=對象名][align=對齊方式][vspace=垂直間隔][hspace=水平間隔]>[<paramname=參數(shù)名value=參數(shù)值>]…[alternateHTML]</Applet>屬性的用法Ⅰ:(p126)·code用來指定Applet字節(jié)碼文件名,可省略擴展名。·width和height用來指定Applet顯示區(qū)域的大小,以像素點為計量單位。·codebase用來指定Applet字節(jié)碼文件路徑。·name用來指定Applet的實例化對象名,使同一個Web頁上的多個Applet可以互相識別出來?!lt用來指定替換顯示的文本內(nèi)容。屬性的用法Ⅱ:(P126)·align用來指定Applet在瀏覽器窗口中的對齊方式。·vspace和hspace用來指定Applet四周的間隔,以像素點為計量單位?!aram標簽包含兩個參數(shù):name指定參數(shù)名,value指定參數(shù)值。·alternateHTML用來指定可替換的HTML代碼。例7.3通過參數(shù)給Applet程序傳遞不同字號、不同顏色、文本內(nèi)容的例子。如圖所示。AP3.html代碼如下:<html><Appletcode=AP3.classwidth=300height=100><paramname=textvalue="帶有顏色的文本"><paramname=sizevalue=30><paramname=colorvalue=007000></Applet></html>其中,顏色的值為16進制數(shù)007000。AP3.java源程序代碼如下:importjava.applet.*;importjava.awt.*;publicclassAP3extendsApplet{privateStringtext;privateintsize,color;publicvoidinit(){text=getParameter("text");//獲得文本參數(shù)

size=Integer.parseInt(getParameter("size"));//獲得字體大小

color=Integer.parseInt(getParameter("color"),16);//獲得顏色值

}

publicvoidpaint(Graphicsg){Colorc=newColor(color);g.setColor(c);Fontf=newFont("",1,size);g.setFont(f);g.drawString(text,10,50);//顯示指定大小顏色的字符串

}}7.2

字符串類字符串是程序設(shè)計中經(jīng)常用到的數(shù)據(jù)結(jié)構(gòu),很多編程語言將字符串定義為基本數(shù)據(jù)類型。但在Java語言中,字符串被定義為一個類,無論是字符串常量還是變量,都必須先生成String類的實例對象然后才能使用。java.lang有兩個字符串類String和StringBuffer,封裝了字符串的全部操作。其中String用來處理創(chuàng)建以后不再改變的字符串,StringBuffer用來處理可變字符串。7.2.1字符串與字符串類字符串是一個完整的字符序列,可以包含字母、數(shù)字和其它符號。在Java中,用雙引號括起來的字符串是字符串常量,又稱為無名字符串對象,由Java自動創(chuàng)建。字符串常量可以賦給任何一個String對象引用,這樣處理從表面上看起來和其它編程語言沒有大的差別,照顧了程序員的習(xí)慣,但實際上存在著較大的差異。Java將字符串定義為類有哪些好處呢?首先,在任何系統(tǒng)平臺上都能保證字符串本身以及對字符串的操作是一致的。其次,String和StringBuffer經(jīng)過了精心設(shè)計,其功能是可以預(yù)見的。為此,二者都被說明為最終類,不能派生子類,以防用戶修改其功能。最后,String和StringBuffer類在運行時要經(jīng)歷嚴格的邊界條件檢驗,它們可以自動捕獲異常,提高了程序的健壯性。例7.4字符串的翻轉(zhuǎn),如圖所示。importjava.Applet.Applet;importjava.awt.Graphics;publicclassStringReverseextendsApplet{publicvoidpaint(Graphicsg){Stringstr="Thisisateststring";g.drawString("正常字符串:"+str,30,30);g.drawString("翻轉(zhuǎn)字符串:"+reverse(str),30,60);}

publicStringreverse(Strings){intlen=s.length();StringBufferbuffer=newStringBuffer(len);for(inti=len-1;i>=0;i--)buffer.append(s.charAt(i));returnbuffer.toString();}}7.2.2字符串類的構(gòu)造方法例7.5字符串的構(gòu)造方法,如圖所示。importjava.io.*;importjava.applet.Applet;importjava.awt.Graphics;publicclassStringDemoextendsApplet{byteb[]={'A','','b','y','t','e','','a','r','r','a','y'};charc[]={'A','','c','h','a','r','','a','r','r','a','y'};Strings1,s2,s3,s4,s5,s6,s7,s8,s9;StringBufferb1,b2,b3;

publicvoidinit(){b1=newStringBuffer();//創(chuàng)建一個空StringBuffer對象

b2=newStringBuffer(10);//創(chuàng)建長度為10的空StringBuffer對象

b3=newStringBuffer("Astringbuffer");//以字符串為參數(shù)創(chuàng)建StringBuffer對象

s1=newString();//創(chuàng)建一個空String對象

s2=newString("Astring");//以字符串為參數(shù)創(chuàng)建String對象

s3=newString(b3);//以StringBuffer對象為參數(shù)創(chuàng)建String對象

s4=newString(b);//以b為參數(shù)創(chuàng)建String對象,8位字節(jié)自動轉(zhuǎn)為16位字符s5=newString(b,2,4);//從b的第3位,取4個元素為參數(shù)創(chuàng)建String對象

try{//如果下面的字符集編碼不存在將拋出異常

s6=newString(b,2,10,"GBK");//同s5,最后的字符串參數(shù)為字符集編碼

s7=newString(b,"GBK");//同s4,最后的字符串參數(shù)為字符集編碼

}catch(UnsupportedEncodingExceptione){}//捕獲異常

s8=newString(c);//以字符數(shù)組c為參數(shù)創(chuàng)建String對象

s9=newString(c,2,4);//從c的第3位,取4個元素為參數(shù)創(chuàng)建String對象

}

publicvoidpaint(Graphicsg){g.drawString("s1="+s1,20,20);g.drawString("s2="+s2,20,35);g.drawString("s3="+s3,20,50);g.drawString("s4="+s4,20,65);g.drawString("s5="+s5,20,80);g.drawString("s6="+s6,20,95);g.drawString("s7="+s7,150,20);g.drawString("s8="+s8,150,35);g.drawString("s9="+s9,150,50);g.drawString("b1="+b1.toString(),150,65);g.drawString("b2="+b2.toString(),150,80);g.drawString("b3="+b3.toString(),150,95);}}7.2.3String類的應(yīng)用1.求字符串長度publicintlength()可返回字符串長度。例如:

Strings="歡迎使用Java語言";intlen=s.length();len的值為10。注意:Java采用Unicode編碼,每個字符為16位長,因此漢字和其它符號一樣只占用一個字符。另外,字符串的length方法和表示一個數(shù)組長度的length是不一樣的,后者是一個實例變量。2.字符串連接publicStringconcat(Stringstr)可返回一個字符串,它將把參數(shù)str添加在原字符串的后邊。例如:"to".concat("get").concat("her")的返回值為“together”。但在Java中,更多地是用“+”來連接字符串。例如:

Stringstr="hello";str=str+"world!";3.字符串截取字符串截取有兩個途徑:一次截取一個字符或一次截取一個子串。前者可通過charAt方法(參見例7.4),后者使用substring方法。它有兩種形式:Stringsubstring(intstart)Stringsubstring(intstart,intend)其中start代表起始位置,end代表結(jié)束位置。例如:

Stringstr="ashortstring";Strings1=str.substring(2);Strings2=substring(8,14);4.字符串比較有兩組方法用于字符串比較,一組是equals,用于比較兩個字符串是否相等,返回值為布爾值。一組是compareTo,用于按字符順序比較兩個字符串,返回值為整型數(shù)。共有5個方法:

booleanequals(Objectobject)booleanequalsIgnoreCase(Stringstr)//忽略字符大小寫

intcompareTo(Objectobject)intcompareTo(Stringstr)intcompareToIgnoreCase(Stringstr)//忽略字符大小寫5.拷貝到字符串一個字符數(shù)組的內(nèi)容可以全部或部分地拷貝到一個字符串中。有兩個靜態(tài)方法用于這種拷貝:staticStringcopyValueOf(char[]data)staticStringcopyValueOf(char[]data,intoffset,intcount)例如:

charc[]={'A','','c','h','a','r','','a','r','r','a','y'};Strings1=newString(),s2=newString();s1=s1.copyValueOf(c);s2=s2.copyValueOf(c,2,4);6.字符串大小寫轉(zhuǎn)換一個字符串可以整體轉(zhuǎn)換為大寫或小寫字符,例如:

Strings1="allislowercase";Strings2="SomeIsUppercase";s1=s1.toUpperCase();s2=s2.toLowerCase();結(jié)果是s1的字符全部為大寫,s2的字符全部為小寫。7.字符串檢索你可以在一個字符串中檢索指定字符或子串的位置,如果檢索到將返回一個代表位置的整數(shù),否則返回值為-1。有兩組方法實現(xiàn)這種操作,indexOf方法返回字符或子串首次出現(xiàn)的位置,lastIndexOf方法返回字符或子串最后一次出現(xiàn)的位置。我們各選擇兩個典型的方法來說明這種檢索操作:

intindexOf(intch)intindexOf(Stringstr)intlastIndexOf(intch)intlastIndexOf(Stringstr)8.字符串轉(zhuǎn)換為數(shù)組字符串可以轉(zhuǎn)換為字節(jié)數(shù)組或字符數(shù)組,這種轉(zhuǎn)換在Java流處理中十分有用。字符串轉(zhuǎn)為字節(jié)數(shù)組將進行特別處理,因為字符是16位長,而字節(jié)為8位長,所以要將字符的高8位去掉,只保留低8位成為一個字節(jié)。有3個方法:

byte[]getBytes()//按系統(tǒng)缺省字符集編碼轉(zhuǎn)換為字節(jié)數(shù)組

byte[]getBytes(Stringenc)//其中enc為字符集編碼,參見例7.5char[]toCharArray()//轉(zhuǎn)換為字符數(shù)組9.轉(zhuǎn)換為字符串String類提供了一組valueOf方法用來將其它數(shù)據(jù)類型轉(zhuǎn)換成字符串,其參數(shù)可以是任何數(shù)據(jù)類型(byte類型除外)。它們都是是靜態(tài)的,也就是說不必創(chuàng)建實例化對象即可直接調(diào)用這些方法,其基本用法為:valueOf(數(shù)據(jù)類型)。例如:

chardata[]={'a','b','c','d','e'};System.Out.println(String.valueOf(12D));System.Out.println(String.valueOf(3<2));System.Out.println(String.valueOf(data,1,3));7.2.4StringBuffer類的應(yīng)用StringBuffer提供的方法有一些與String相同,有一些不同。最主要的方法有兩組,一組是append,另一組是insert,每組各有10個方法。1.a(chǎn)ppend方法append的10個方法主要在參數(shù)上有所不同,它可以把各種數(shù)據(jù)類型轉(zhuǎn)換成字符串后添加進來(byte類型除外),其基本用法為:append(數(shù)據(jù)類型)。2.insert方法insert方法和append方法在使用上非常類似,唯一的不同是多了一個位置參數(shù),該參數(shù)必須大于等于0。其基本用法為:insert(插入位置,數(shù)據(jù)類型)。例如:

chardata[]={'a','b','c','d','e'};StringBufferbuffer=newStringBuffer();buffer.insert(0,100);buffer.insert(0,2.5F);buffer.insert(3,'*');buffer.insert(0,250.0D);buffer.insert(5,"isequalto");最后,buffer的內(nèi)容為“250.0isequalto2.5*100”。3.其它方法下面幾個方法對程序員來說是經(jīng)常用到的:publicStringBufferdelete(intstart,intend)//刪除子串publicStringBufferdeleteCharAt(intindex)//刪除指定位置上的字符publicStringBufferreplace(intstart,intend,Stringstr)//替換子串StringBufferreverse()//翻轉(zhuǎn)字符串

7.3

輸入輸出(I/O)流類1.?dāng)?shù)據(jù)流(Stream)與數(shù)據(jù)流是傳遞信息數(shù)據(jù)的載體,是程序中的數(shù)據(jù)所經(jīng)歷的路徑。流分為輸入流與輸出流兩大部分。數(shù)據(jù)是指一組有順序的、有起點和終點的字節(jié)集合,數(shù)據(jù)的發(fā)送者與數(shù)據(jù)接收者可以是:一個文件、磁盤、內(nèi)存、另一個程序或是網(wǎng)絡(luò),數(shù)據(jù)可以是不同的格式:字符串、圖像、聲音或?qū)ο蟮取?.輸入流與輸出流建立數(shù)據(jù)流實際上就是建立數(shù)據(jù)傳輸通道,將起點和終點連接起來。例如,程序要讀寫文件,可以在程序和文件之間建立一個數(shù)據(jù)流。如果要從文件中讀數(shù)據(jù),則文件是起點,程序是終點;寫入數(shù)據(jù),則剛好相反。輸入流只能讀不能寫,而輸出流只能寫不能讀。

java.io包中具體聲明了用于讀寫操作的輸入流與輸出流類,例如,F(xiàn)ileInputStream(文件輸入流類)、ObjectOutputStream(對象輸出流類)。3.緩沖流對數(shù)據(jù)流的每次操作都是以字節(jié)為單位進行,即可以向輸入流或輸出流中讀取或?qū)懭胍粋€字節(jié),顯然這樣的數(shù)據(jù)傳輸效率很低。為了提高數(shù)據(jù)傳輸效率,通常使用緩沖流(bufferedstream),即為一個流配有一個緩沖區(qū)(buffer)。當(dāng)向一個緩沖流寫入數(shù)據(jù)時,系統(tǒng)將數(shù)據(jù)發(fā)送到緩沖區(qū),而不是直接發(fā)送到外部設(shè)備,緩沖區(qū)自動記錄數(shù)據(jù),當(dāng)緩沖區(qū)滿時,系統(tǒng)將數(shù)據(jù)全部發(fā)送到相應(yīng)設(shè)備。7.3.2Java的標準數(shù)據(jù)流標準輸入輸出指在字符方式下(如DOS提示符),程序與系統(tǒng)進行交互的方式,鍵盤和顯示器屏幕是標準輸入輸出設(shè)備,數(shù)據(jù)輸入的起點為鍵盤,數(shù)據(jù)輸出的終點是屏幕,輸出的數(shù)據(jù)可以在屏幕上顯示出來。標準輸入輸出的功能是通過Java中的系統(tǒng)類System實現(xiàn)的。System類在java.lang包中,是一個最終類,有三個公共的靜態(tài)的成員變量:in、out和err,可以在程序中直接調(diào)用它們。1.標準輸入System.inSystem.in作為InputStream類的對象實現(xiàn)標準輸入,可以調(diào)用它的read方法來讀取鍵盤數(shù)據(jù)。read方法有3種格式:

publicabstractintread()publicintread(byte[]b)publicintread(byte[]b,intoff,intlen)如果輸入流結(jié)束,返回-1。發(fā)生I/O錯時,會拋出IOException異常。2.標準輸出System.outSystem.out作為PrintStream打印流類的對象實現(xiàn)標準輸出,可以調(diào)用它的print、println或write方法來輸出各種類型的數(shù)據(jù)。print和println的參數(shù)完全一樣,不同之處在于println輸出后換行而print不換行。write方法用來輸出字節(jié)數(shù)組,在輸出時不換行。例7.6從鍵盤輸入字符,在屏幕顯示輸出數(shù)據(jù)。如圖所示。classIO1{publicstaticvoidmain(String[]args)throwsjava.io.IOException{bytebuffer[]=newbyte[40];System.out.println("從鍵盤輸入不超過40個字符,按回車鍵結(jié)束輸入:");intcount=System.in.read(buffer);//讀取標準輸入流

System.out.println("保存在緩沖區(qū)的元素個數(shù)為"+count); System.out.println("輸出buffer元素值:");for(inti=0;i<count;i++){System.out.print(""+buffer[i]);}System.out.println();System.out.println("輸出buffer字符元素:");System.out.write(buffer,0,buffer.length);}}7.3.3java.io包中的數(shù)據(jù)流類及文件類java.io包封裝了大量的數(shù)據(jù)流類,支持基于字節(jié)流的數(shù)據(jù)流和基于字符流的數(shù)據(jù)流?;玖黝愑?個,它們都是抽象類,它們是基于Unicode字符的輸入流Reader和輸出流Writer,基于二進制字節(jié)的輸入流InputStream和輸出流OutputStream。其它所有數(shù)據(jù)流類都是從它們中派生出來的子類。7.3.4數(shù)據(jù)流的應(yīng)用例7.7基于字符型的文件輸入輸出流與緩沖流的應(yīng)用。該程序具有復(fù)制文件,在屏幕顯示文件內(nèi)容的功能。運行結(jié)果如圖所示。importjava.io.*;publicclassIO2{publicstaticvoidmain(String[]args)throwsIOException{FileReaderin=newFileReader("Hello.java");//建立文件輸入流

BufferedReaderbin=newBufferedReader(in);//建立緩沖輸入流

FileWriterout=newFileWriter("Hello.txt",true);//建立文件輸出流

Stringstr;while((str=bin.readLine())!=null){System.out.println(str);out.write(str+"\n");}in.close();out.close();}7.4其它常用類本節(jié)介紹Java語言的6個常用類,它們是數(shù)學(xué)函數(shù)類Math,提供了基本數(shù)學(xué)運算;日期類Date、Calendar和DateFormat,提供了日期和時間操作;隨機數(shù)類Random,提供了隨機數(shù)生成器;向量類Vector,提供了類似于可變長數(shù)組的操作。7.1.4數(shù)學(xué)函數(shù)類Math

Math是一個最終類,含有基本數(shù)學(xué)運算函數(shù),如指數(shù)運算、對數(shù)運算、求平方根和三角函數(shù)等,可以直接在程序中加Math前綴調(diào)用。下面是其成員變量和常用成員方法(舉例說明):staticdoubleE //數(shù)學(xué)常量estaticdoublePI //圓周率πstaticdoublesin(doublea) //正弦函數(shù)staticdoublecos(doublea) //余弦函數(shù)staticdoubletan(doublea) //正切函數(shù)staticdoubleexp(doublea) //常數(shù)e的a次冪7.4.2日期類Java提供了3個日期類:Date、Calendar和DateFormat。在程序中,對日期的處理主要是如何獲取、設(shè)置和格式化,Java的日期類提供了很多方法以滿足程序員的各種需要。其中,Date主要用于創(chuàng)建日期對象并獲取日期,Calendar可獲取和設(shè)置日期,DateFormat主要用來創(chuàng)建日期格式化器。Java語言規(guī)定的基準日期為1970.1.100:00:00格林威治(GMT)標準時。例7.10日期的獲取、設(shè)置和格式化,如圖所示。importjava.text.*;importjava.util.*;importjava.awt.*;importjava.Applet.*;publicclassDate1extendsApplet{publicvoidpaint(Graphicsg){Datetoday;Calendarnow;DateFormatf1,f2;Strings1,s2;today=newDate();//獲取系統(tǒng)當(dāng)前日期

g.drawString("字符串格式:"+today.toString(),20,20);f1=DateFormat.getInstance();//以默認格式生成格式化器

s1=f1.format(today);//將日期轉(zhuǎn)換為字符串

g.drawString("系統(tǒng)格式:"+s1,20,40);//生成長格式的中國時間格式化器f2=DateFormat.getTimeInstance(DateFormat.LONG,Locale.CHINA);s1=f1.format(today);//將日期轉(zhuǎn)換為日期字符串

s2=f2.format(today);//將日期轉(zhuǎn)換為時間字符串

g.drawString("中國格式:"+s1+""+s2,20,60);now=Calendar.getInstance();//獲取系統(tǒng)時間

s1=now.get(now.HOUR)+"時"+now.get(now.MINUTE)+"分"+now.get(now.SECOND)+"秒";g.drawString("調(diào)整前時間:"+s1,20,80);now.set(2001,2,15,9,9,9);today=now.getTime();g.drawString("調(diào)整后時間:"+today.toString(),20,100);}}7.4.3隨機數(shù)類RandomRandom有兩個構(gòu)造方法:Random()、Random(longseed)。前者使用系統(tǒng)時間作為種子數(shù),后者使用指定的種子數(shù)。構(gòu)造方法只是創(chuàng)建了隨機數(shù)生成器,必須調(diào)用生成器的方法才能產(chǎn)生隨機數(shù)。Random具有nextBoolean、nextInt等方法。例7.11生成各種類型的隨機數(shù),如圖所示。importjava.util.*;classRD1{publicstaticvoidmain(Stringargs[]){Randomr1=newRandom(1234567890L);Randomr2=newRandom(1234567890L);booleanb=r1.nextBoolean();//隨機數(shù)不為0時取真值

inti1=r1.nextInt(100);//產(chǎn)生大于等于0小于100的隨機數(shù)

inti2=r2.nextInt(100);//同上

doubled1=r1.nextDouble();//產(chǎn)生大于等于0.0小于1.0的隨機數(shù)

doubled2=r2.nextDouble();//同上

System.out.println(b);System.out.println(i1);System.out.println(i2);System.out.println(d1);System.out.printl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論