《跨平臺程序設計語言》課件-第6章 Java常用類及接口_第1頁
《跨平臺程序設計語言》課件-第6章 Java常用類及接口_第2頁
《跨平臺程序設計語言》課件-第6章 Java常用類及接口_第3頁
《跨平臺程序設計語言》課件-第6章 Java常用類及接口_第4頁
《跨平臺程序設計語言》課件-第6章 Java常用類及接口_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1.System類介紹第6章Java常用類及接口System類:System類介紹System類位于java.lang包,代表當前Java程序的運行平臺,系統級的很多屬性和控制方法都放置在該類的內部。由于該類的構造方法是private的,所以無法創建該類的對象,也就是無法實例化該類。System類提供了一些類變量和類方法,允許直接通過System類來調用這些類變量和類方法。System類的成員變量System.out.println(data);System類有3個靜態成員變量,分別是PrintStreamout、InputStreamin和PrintStreamerr。PrintStreamout:標準輸出流。此流已打開并準備接收輸出數據。通常,此流對應于顯示器輸出或者由主機環境或用戶指定的另一個輸出目標。例如,編寫一行輸出數據的典型方式是:其中,println方法是屬于流類PrintStream的方法,而不是System中的方法。System類的成員變量System類有3個靜態成員變量,分別是PrintStreamout、InputStreamin和PrintStreamerr。InputStreamin:標準輸入流。此流已打開并準備提供輸入數據。通常,此流對應于鍵盤輸入或者由主機環境或用戶指定的另一個輸入源。PrintStreamerr:標準的錯誤輸出流。其語法與System.out類似,不需要提供參數就可輸出錯誤信息。也可以用來輸出用戶指定的其他信息,包括變量的值。System類的成員變量示例:編寫一個Java程序,使用本節介紹的System類實現從鍵盤輸入字符并顯示出來。具體實現代碼如下:以上代碼中,System.in.read()語句讀入一個字符,read()方法是InputStream類擁有的方法。變量c必須用int類型而不能用char類型,否則會因為丟失精度而導致編譯失敗。System類的成員方法arraycopy()方法:該方法的作用是數組復制,即從指定源數組中復制一個數組,復制從指定的位置開始,到目標數組的指定位置結束。該方法的具體定義如下:其中,src表示源數組,srcPos表示從源數組中復制的起始位置,dest表示目標數組,destPos表示要復制到的目標數組的起始位置,length表示復制的個數。publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)System類中提供了一些系統級的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System類的成員方法下面的示例代碼演示了arraycopy()方法的使用:如左側代碼,將數組srcArray中,從下標1開始的數據復制到數組destArray從下標1開始的位置,總共復制兩個。也就是將srcArray[1]復制給destArray[1],將srcArray[2]復制給destArray[2]。這樣經過復制之后,數組srcArray中的元素不發生變化,而數組destArray中的元素將變為E、B、C、H,下面為輸出結果:源數組:A

B

C

D目標數組:E

B

C

