版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精通常用的Java類課程代碼:AMPC0102V20課程介紹目的:熟練運(yùn)用常用Java類型內(nèi)容:Object類、字符串相關(guān)類型、封裝類、日期相關(guān)類型、數(shù)學(xué)相關(guān)類型重點(diǎn):String類、封裝類、Date類、日期格式化難點(diǎn):哈希碼、對象克隆操作精通常用的Java類 Java類的共同父類Object字符串相關(guān)類型封裝類日期相關(guān)類型數(shù)學(xué)相關(guān)類型一. Object類java.lang.Object類是所有Java類的最高層次父類,該類提供了面向?qū)ο缶幊碳夹g(shù)的基本機(jī)制。主要方法列表:hashCode()方法toString()方法equals()方法finalize()方法clone()方法wait()方
2、法notify()/notifyAll()方法hashCode()方法返回當(dāng)前對象的哈希碼(HashCode)數(shù)值。public class Personprivate int age;public Person(int age)this.age = age;/public class TestHashCodepublic static void main(String args)Person p1 = new Person(18);Person p2 = new Person(18);int handle1 = p1.hashCode();System.out.println(handle1
3、);System.out.println(Integer.toHexString(handle1);System.out.println(p1);System.out.println(-);System.out.println(p2.hashCode();輸出結(jié)果:11077203a90653Persona90653-14576877public int hashCode()例9-1toString()方法以字符串形式返回當(dāng)前對象描述信息,在Object類原始定義中,其返回的是對象所屬的類型名稱及其哈希碼。當(dāng)使用System.out.println()方法直接打印輸出引用類型變量時(shí),print
4、ln()方法中會(huì)先自動(dòng)調(diào)用其toString()方法,再將所返回的字符串信息輸出。在進(jìn)行String與其它類型數(shù)據(jù)的連接操作時(shí),自動(dòng)調(diào)用toString()方法,基本類型數(shù)據(jù)轉(zhuǎn)換為String類型時(shí),調(diào)用了對應(yīng)封裝類的toString()方法??筛鶕?jù)需要在用戶定義類型中重寫toString()方法。public String toString() 重寫toString()方法public class Personprivate int age;public Person(int age)this.age = age;public void setAge(int age)this.age = a
5、ge;public int getAge()return age;public String toString()return This is an instance of Person,age = + age;public class TestOverridepublic static void main(String args)Person p1 = new Person(18);System.out.println(p1.hashCode();System.out.println(p1); / /等價(jià)于System.out.println(p1.toString();輸出結(jié)果:11077
6、203This is an instance of Person,age = 18This is an instance of Person,age = 18例9-2equals()方法方法功能:比較引用類型數(shù)據(jù)的等價(jià)性Java等價(jià)標(biāo)準(zhǔn):引用類型比較引用,基本類型比較值。equals()方法與=操作符的區(qū)別:equals()方法只能比較引用類型數(shù)據(jù),而=可以比較引用類型及基本類型數(shù)據(jù);equals()方法存在特例:對File、String、Date及封裝類,比較的是對象類型及其內(nèi)容而不考慮引用的是否為同一實(shí)例??稍诟鶕?jù)需要重寫equals()方法,以改變其等價(jià)性評(píng)價(jià)標(biāo)準(zhǔn)。public bool
7、ean equals(Object obj) equals()方法應(yīng)用舉例對比使用=和equals()方法例9-3:Person.java, TestEquals.java例9-4:TestEquals2.java重寫equals()方法,實(shí)現(xiàn)用戶定制等價(jià)性標(biāo)準(zhǔn)例9-5:Person.java, TestEquals3.javafinalize()方法Java運(yùn)行時(shí)環(huán)境中的垃圾收集器在銷毀一個(gè)對象之前,會(huì)自動(dòng)調(diào)用該對象的finalize()方法,然后才釋放對象的內(nèi)存空間。通過在子類中重寫finalize()方法,以加入所需的邏輯代碼來配置系統(tǒng)資源或執(zhí)行其他清除操作。finalize()方法效果
8、演示(例9-6)Person.javaTestFinalize.javaprotected void finalize() throws Throwable clone()方法clone()方法用于實(shí)現(xiàn)對象克隆,要克隆的目標(biāo)對象所屬的類必須實(shí)現(xiàn)java.lang.Cloneable接口。舉例:實(shí)現(xiàn)簡單的克隆操作(例9-7 )Person.javaTestClone.java淺度拷貝和深度拷貝protected native Object clone() throws CloneNotSupportedException;二. 字符串相關(guān)類型String類StringBuffer類StringB
9、uilder類StringTokenizer類String類java.lang.String類表示不可修改的Unicode編碼字符串。String類方法層次:構(gòu)造方法字符串連接、轉(zhuǎn)換和截?cái)郼oncat(), replace(), substring(), toLowerCase(), toUpperCase(), trim(), split()檢索和查找功能charAt(), startsWith(), indexOf(), lastIndexOf(), length() 內(nèi)容比較equals(), equalsIgnoreCase(), compareTo()StringBuffer類Str
10、ingBuffer類對象保存可修改的Unicode字符序列。構(gòu)造方法:StringBuffer() StringBuffer(int capacity) StringBuffer(String initialString)主要功能方法:append()insert()reverse()setCharAt()用法舉例(例9-11 )TestStringBuffer.javaStringBuilder類與StringBuffer 功能大體相同,二者區(qū)別:StringBuffer類是線程安全的,而StringBuilder則不是,即不保證其對象的同步性,在多線程環(huán)境中是不安全的。StringBuil
11、der在性能上要比 StirngBuffer 好一些。StringTokenizer類用于將字符串按照默認(rèn)或指定分隔符分解為多個(gè)片段。構(gòu)造方法:StringTokenizer(String str)StringTokenizer(String str, String delim)StringTokenizer(String str, String delim, boolean returnDelims)主要功能方法:hasMoreTokens()nextToken()用法舉例(例9-12):TestStringTokenizer.javasplit()方法從JDK1.4開始,Sun公司推薦開發(fā)
12、者使用一種新的字符串分解方式String類的split()方法:public class TestStringSplitpublic static void main(String args)String s = 陽光:沙灘:海浪:仙人掌;String results = s.split(:);for(String each: results) System.out.println(each); 輸出結(jié)果:陽光沙灘海浪仙人掌例9-13三. 封裝類封裝類的概念和使用自動(dòng)封裝和拆封封裝類概念封裝類用于封裝基本類型數(shù)據(jù)值?;緮?shù)據(jù)類型封裝類 boolean Boolean byte Byte sho
13、rt Short int Integer long Long char Character float Float double Double封裝類用法舉例public class TestWrapperpublic static void main(String args)Integer t1 = new Integer(314); Integer t2 = new Integer(314);int i = Value();System.out.println(i);System.out.println(t1 = t2);System.out.println(t1.equals(
14、t2);System.out.println(t1.toString();System.out.println(Integer.toBinaryString(27);System.out.println(Integer.toOctalString(27);System.out.println(Integer.toHexString(27);i = Integer.parseInt(500);System.out.println(i); 輸出結(jié)果:314falsetrue31411011331b500例9-14自動(dòng)封裝/拆封基本數(shù)據(jù)類型和相應(yīng)的封裝類類型之間可以由系統(tǒng)進(jìn)行自動(dòng)轉(zhuǎn)換,而不必再顯式調(diào)
15、用封裝類的構(gòu)造方法或相應(yīng)的解析方法。public class TestAutoBoxingpublic static void main(String args)Integer t1 = new Integer(3); int i = t1;int j = 4;Integer t2 = j; System.out.println(i);System.out.println(t2.toString();m1(20);public static void m1(Integer it)int k = it + 5; /等價(jià)于k = Value() + 5;System.out.print
16、ln(k); 輸出結(jié)果:3425例9-15四. 日期相關(guān)類型Date類Calendar類Locale類TimeZone類GregorianCalendar類DateFormat 類SimpleDateFormat 類Date類java.util.Date類用于表示特定的時(shí)間點(diǎn),精確到毫秒,但不支持日期的國際化和分時(shí)區(qū)顯示。構(gòu)造方法:Date()Date(long date)主要功能方法:public int compareTo(Date anotherDate)public boolean equals(Object obj)public long getTime()public String
17、 toString()用法舉例(例9-16):TestDate.javaCalendar類抽象類java.util.Calendar類提供常規(guī)的日期修改功能和國際化支持。主要方法:public static Calendar getInstance()public int get(int field)public void set(int field, int value)public final void set(int year, int month, int date)public final void set(int year,int month,int date,int hourOf
18、Day,int minute, int second)public abstract void add(int field, int amount)用法舉例(例9-17):TestCalendar.javaLocale類Locale對象主要封裝“地區(qū)”和“語言種類”兩方面的信息。通常用于在國際化/本地化程序中以地區(qū)/語言相關(guān)的方式顯示日期、數(shù)字或文本信息等。主要方法:public Locale(String language)public Locale(String language, String country)public static Locale getDefault()public
19、 String getCountry()public String getLanguage()public final String getDisplayName()public static Locale getAvailableLocales()用法舉例(例9-18 ):TestLocale.java TimeZone類抽象類java.util.TimeZone類描述時(shí)區(qū)信息,可以調(diào)用如下靜態(tài)方法getDefault()以獲取相應(yīng)實(shí)例。public static TimeZone getDefault()public static TimeZone getTimeZone(String I
20、D)獲取可用時(shí)區(qū)ID:public static String getAvailableIDs()用法舉例(例9-19 ):TestTimeZone.java GregorianCalendar類GregorianCalendar是Calendar的子類,提供多數(shù)國家/地區(qū)使用的標(biāo)準(zhǔn)日歷系統(tǒng),并添加判斷閏年的功能。主要方法:GregorianCalendar()GregorianCalendar(TimeZone zone)GregorianCalendar(Locale aLocale)GregorianCalendar(TimeZone zone, Locale aLocale)Grego
21、rianCalendar(int year, int month, int dayOfMonth)GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)boolean isLeapYear(int year)用法舉例(例9-20 ):TestGregorianCalendar.javaDateFormat類提供日期/時(shí)間信息的格式化處理功能。主要方法:public static final DateFormat getDateInstance()public st
22、atic final DateFormat getTimeInstance()public static final DateFormat getDateTimeInstance()public final String format(Date date)用法舉例(例9-21 ):TestDateFormat.java風(fēng) 格描 述日期樣例(英文環(huán)境)時(shí)間樣例(英文環(huán)境)短格式較短4/17/078:50 AM中等格式較長Apr 17, 20078:50:33 AM長格式更長April 17, 20078:50:33 AM GMT+08:00完全格式最詳盡Tuesday, April 17, 20
23、078:50:33 AM GMT+08:00SimpleDateFormat類java.text.SimpleDateFormat類是DateFormat類的子類,它允許用戶自己定義日期/時(shí)間信息的表現(xiàn)格式,并提供更靈活的DateString信息轉(zhuǎn)換和解析的功能。在創(chuàng)建SimpleDateFormat實(shí)例時(shí)應(yīng)指定所轉(zhuǎn)換的字符串格式(模式串),否則系統(tǒng)會(huì)缺省采用與所在語言環(huán)境相關(guān)的默認(rèn)格式。用法舉例(例9-22 ):TestSimpleDateFormat.java日期/時(shí)間格式化模式字符表模式字符說 明a上午/下午(AM/PM)標(biāo)志D一年中的第幾天d一月中的第幾天E星期中的第幾天F一月中的第幾
24、個(gè)星期幾G年代標(biāo)志H小時(shí)(023)h小時(shí)(011),使用AM/PM區(qū)分上下午K小時(shí)(124)k小時(shí)(112),使用AM/PM區(qū)分上下午M月份m分鐘S毫秒s秒W一個(gè)月中的第幾星期w一年中的第幾星期y年Z太平洋標(biāo)準(zhǔn)時(shí)間(PST)時(shí)區(qū)zRFC822時(shí)區(qū)五. 數(shù)學(xué)相關(guān)類型Math類Random類BigInteger/BigDecimal類NumberFormat/DecimalFormat類Math類java.lang.Math類提供常用數(shù)學(xué)功能和數(shù)學(xué)常量數(shù)據(jù)截?cái)嗖僮鳎篶eil(), floor(), round()取最大、最小及絕對值操作:max(), min() , abs()三角函數(shù):sin()
25、, cos(), tan(), asin(), acos(), atan(), toDegrees(), toRadians() 冪運(yùn)算和對數(shù)運(yùn)算:pow(), exp(), sqrt(), log(), log10()其他操作:random()數(shù)學(xué)常量:PI, ERandom類java.util.Random類是基于 “線性同余”算法的一種偽隨機(jī)數(shù)序列生成器。其主要功能方法包括:public Random()public Random(long seed)public int nextInt()public int nextInt(int n)public double nextDouble
26、()public boolean nextBoolean()import java.util.Random;public class TestRandompublic static void main(String args)Random rand = new Random();System.out.println(rand.nextInt();System.out.println(rand.nextInt(10);System.out.println(rand.nextBoolean();System.out.println(rand.nextDouble();System.out.prin
27、tln(rand.nextFloat();輸出效果:860181765false0.91820975222811250.5919049例9-24BigInteger/BigDecimal類java.math包中定義的BigInteger和BigDecimal類型可以分別提供任意長度/精度的整數(shù)和浮點(diǎn)數(shù)運(yùn)算功能。BigInteger類主要方法:public BigInteger(String val)public static BigInteger valueOf(long val)public BigInteger add(BigInteger val)public BigInteger subtract(BigInteger val)public BigInteger multiply(BigInteger val)public BigInteger divide(BigInteger val)public int co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣合同解除的起訴狀示例3篇
- 方式器買賣合同范本3篇
- 新版不動(dòng)產(chǎn)買賣合同書3篇
- 房屋買賣建筑材料檢測合同3篇
- 房屋買賣委托代理協(xié)議書范例3篇
- 安全駕駛超速自省3篇
- 招標(biāo)文件遺漏補(bǔ)充公告3篇
- 攪拌站施工合同合作保修3篇
- 掌握閱讀招標(biāo)文件的方法3篇
- 房屋買賣居間合同填寫指南3篇
- 臨床輸血技術(shù)規(guī)范培訓(xùn)課件
- 2024年度供應(yīng)商管理培訓(xùn)課件
- 《小水電生態(tài)流量泄放設(shè)施改造及監(jiān)測技術(shù)導(dǎo)則》
- 車輛維修及配件采購項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo) )
- 養(yǎng)老院事故報(bào)告管理制度
- 2024年1月遼寧省普通高中學(xué)業(yè)水平合格性考試物理試題(含答案解析)
- 憲法在我心中課件
- 期末測試卷(試題)-2024-2025學(xué)年四年級(jí)上冊數(shù)學(xué)滬教版
- 電子產(chǎn)品生產(chǎn)工藝流程手冊
- 污水處理運(yùn)營維護(hù)方案
- 《Python程序設(shè)計(jì)》高職全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論