




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、6.1Java API簡介6.2Object類6.3字符串處理類6.4基本數(shù)據(jù)類型包裝類6.5Math類和Random類6.6日期處理類6.7Arrays類6.8Class類6.9案例分析與實現(xiàn)(續(xù)3)第6章 Java常用實用類本章教學內(nèi)容:本章教學內(nèi)容:本章教學目標:本章教學目標: 理解理解J Java APIava API的概念的概念了解了解ObjectObject類類掌握掌握StringString類、類、StringBufferStringBuffer類和類和StringTokenizerStringTokenizer類類的用法的用法掌握基本數(shù)據(jù)類型封裝類的用法掌握基本數(shù)據(jù)類型封裝類的
2、用法掌握掌握MathMath類和類和RandomRandom類的用法類的用法掌握掌握DateDate類和類和CalendarCalendar類的用法類的用法掌握掌握ArraysArrays類的用法類的用法了解了解ClassClass類的用法類的用法6.1 Java API簡介API 就是應用程序編程接口,是一些已寫好、可供直接調(diào)用的類庫。Java API包含的內(nèi)容很多,本章主要討論其中兩個最基本的包中的主要類:(1)語言包(java.lang)。是Java的核心類庫,包含了運行Java程序必不可少的系統(tǒng)類,是Java語言編程使用最頻繁的包。為了簡化編程,系統(tǒng)默認導入了java.lang包,所以
3、使用java.lang包中的類時可以不用import語句導入。 (2) 實用程序包(java.util)。在這個包中,Java提供了一些實用的方法和數(shù)據(jù)結構。6.2 Object類Object類是所有類的父類。在Java體系中,所有類都是直接或間接的繼承了Object類。如果一個類沒有使用 extends 關鍵字明確標識繼承另外一個類,那么這個類就默認繼承Object 類。因此,Object 類是 Java 類層中的最高層類,是所有類的超類。換句話說,Java 中任何一個類都是它的子類。1. toString()1. toString()方法方法ObjectObject類中定義了類中定義了pu
4、blic String toString()public String toString()方法,其返方法,其返回值是回值是StringString類型,描述當前對象的有關信息。在進行類型,描述當前對象的有關信息。在進行StringString與其他類型數(shù)據(jù)(引用類型)的連接操作時或打印與其他類型數(shù)據(jù)(引用類型)的連接操作時或打印對象時對象時 ,將自動調(diào)用該對象的,將自動調(diào)用該對象的toString()toString()方法。方法。實例實例6-16-1重新定義Employee類,并重寫其toString()方法 。默認情況下默認情況下toString()toString()方法返回的字符串格
5、式是方法返回的字符串格式是“類名類名 哈希碼哈希碼”,一般情況下需要重寫,一般情況下需要重寫toString()toString()方法。方法。 2. equals(Object obj)方法equals(Object obj)方法與Java運算符=的含義相同,但用法不同。當兩個值比較、對象或變量與值比較、兩個變量比較時,使用運算符=;當比較兩個對象時,使用equals()方法。該方法調(diào)用返回true時表示兩個對象相等(或稱相同),返回false時表示兩個對象不相等。實例實例6-26-2編程演示“equals()方法“和“=”運算符比較對象時的異同。 3. getClass()方法getCla
6、ss()方法返回調(diào)用該方法的對象所屬的類。實例實例6-36-3編程演示getClass()方法的使用。6.3 字符串處理類6.3.1 String6.3.1 String類類java.lang包中String 類代表字符串。Java程序中的所有字符串字面值(”abc”)都作為此類的實例來實現(xiàn)。字符串是常量,它們的值在創(chuàng)建之后不能改變,因此String對象是不可改變的。String 類主要用于比較兩個字符串、查找和抽取串中的字符或子串、字符串與其它類型之間的相互轉換等操作,操作的結果通常得到一個新字符串,但不會改變源串的內(nèi)容 。String 類常用構造方法String 類常用構造方法見表6-2。
7、表6-2 String 類常用構造方法1.String 類常用構造方法構造方法構造方法說說 明明String( )String( )初始化一個新的初始化一個新的StringString對象,使其包含對象,使其包含一個空字符串一個空字符串String(String String(String value )value )初始化一個新的初始化一個新的StringString對象,使其包含對象,使其包含和參數(shù)字符串相同的字符序列和參數(shù)字符串相同的字符序列String(char String(char value )value )分配一個新的分配一個新的StringString對象,使它代表字對象,使
8、它代表字符數(shù)組參數(shù)包含的字符序列符數(shù)組參數(shù)包含的字符序列String(char String(char value, int value, int offset, int offset, int count)count)分配一個新的分配一個新的StringString對象,使它包含來對象,使它包含來自字符數(shù)組參數(shù)中子數(shù)組的字符自字符數(shù)組參數(shù)中子數(shù)組的字符String(byte String(byte value )value )分配一個新的分配一個新的StringString對象,使它代表字對象,使它代表字節(jié)數(shù)組參數(shù)包含的字符序列節(jié)數(shù)組參數(shù)包含的字符序列String(StringBuStrin
9、g(StringBuffer buffer )ffer buffer )初始化一個新的初始化一個新的StringString對象,它包含字對象,它包含字符串緩沖區(qū)參數(shù)中的字符序列符串緩沖區(qū)參數(shù)中的字符序列2.String 類常用方法實例實例6-46-4 length()方法的使用:求指定字符串的長度。實例實例6-5 6-5 =運算符與equals()方法的使用。實例實例6-66-6使用+運算符和concat()方法實現(xiàn)字符串的連接。實例實例6-76-7在字符串中查找字符和子串。 6.3.2 StringBuffer6.3.2 StringBuffer類類StringBuffer類用于內(nèi)容可以改
10、變的字符串,可以將其它各種類型的數(shù)據(jù)增加、插入到字符串中,也可以轉置字符串中原來的內(nèi)容。Java 為字符串提供了特別的連接操作符(+),可以把其它各種類型的數(shù)據(jù)轉換成字符串,并前后連接成新的字符串。實際上連接操作符(+)的功能是通過 StringBuffer類和它的 append 方法實現(xiàn)的。 2.StringBuffer類的常用方法 常用方法常用方法說說 明明StringBuffer append(Object obj)將某個對象的串描述添加到StringBuffer尾部。StringBuffer insert(int position, Object obj)將某個對象的串描述插入到Str
11、ingBuffer中的某個位置。StringBuffer insert(int index, char str, int offset, int len)將字符數(shù)組str中從offset位置開始的len個字符插入到串的index位置。StringBuffer setCharAt(int position, char ch)用新字符替換指定位置字符。StringBuffer deleteCharAt(int position)刪除指定位置的字符。StringBuffer replace(int start, int end, String str) 將參數(shù)指定范圍的一個子串用新串替換。Strin
12、g substring(int start, int end)獲取所指定范圍的子串。實例實例6-86-8改變字符串的內(nèi)容。實例實例6-96-9將一個字符串反轉。 6.3.3 StringTokenizer6.3.3 StringTokenizer類類在實際應用中,有時需要分析字符串并將字符串分解成可被獨立使用的單詞,這些單詞叫做語言符號。例如:對于字符串“We are Students ”,如果把空格作為分隔符,那么該字符串有三個單詞(語言符號)。而對于字符串We,are,Students,如果把逗號作為分隔符,那么該字符串也有三個單詞。當分析一個字符串并將該字符串分解成可被獨立使用的單詞時,
13、可以使用java.util包中的StringTokenizer類。 1StringTokenizer類常用的構造方法 (1)StringTokenizer( String s):為字符串s構造一個分析器使用默認的分隔符集合,即空格符(若干個空格被看成一個空格)、換行符、回車符、Tab符等。 (2)StringTokenizer(String s,String delim):為字符串s構造一個分析器,參數(shù)dilim中的字符被作為分隔符。 2StringTokenizer類常用的方法nextToken()方法hasMoreTokens() 方法countTokens()方法實例實例6-106-10
14、分析給定字符串,分別輸出字符串的單詞,并統(tǒng)計出單詞個數(shù)。6.4基本數(shù)據(jù)類型包裝類在Java中,基本數(shù)據(jù)類型不作為對象使用。這樣做的原因時效率問題,因為處理對象需要額外的系統(tǒng)開銷。然而許多Java的方法需要對象作參數(shù),這時Java在java.lang包中提供了一個方便的辦法:將基本數(shù)據(jù)類型包裝成對應的包裝類。Java 中的基本數(shù)據(jù)類型共有八種,那么與之相對應的包裝類也同樣是有八種。 1包裝類的構造方法可以從基本的數(shù)據(jù)類型或從表示數(shù)值的字符串來構造數(shù)值包裝對象。以Integer類為例。Integer類的構造方法如下:public Integer(int value) public Integer(
15、String s) 2 2數(shù)值類的常量數(shù)值類的常量每個數(shù)值包裝類都有常量每個數(shù)值包裝類都有常量MAX_VALUEMAX_VALUE和和MIN_VALUEMIN_VALUE。MAX_VALUEMAX_VALUE表示對應基本類型的最大值;表示對應基本類型的最大值;MIN_VALUEMIN_VALUE表示對表示對應基本類型的最小值。應基本類型的最小值。3 3類型轉換方法類型轉換方法每個包裝類均提供有相應的方法用來從包裝對象中抽取相應每個包裝類均提供有相應的方法用來從包裝對象中抽取相應的數(shù)據(jù)。的數(shù)據(jù)。BooleanBoolean類的對象,可以調(diào)用類的對象,可以調(diào)用booleanValue()boole
16、anValue()方方法從包裝對象中抽取相應的數(shù)據(jù)。法從包裝對象中抽取相應的數(shù)據(jù)。 IntegerInteger類的對象,可類的對象,可以調(diào)用以調(diào)用intValue()intValue()方法從包裝對象中抽取相應的數(shù)據(jù)。方法從包裝對象中抽取相應的數(shù)據(jù)。CharacterCharacter的對象,可以用的對象,可以用charValue()charValue()方法從包裝對象中方法從包裝對象中抽取相應的數(shù)據(jù)。抽取相應的數(shù)據(jù)。 4 4包裝類提供的各種包裝類提供的各種staticstatic方法方法 CharacterCharacter類提供有類提供有isDigit(char ch)isDigit(c
17、har ch)方法可判斷一個字符方法可判斷一個字符是否為數(shù)字。是否為數(shù)字。 除除CharacterCharacter類外的所有包裝類均提供有類外的所有包裝類均提供有valueOf(String s)valueOf(String s)的靜態(tài)方法,它將得到一個相應類型的對象的靜態(tài)方法,它將得到一個相應類型的對象 。還有一組非常有用的靜態(tài)包裝方法是還有一組非常有用的靜態(tài)包裝方法是parseXXX()parseXXX()方法,可以方法,可以將將“數(shù)字數(shù)字”格式的字符串轉化為相應的基本數(shù)據(jù)類型。格式的字符串轉化為相應的基本數(shù)據(jù)類型。 5 5使用使用LongLong類的下述方法可以得到整數(shù)的各種進制的字符
18、類的下述方法可以得到整數(shù)的各種進制的字符串表示串表示public static String toBinaryString(long n)public static String toBinaryString(long n)public static String toOctalString(long n)public static String toOctalString(long n)public static String toHexString(long n)public static String toHexString(long n) public static String to
19、String(long n,int p) public static String toString(long n,int p) 6 6使用使用StringString類的類的valueOfvalueOf()方法可以將數(shù)值轉化為相應()方法可以將數(shù)值轉化為相應的字符串的字符串public static String valueOf(byte n)public static String valueOf(byte n)public static String valueOf(int n)public static String valueOf(int n)public static String
20、 valueOf(long n)public static String valueOf(long n)public static String valueOf(float n)public static String valueOf(float n)public static String valueOf(double n)public static String valueOf(double n)實例實例6-116-11 將數(shù)字字符串轉化為對應的整數(shù)。實例實例6-126-12 將整型數(shù)據(jù)包裝成Integer類的對象,再將其轉換為基本數(shù)據(jù)類型。實例實例6-13 6-13 基本數(shù)據(jù)類型與包裝類
21、對象運算操作。6.5 Math類和Random類6.5.1Math6.5.1Math類類Java.lang包中的Math類也稱數(shù)學類,是一個工具類,它在解決與數(shù)學計算有關的一些問題時有著很重要的作用。Math類包含了一組基本的數(shù)學運算的方法和常數(shù)。如求絕對值的abs()方法,計算三角函數(shù)的sin()方法和cos()方法,求兩個數(shù)中的較小值和較大值的min()方法和max()方法,求隨機數(shù)的random()方法等。Math類是最終類(final),不能從Math類中派生其他的新類。因此只能使用Math類的方法而不能對其作任何修改.實例實例6-14 6-14 Math類中主要方法應用舉例。實例實例
22、6-156-15隨機產(chǎn)生10個100以內(nèi)的正整數(shù)并輸出。 6.5.2 Random類 Java.util包中的Random 類是一個隨機數(shù)產(chǎn)生器,此類的實例用于生成偽隨機數(shù)流。隨機數(shù)是按照某種算法產(chǎn)生的,一旦用一個初值創(chuàng)建 Random 對象,就可以得到一系列的隨機數(shù),但如果用相同的初值創(chuàng)建 Random對象,得到的隨機數(shù)序列是相同的,也就是說,在程序中看到的“隨機數(shù)”是固定的那些數(shù),起不到“隨機”的作用,針對這個問題,Java 設計者們在 Random 類的 Random()構造方法中使用當前的時間來初始化 Random 對象,因為沒有任何時刻的時間是相同的,所以就可以減少隨機數(shù)序列相同的可
23、能性。 1 1Random Random 類構造方法類構造方法RandomRandom類提供了兩個構造方法:帶參數(shù)(即帶種子)和不帶類提供了兩個構造方法:帶參數(shù)(即帶種子)和不帶參數(shù)(即不帶種子)。如果沒有提供參數(shù),參數(shù)(即不帶種子)。如果沒有提供參數(shù),RandomRandom實例的實例的參數(shù)將是當前時間的毫秒數(shù)。參數(shù)將是當前時間的毫秒數(shù)。2 2Random Random 類的常用方法類的常用方法(1 1)int nextInt()int nextInt():返回下一個偽隨機數(shù),它是此隨機數(shù):返回下一個偽隨機數(shù),它是此隨機數(shù)生成器的序列中均勻分布的生成器的序列中均勻分布的 int int 值。
24、值。(2 2)int nextInt(int n)int nextInt(int n):返回一個偽隨機數(shù),它是從此:返回一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在隨機數(shù)生成器的序列中取出的、在 0(0(包括包括) )和指定值和指定值( (不不包括包括) )之間均勻分布的之間均勻分布的 intint值。值。(3 3)long nextLong()long nextLong():返回下一個偽隨機數(shù),它是從此隨:返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的機數(shù)生成器的序列中取出的、均勻分布的 long long 值。值。 (4 4)double nextDouble(
25、)double nextDouble():返回下一個偽隨機數(shù),它是從:返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在此隨機數(shù)生成器的序列中取出的、在 0.0 0.0 和和 1.01.0之間均之間均勻分布的勻分布的 double double 值。值。(5 5)float nextFloat()float nextFloat():返回下一個偽隨機數(shù),它是從此:返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在隨機數(shù)生成器的序列中取出的、在 0.0 0.0 和和 1.0 1.0 之間均勻之間均勻分布的分布的 float float 值。值。(6 6)boolean nextBo
26、olean()boolean nextBoolean():返回下一個偽隨機數(shù),它是:返回下一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、均勻分布的從此隨機數(shù)生成器的序列中取出的、均勻分布的 boolean boolean 值。值。(7 7)void nextBytes(byte bytes):void nextBytes(byte bytes)::生成隨機字節(jié)并將:生成隨機字節(jié)并將其置于用戶提供的字節(jié)數(shù)組中。其置于用戶提供的字節(jié)數(shù)組中。實例實例6-166-16利用不帶參數(shù)的構造方法創(chuàng)建兩個隨機數(shù)生成器對象,分別隨機產(chǎn)生一個整數(shù)、一個實數(shù)、一個布爾值并輸出。實例實例6-176-17利用帶參數(shù)
27、的構造方法創(chuàng)建兩個隨機數(shù)生成器對象,分別隨機產(chǎn)生一個整數(shù)、一個實數(shù)、一個布爾值并輸出。實例實例6-186-18隨機產(chǎn)生10個100以內(nèi)的整數(shù)并輸出。6.6 日期處理類 6.6.1 Date6.6.1 Date類類java.util包中的Date類表示特定的瞬間,精確到毫秒。使用Date類的無參構造方法Date()創(chuàng)建的Date對象可以獲取本地當前時間。Date對象表示時間的默認順序是:星期、月、日、小時、分、秒、年。 1Date類的構造方法 (1)無參構造方法例如:使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象。語句如下:Date date = new Date();System.out.print
28、ln(當前日期為: + date); 實例實例6-196-19使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象并返回一個長整數(shù)。 (2)有參構造方法例如:通過有參構造方法獲取當前系統(tǒng)時間。語句如下:long ct = System.currentTimeMillis(); Date d = new Date(ct);實例實例6-196-19使用有參構造方法創(chuàng)建一個日期對象。 2日期的格式化在編寫程序時,通常都希望按照某種習慣的格式來輸出時間,比如時間的順序:年 月 日 時:分:秒。我們?nèi)绾尾拍芤赃@種指定的格式來顯示日期呢?這就需要利用java.text包中的DateFormat 類和SimpleDat
29、eFormat類來實現(xiàn)日期的格式化。(1)利用DateFormat類實現(xiàn)日期的格式化。實例實例6-206-20利用DateFromat類實現(xiàn)當前日期的格式化輸出。 (2)利用SimpleDateFormat類實現(xiàn)日期的格式化。實例實例6-226-22利用SimpleDateFromat類實現(xiàn)當前日期格式化輸出。實例實例6-23 6-23 將“2014-2-3 18:30:38”格式的日期字符串轉成“2014年02月3日06點30分38秒”的日期形式。 3.獲取當前日期的時間通過getTime()方法所得到的Date類型數(shù)據(jù)是以毫秒來計算的,并且是以1970年1月1日為開始時間。在聲明數(shù)據(jù)類型時
30、需要較大存儲空間,可以使用long數(shù)據(jù)類型或者同等存儲類型數(shù)據(jù)。語句如下:Date date=new Date();long str_get = date.getTime();System.out.println(當前毫秒值為: + str_get); 6.6.2 Calendar類 Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日歷字段之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。特定瞬間可用毫秒值來表示,它是距離歷元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:0
31、0.000)的偏移量。 1 1CalendarCalendar對象的創(chuàng)建對象的創(chuàng)建由于由于CalendarCalendar類是一個抽象類,不能用類是一個抽象類,不能用newnew運算符實例化,運算符實例化,因此因此CalendarCalendar類提供了類提供了getInstancegetInstance()靜態(tài)方法返回一()靜態(tài)方法返回一個個 Calendar Calendar 對象,其日歷字段已由當前日期和時間初始對象,其日歷字段已由當前日期和時間初始化?;?。 2 2CalendarCalendar對象的常用方法對象的常用方法(1 1)設置日歷字段值)設置日歷字段值(2 2)獲取日歷字段值
32、)獲取日歷字段值public int get(int field)public int get(int field)參數(shù)參數(shù)fieldfield的有效值由的有效值由CalendarCalendar的靜態(tài)常量指定。的靜態(tài)常量指定。(3 3)更改日歷字段值)更改日歷字段值public void add(int field, int amount);public void add(int field, int amount);用于給指定的用于給指定的日歷字段添加或減去指定的時間量。日歷字段添加或減去指定的時間量。 (4)將日歷對象轉變?yōu)槿掌趯ο蟮姆椒╬ublic final Date getTime
33、();(5)將時間轉變?yōu)楹撩胫档姆椒?。實例實?-24 6-24 計算出距當前日期時間 230 天后的日期時間,并用“xxxx 年 xx 月 xx日 xx 小時:xx 分:xx 秒”的格式輸出。實例實例6-256-25利用Calendar類實現(xiàn)2011年4月的日歷顯示。6.7 Arrays類Arrays類是Java API中提供的存在于java.util包中的數(shù)組工具類,該類中包含有數(shù)組操作的一些常用靜態(tài)方法(如排序和查找),這可以大大簡化程序設計人員的設計過程。 Arrays類的常用方法有:(1)sort()方法:利用Arrays.sort()實現(xiàn)數(shù)組排序。2)binarySearch()方法利用Arrays. binarySearch()方法實現(xiàn)數(shù)組元素查找。 (3)equals()方法利用equals()方法實現(xiàn)數(shù)組的比較。(4)toString()方法利用toString()方法可以便捷的顯示數(shù)組的內(nèi)容。(5)copyoOf()方法利用copyOf()方法可以便捷的實現(xiàn)數(shù)組的復制。實例實例6-26 6-26 利用sort()方法實現(xiàn)數(shù)組的排序,并且利用toS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 以人為本醫(yī)界的新時代新要求與新機遇
- 辦公室文化中的醫(yī)療倫理意識塑造
- 遼寧阜新公開招聘農(nóng)村黨務(村務)工作者筆試題含答案2024年
- 大連預約買賣合同協(xié)議
- 大宗物資銷售合同協(xié)議
- 地震救援捐贈協(xié)議書范本
- 大理店鋪合伙協(xié)議書范本
- 夫妻之間財產(chǎn)協(xié)議書范本
- 回收企業(yè)廢鋼合同協(xié)議
- 地產(chǎn)出售合同協(xié)議
- 美國西屋Ovation35培訓(一)Ovation系統(tǒng)介紹及
- 畢業(yè)設計重型貨車制動系統(tǒng)設計
- 土方清運施工組織設計
- 消防給水及消火栓系統(tǒng)工程驗收記
- 鉆孔灌注樁工程結算關于充盈系數(shù)的爭議處理及分析(蘇亞金愛國)
- 本科畢業(yè)設計論文霓虹燈PLC控制與監(jiān)控組態(tài)設計
- 揚塵防治教育培訓記錄(共11頁)
- 2020年TDLTE無線網(wǎng)絡主設備功能測試規(guī)范基本功能分冊
- JJG 629-2014 多晶X射線衍射儀(原版-高清)
- 工程部部門,崗位職責,管理制度
- 多聯(lián)機與模塊機的比較
評論
0/150
提交評論