HpublicclassSystem_arrayCopy{publicstaticvoidmain(String[]args){char[]srcArray={'A','B','C','D'};char[]destArray={'E','F','G','H'};System.arraycopy(srcArray,1,destArray,1,2);System.out.print("源數組:");for(inti=0;i<srcArray.length;i++){System.out.print(“\t”+srcArray[i]);}System.out.print("\n目標數組:");for(intj=0;j<destArray.length;j++){System.out.print(“\t”+destArray[j]);}}}System類的成員方法currentTimeMillis()方法:該方法的作用是返回當前的計算機時間,時間的格式為當前計算機時間與GMT時間(格林尼治時間)1970年1月1日0時0分0秒所差的毫秒數。一般用它來測試程序的執行時間。例如:上述語句將獲得一個長整型的數字,該數字就是以差值表達的當前時間。longm=System.currentTimeMillis();System類中提供了一些系統級的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System類的成員方法使用currentTimeMillis()方法來顯示時間不夠直觀,但是可以很方便地進行時間計算。例如,計算程序運行需要的時間就可以使用如下的代碼:左側代碼中的變量time的值表示代碼中for循環執行所需要的毫秒數,使用這種方法可以測試不同算法的程序的執行效率高低,也可以用于后期線程控制時的精確延時實現。publicclassSystem_currentTimeMillis{publicstaticvoidmain(String[]args){longstart=System.currentTimeMillis();for(inti=0;i<100000000;i++){inttemp=0;}longend=System.currentTimeMillis();longtime=end-start;System.out.println("程序執行時間"+time+"秒");}}System類的成員方法exit()方法:該方法的作用是終止當前正在運行的Java虛擬機,具體的定義格式如下:其中,status的值為0時表示正常退出,非零時表示異常退出。使用該方法可以在圖形界面編程中實現程序的退出功能等。publicstaticvoidexit(intstatus)System類中提供了一些系統級的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System類的成員方法gc()方法:該方法的作用是請求系統進行垃圾回收,完成內存中的垃圾清除。至于系統是否立刻回收,取決于系統中垃圾回收算法的實現以及系統執行時的情況。定義如下:publicstaticvoidgc()System類中提供了一些系統級的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。System類的成員方法getProperty()方法:該方法的作用是獲得系統中屬性名為key的屬性對應的值,具體的定義如下:系統中常見的屬性名以及屬性的說明如下表所示。publicstaticStringgetProperty(Stringkey)System類中提供了一些系統級的操作方法,常用的方法有arraycopy()、currentTimeMillis()、exit()、gc()和getProperty()。屬性名屬性說明java.versionJava運行時環境版本java.homeJava安裝目錄操作系統的名稱os.version操作系統的版本用戶的賬戶名稱user.home用戶的主目錄user.dir用戶的當前工作目錄System類的成員方法下面的示例演示了getProperty()方法的使用:運行該程序,輸出的結果如下:Java運行時環境版本:1.8.0_371當前操作系統是:Windows10當前用戶是:Administrator提示:使用getProperty()方法可以獲得很多系統級的參數以及對應的值,這里不再一一舉例。publicclassSystem_getProperty{publicstaticvoidmain(String[]args){Stringjversion=System.getProperty("java.version");StringoName=System.getProperty("");Stringuser=System.getProperty("");System.out.println("Java運行時環境版本:"+jversion);System.out.println("當前操作系統是:"+oName);System.out.println("當前用戶是:"+user);}}2.Object類介紹第6章Java常用類及接口Object類介紹Object類:Object是Java類庫中的一個特殊類,也是所有類的父類。也就是說,Java允許把任何類型的對象賦給Object類型的變量。當一個類被定義后,如果沒有指定繼承的父類,那么默認父類就是Object類。因此,以下兩個類表示的含義是一樣的。等價于publicclassMyClass{…}publicclassMyClassextendsObject{…}Object類介紹由于Java所有的類都是Object類的子類,所以任何Java對象都可以調用Object類的方法。常見的方法如下表所示。其中,toString()、equals()方法和getClass()方法在Java程序中比較常用。方法說明Objectclone()創建與該對象的類相同的新對象booleanequals(Object)比較兩對象是否相等voidfinalize()當垃圾回收器確定不存在對該對象的更多引用時,對象垃圾回收器調用該方法ClassgetClass()返回一個對象運行時的實例類inthashCode()返回該對象的散列碼值voidnotify()激活等待在該對象的監視器上的一個線程voidnotifyAll()激活等待在該對象的監視器上的全部線程StringtoString()返回該對象的字符串表示voidwait()在其他線程調用此對象的notify()

方法或notifyAll()

方法前,導致當前線程等待Object

類的成員方法toString()方法:toString()方法返回該對象的字符串,當程序輸出一個對象或者把某個對象和字符串進行連接運算時,系統會自動調用該對象的toString()方法返回該對象的字符串表示。Object類的toString()方法返回“運行時類名@十六進制哈希碼”格式的字符串,但很多類都重寫了Object類的toString()方法,用于返回可以表述該對象信息的字符串。例如:System.out.println(newDemo());對象輸出時一定會調用Object類中的toString()方法打印內容。所以利用此特性就可以通過

重寫toString()取得一些對象的信息。Demo@15db9742Object

類的成員方法equals()方法:在前面學習字符串比較時,曾經介紹過兩種比較方法,分別是==運算符和equals()方法,==運算符是比較兩個引用變量是否指向同一個實例,equals()方法是比較兩個對象的內容是否相等,通常字符串的比較只是關心內容是否相等。其使用格式如下:其中,obj表示要進行比較的一個對象,o表示另一個對象。booleanresult=obj.equals(Objecto);System類的成員方法示例:編寫一個Java程序,實現用戶登錄的驗證功能。要求用戶從鍵盤輸入登錄用戶名和密碼,當用戶輸入的用戶名等于admin并且密碼也等于admin時,則表示該用戶為合法用戶,提示登錄成功,否則提示用戶名或者密碼錯誤信息。在這里使用equals()方法將用戶輸入的字符串與保存admin的字符串對象進行比較。System類的成員方法//驗證用戶名和密碼publicstaticbooleanvalidateLogin(Stringuname,Stringupwd){if(uname.equals("admin")&&upwd.equals("admin")){//比較兩個String對象

returntrue;}else{

returnfalse;}}publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.println("用戶名:");Stringusername=input.next();//獲取用戶輸入的用戶名System.out.println("密碼:");Stringpwd=input.next();//獲取用戶輸入的密碼booleancon=validateLogin(username,pwd);if(con)

System.out.println("登錄成功!");else

System.out.println("用戶名或密碼有誤!");}具體的代碼如下:System類的成員方法上述代碼在validateLogin()方法中又使用equals()方法將兩個String類型的對象進行了比較,當uname對象與保存admin的String對象相同時,uname.equals("admin")為true;與此相同,當upwd對象與保存admin的String對象相同時,upwd.equals("admin")為true。當用戶輸入的用戶名和密碼都為admin時,表示該用戶為合法用戶,提示登錄成功信息,否則提示用戶名或密碼有誤的錯誤信息。該程序的運行結果下所示:------歡迎使用大數據管理平臺------用戶名:adinm密碼:admin用戶名或密碼有誤!------歡迎使用大數據管理平臺------用戶名:admin密碼:admin登錄成功!Object

類的成員方法getClass()方法:getClass()方法返回對象所屬的類,是一個Class對象。通過Class對象可以獲取該類的各種信息,包括類名、父類以及它所實現接口的名字等。例如編寫一個實例,演示如何對String類型調用getClass()方法,然后輸出其父類及實現的接口信息。System類的成員方法publicstaticvoidprintClassInfo(Objectobj){//獲取類名System.out.println("類名:"+obj.getClass().getName());//獲取父類名System.out.println("父類:"+obj.getClass().getSuperclass().getName());System.out.println("實現的接口有:");//獲取實現的接口并輸出for(inti=0;i<obj.getClass().getInterfaces().length;i++){System.out.println(obj.getClass().getInterfaces()[i]);}}publicstaticvoidmain(String[]args){StringstrObj=newString();printClassInfo(strObj);}具體的代碼如下:該程序的運行結果下所示:類名:java.lang.String父類:java.lang.Object實現的接口有:interfacejava.io.Serializableinterfacejava.lang.Comparableinterfacejava.lang.CharSequenceObject

類的成員方法接收任意引用類型的對象:既然Object類是所有對象的父類,則所有的對象都可以向Object進行轉換,在這其中也包含了數組和接口類型,即一切的引用數據類型都可以使用Object進行接收。例如,實例化A類對象,Aa=newA();對象向上轉型的格式:Objectobj=a;對象向下轉型的格式:Ax=(A)obj;溫馨提示:因為Object類可以接收任意的引用數據類型,所以在很多的類庫設計上都采用Object作為方法的參數,這樣操作起來會比較方便。3.Math類介紹第6章Java常用類及接口Math類:Math類介紹Java中的+、-、*、/和%等基本算術運算符不能進行更復雜的數學運算,例如,三角函數、對數運算、指數運算等。于是Java提供了Math工具類來完成這些復雜的運算。在Java中Math類封裝了常用的數學運算,提供了基本的數學操作,如指數、對數、平方根和三角函數等。Math類位于java.lang包,它的構造方法是private的,因此無法創建Math類的對象,并且Math類中的所有方法都是類方法,可以直接通過類名來調用它們。Math

類的靜態常量Math類中包含E和PI兩個靜態常量,正如它們名字所暗示的,它們的值分別等于e(自然對數)和π(圓周率)。例如:調用Math類的E和PI兩個常量,并將結果輸出。代碼如下:執行上述代碼,輸出結果如下:System.out.println("E常量的值:"+Math.E);System.out.println("PI常量的值:"+Math.PI);E常量的值:2.718281828459045PI常量的值:3.141592653589793求最大值、最小值和絕對值在程序中常見的就是求最大值、最小值和絕對值問題,如果使用Math類提供的方法可以很容易實現。這些方法的說明如下表所示。方法說明staticintabs(inta)返回a的絕對值staticlongabs(longa)返回a的絕對值staticfloatabs(floata)返回a的絕對值staticdoubleabs(doublea)返回a的絕對值staticintmax(intx,inty)返回x和y中的最大值staticdoublemax(doublex,doubley)返回x和y中的最大值staticlongmax(longx,longy)返回x和y中的最大值staticfloatmax(floatx,floaty)返回x和y中的最大值staticintmin(intx,inty)返回x和y中的最小值staticlongmin(longx,longy)返回x和y中的最小值staticdoublemin(doublex,doubley)返回x和y中的最小值staticfloatmin(floatx,floaty)返回x和y中的最小值求最大值、最小值和絕對值例如,求10和20的較大值、15.6和15的較小值、-12的絕對值,代碼如下:該程序的運行結果如下:publicstaticvoidmain(String[]args){System.out.println("10和20的較大值:"+Math.max(10,20));System.out.println("15.6和15的較小值:"+Math.min(15.6,15));System.out.println("-12的絕對值:"+Math.abs(-12));}10和20的較大值:2015.6和15的較小值:15.0-12的絕對值:12求整運算Math類的求整方法有很多,詳細說明如下表所示。方法說明staticdoubleceil(doublea)返回大于或等于a的最小整數staticdoublefloor(doublea)返回小于或等于a的最大整數staticdoublerint(doublea)返回最接近a的整數值,如果有兩個同樣接近的整數,則結果取偶數staticintround(floata)將參數加上1/2后返回與參數最近的整數staticlonground(doublea)將參數加上1/2后返回與參數最近的整數,然后強制轉換為長整型求整運算下面的實例演示了Math類中取整函數方法的應用:publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.outprintln("請輸入一個數字:");doublenum=input.nextDouble();System.out.println("大于或等于"+num+"的最小整數:"+Math.ceil(num));System.out.println("小于或等于"+num+"的最大整數:"+Math.floor(num));System.out.println("將"+num+"加上0.5之后最接近的整數:"+Math.round(num));System.out.println("最接近"+num+"的整數:"+Math.rint(num));}請輸入一個數字:99.01大于或等于99.01的最小整數:100.0小于或等于99.01的最大整數:99.0將99.01加上0.5之后最接近的整數:100最接近99.01的整數:99.0該程序的運行結果如下:三角函數運算Math類中包含的三角函數方法及其說明如下表所示。方法說明staticdoublesin(doublea)返回角的三角正弦值,參數以孤度為單位staticdoublecos(doublea)返回角的三角余弦值,參數以孤度為單位staticdoubleasin(doublea)返回一個值的反正弦值,參數域在[-1,1],值域在[-PI/2,PI/2]staticdoubleacos(doublea)返回一個值的反余弦值,參數域在[-1,1],值域在[0.0,PI]staticdoubletan(doublea)返回角的三角正切值,參數以弧度為單位staticdoubleatan(doublea)返回一個值的反正切值,值域在[-PI/2,PI/2]staticdoubletoDegrees(doubleangrad)將用孤度表示的角轉換為近似相等的用角度表示的角staticdoubletoRadians(doubleangdeg)將用角度表示的角轉換為近似相等的用弧度表示的角在表中,每個方法的參數和返回值都是double類型,參數以弧度代替角度來實現,其中1度等于π/180弧度,因此平角就是π弧度。三角函數運算例如,計算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值,代碼如下:publicstaticvoidmain(String[]args){System.out.println{"90度的正弦值:"+Math.sin(Math.PI/2));System.out.println("0度的余弦值:"+Math.cos(0));System.out.println("1的反正切值:"+Math.atan(l));System.out.println("120度的弧度值:"+Math.toRadians(120.0));}90度的正弦值:1.00的余弦值:1.01的反正切值:0.7853981633974483120度的弧度值:2.0943951023931953在上述代碼中,因為Math.sin()中的參數的單位是弧度,而90度表示的是角度,因此需要將90度轉換為弧度,即Math.PI/180*90,故轉換后的弧度為Math.PI/2,然后調用Math類中的sin()方法計算其正弦值。該程序的運行結果如下:指數運算指數的運算包括求方根、取對數及其求n次方的運算。在Math類中定義的指數運算方法及其說明如下表所示。方法說明staticdoubleexp(doublea)返回e的a次冪staticdoublepow(doublea,doubleb)返回以a為底數,以b為指數的冪值staticdoublesqrt(doublea)返回a的平方根staticdoublecbrt(doublea)返回a的立方根staticdoublelog(doublea)返回a的自然對數,即lna的值staticdoublelog10(doublea)返回以10為底a的對數指數運算例如,使用Math類中的方法實現指數的運算,main()方法中的代碼如下:該程序的運行結果如下:publicstaticvoidmain(String[]args){System.out.println("4的立方值:"+Math.pow(4,3));System.out.println("16的平方根:"+Math.sqrt(16));System.out.println("10為底2的對數:"+Math.log1O(2));}4的立方值:64.016的平方根:4.010為底2的對數:0.30102999566398124.Random類介紹第6章Java常用類及接口Random類介紹在Java中要生成一個指定范圍之內的隨機數字有兩種方法:一種是調用Math類的random()方法,一種是使用Random類。Random類提供了豐富的隨機數生成方法,可以產生boolean、int、long、float、byte數組以及double類型的隨機數,這是它與random()方法最大的不同之處。random()方法只能產生double類型的0~1的隨機數。Random類:Random類介紹Random類:Random類位于java.util包中,該類常用的有如下兩個構造方法。Random():該構造方法使用一個和當前系統時間對應的數字作為種子數,然后使用這個種子數構造Random對象。Random(longseed):使用單個long類型的參數創建一個新的隨機數生成器。Random類介紹Random類提供的所有方法生成的隨機數字都是均勻分布的,也就是說區間內部的數字生成的概率是均等的,在下表中列出了Random類中常用的方法。方法說明booleannextBoolean()生成一個隨機的boolean值,生成true和false的值概率相等doublenextDouble()生成一個隨機的double值,數值介于[0,1.0),含0而不包含1.0intnextlnt()生成一個隨機的int值,該值介于int的區間,也就是-231~231-1。如果需要生成指定區間的int值,則需要進行一定的數學變換intnextlnt(intn)生成一個隨機的int值,該值介于[0,n),包含0而不包含n。如果想生成指定區間的int值,也需要進行一定的數學變換voidsetSeed(longseed)重新設置Random對象中的種子數。設置完種子數以后的Random對象和相同種子數使用new關鍵字創建出的Random對象相同longnextLong()返回一個隨機長整型數字booleannextBoolean()返回一個隨機布爾型值floatnextFloat()返回一個隨機浮點型數字doublenextDouble()返回一個隨機雙精度值Random類的成員方法該程序的運行結果下所示:生成的[0,1.0]區間的小數是:0.8773165855918825生成的[0,7.0]區間的小數是:6.407083074782282生成的[0,10]區間的整數是:5生成的[-3,15]區間的整數是:4生成一個隨機長整型值:-8462847591661221914生成一個隨機布爾型值:false生成一個隨機浮點型值:0.6397003生成[0,9]區間的整數:8Randomr=newRandom();System.out.println("生成的[0,1.0]區間的小數是:"+r.nextDouble());System.out.println("生成的[0,7.0]區間的小數是:"+r.nextDouble()*7);System.out.println("生成的[0,10]區間的整數是:"+r.nextInt(11));System.out.println("生成的[-3,15]區間的整數是:"+r.nextInt(19)-3);System.out.println("生成一個隨機長整型值:"+r.nextLong());System.out.println("生成一個隨機布爾型值:"+r.nextBoolean());System.out.println("生成一個隨機浮點型值:"+r.nextFloat());System.out.println("生成[0,9]區間的整數:"+r.nextInt(10));下面編寫一個Java程序,演示如何使用Random類提供的方法來生成隨機數。具體代碼如下:Random類的成員方法Math類的random()方法沒有參數,它默認會返回大于等于0.0、小于1.0的double類型隨機數,即0<=隨機數<1.0。對random()方法返回的數字稍加處理,即可實現產生任意范圍隨機數的功能。下面使用random()方法實現隨機生成一個2~100偶數的功能。具體代碼如下:intmin=2;//定義隨機數的最小值intmax=102;//定義隨機數的最大值//產生一個2~100的數ints=(int)min+(int)(Math.random()*(max-min));if(s%2==0){//如果是偶數就輸出System.out.println("隨機數是:"+s);}else{//如果是奇數就加1后輸出System.out.println("隨機數是:"+(s+1));}由于m+(int)(Math.random()*n)語句可以獲取m~m+n的隨機數,所以2+(int)(Math.random()*(102-2))表達式可以求出2~100的隨機數。在產生這個區間的隨機數后還需要判斷是否為偶數,這里使用了對2取余數,如果余數不是零,說明隨機數是奇數,此時將隨機數加1后再輸出。該程序的運行結果如下:隨機數是:20Random類練習主持人在數字范圍內隨機確定一個數字,作為炸彈數字,玩家輪流猜數字,誰猜中這個炸彈就被懲罰。比如范圍是1~100,炸彈是60,然后猜了一個數字是50,50不是炸彈,那么現在猜數字的范圍就縮小到50~100;又猜了一個數字80,80也不是炸彈,那么現在又縮小范圍到50~80,每次猜不能猜邊界上的值,直到有人猜中這個炸彈,然后就受到懲罰。數字炸彈游戲:5.日期相關類介紹第6章Java常用類及接口日期相關類Java與日期相關的類有三個:Date:具體類java.util.Date;Calendar:抽象類java.util.Calendar,它的派生類java.util.GregorianCalendar;DateFormat:抽象類java.text.DateFormat,它的派生類java.text.SimpeDateFormat;Date類日期相關類在Java中,日期Date是從1970.01.0100:00:00GMT加上一個long型的毫秒數時間得到的。我們可以從Java的API文檔查找到java.util.Date類的構造方法和成員方法。其中如果標識為“Deprecated”(棄用)的表示已經過期的,當前無法使用。當前有效的Date類的構造方法有:用不帶參數的構造方法直接實例化為系統當前日期時間;或者用一個long型的參數構造方法,它實例化一個Date對象,這個對象是從1970.01.0108:00:00加上ms毫秒的日期。Date()或者Date(longms)日期相關類方法名說明publiclonggetTime()獲取的是日期對象從1970年一月一日00:00:00到目前的毫秒數publiclongsetTime(longtime)設置時間,給的是毫秒值Date類的常用方法日期相關類Date類的應用示例importjava.util.*;publicclassDateDemo01{publicstaticvoidmain(Stringargs[]){Datedt1=newDate();Datedt10=(Date)dt1.clone();System.out.println("Today\t\tdt1="+dt1);Datedt2=newDate(System.currentTimeMillis()+24*60*60*1000);System.out.println("Tomorrow\tdt2="+dt2); Datedt3=newDate(System.currentTimeMillis()-24*60*60*1000);System.out.println("Yesterday\tdt3="+dt3);System.out.println("dt1.after(dt2):"+dt1.after(dt2)+"\tdt3.before(dt2):"+dt3.before(dt2));System.out.println("Comparedt1:dt10<"+pareTo(dt10)+">\tdt1:dt2<"+pareTo(dt2)+">\tdt1:dt3<"+pareTo(dt3)+">");}}運行結果為:Today dt1=SatNov0422:37:45CST2023Tomorrow dt2=SunNov0522:37:45CST2023Yesterday dt3=FriNov0322:37:45CST2023dt1.after(dt2):false dt3.before(dt2):trueComparedt1:dt10<0> dt1:dt2<-1> dt1:dt3<1>日期相關類DateFormat類時間與日期模板結果"yyyy.MM.ddG'at'HH:mm:ssz"2001.07.04ADat12:08:56PDT"EEE,MMMd,''yy"Wed,Jul4,'01"h:mma"12:08PM"hh'o''clock'a,zzzz"12o'clockPM,PacificDaylightTime在java.text包下的一個類,它可以把Date類格式化輸出。一般情況下,使用的是它的子類,叫做SimpleFormat類,它可以使用其父類DateFormat的方法。在這個類中,定義了許多模板字符。利用這些模板字符,程序員可以制定所需要的日期輸出格式。例如:日期相關類DateFormat類的格式化輸出日期時間示例importjava.util.*;importjava.text.*;publicclassDateDemo02{publicstaticvoidmain(Stringargs[]){Datedt1=newDate(); Datedt2=newDate(System.currentTimeMillis()+24*60*60*1000); SimpleDateFormatsdf1=SimpleDateFormat("yyyy年MM月dd日EEE,HH:mm:ss:SSS");SimpleDateFormatsdf2=newSimpleDateFormat("yyyy/MM/dd本月第W周EEE,今年的第DDD天" System.out.println("sdf1.format(dt2):"+sdf1.format(dt2)+"\nsdf2.format(dt1):"+sdf2.format(dt1)); }}運行結果為:sdf1.format(dt2):2016年08月25日星期四,18:08:22:454sdf2.format(dt1):2016/08/24本月第4周星期三,今年的第237天單類型導入(single-type-import),例如importjava.io.File;按需類型導入(type-import-on-demand),例如importjava.text.*;日期相關類Date類中,許多低版本的方法在高版本已經過時了,替代這些方法的是相應用Calendar類中的各種方法。Calendar也是java.util包下的一個類,主要替代Date的一些功能。Calendar類有兩個構造方法:protectedCalendar()protectedCalendar(TimeZone

zone,

Locale

aLocale)均為protected權限。因此,用戶是不能使用構造方法來實例化Calendar對象的,而是通過這個類提供的靜態方法:static

CalendargetInstance()

來創建對象的,或者用子類GregorianCalendar的構造器:GregorianCalendar()

來實例化Calendar對象。Calendar類日期相關類Calendar類應用示例importjava.util.*;publicclassCalendarDemo{publicstaticvoidmain(Stringargs[]){Calendarcd1=newGregorianCalendar();Datedate=newDate(System.currentTimeMillis()+3*24*60*60*1000);cd1.setTime(date);System.out.println("Year:"+cd1.get(cd1.YEAR));System.out.println("Month:"+cd1.get(cd1.MONTH));System.out.println("Day:"+cd1.get(Calendar.DATE));System.out.println("Week:"+cd1.get(cd1.DAY_OF_WEEK));SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEE,HH:mm:ss:SSS");System.out.println("Currentdate:"+sdf.format(cd1.getTime()));}}可以通過對象(如cd1)、也可以通過類名Calendar訪問域名,或者日期時間信息.日期相關類Calendar類importjava.util.*;publicclassCalendarDemo{publicstaticvoidmain(Stringargs[]){Calendarcd1=newGregorianCalendar();Datedate=newDate(System.currentTimeMillis()+3*24*60*60*1000);cd1.setTime(date);System.out.println("Year:"+cd1.get(cd1.YEAR));System.out.println("Month:"+cd1.get(cd1.MONTH));System.o

溫馨提示

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

評論

0/150

提交評論