班級文件java基礎精通常用的類_第1頁
班級文件java基礎精通常用的類_第2頁
班級文件java基礎精通常用的類_第3頁
班級文件java基礎精通常用的類_第4頁
班級文件java基礎精通常用的類_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精通常用的Java類課程代碼:AMPC0102V20課程介紹目的:熟練運用常用Java類型內容:Object類、字符串相關類型、封裝類、日期相關類型、數(shù)學相關類型重點:String類、封裝類、Date類、日期格式化難點:哈希碼、對象克隆操作精通常用的Java類 Java類的共同父類Object字符串相關類型封裝類日期相關類型數(shù)學相關類型一. Object類java.lang.Object類是所有Java類的最高層次父類,該類提供了面向對象編程技術的基本機制。主要方法列表:hashCode()方法toString()方法equals()方法finalize()方法clone()方法wait()方

2、法notify()/notifyAll()方法hashCode()方法返回當前對象的哈希碼(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();輸出結果:11077203a90653Persona90653-14576877public int hashCode()例9-1toString()方法以字符串形式返回當前對象描述信息,在Object類原始定義中,其返回的是對象所屬的類型名稱及其哈希碼。當使用System.out.println()方法直接打印輸出引用類型變量時,print

4、ln()方法中會先自動調用其toString()方法,再將所返回的字符串信息輸出。在進行String與其它類型數(shù)據(jù)的連接操作時,自動調用toString()方法,基本類型數(shù)據(jù)轉換為String類型時,調用了對應封裝類的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); / /等價于System.out.println(p1.toString();輸出結果:11077

6、203This is an instance of Person,age = 18This is an instance of Person,age = 18例9-2equals()方法方法功能:比較引用類型數(shù)據(jù)的等價性Java等價標準:引用類型比較引用,基本類型比較值。equals()方法與=操作符的區(qū)別:equals()方法只能比較引用類型數(shù)據(jù),而=可以比較引用類型及基本類型數(shù)據(jù);equals()方法存在特例:對File、String、Date及封裝類,比較的是對象類型及其內容而不考慮引用的是否為同一實例。可在根據(jù)需要重寫equals()方法,以改變其等價性評價標準。public bool

7、ean equals(Object obj) equals()方法應用舉例對比使用=和equals()方法例9-3:Person.java, TestEquals.java例9-4:TestEquals2.java重寫equals()方法,實現(xiàn)用戶定制等價性標準例9-5:Person.java, TestEquals3.javafinalize()方法Java運行時環(huán)境中的垃圾收集器在銷毀一個對象之前,會自動調用該對象的finalize()方法,然后才釋放對象的內存空間。通過在子類中重寫finalize()方法,以加入所需的邏輯代碼來配置系統(tǒng)資源或執(zhí)行其他清除操作。finalize()方法效果

8、演示(例9-6)Person.javaTestFinalize.javaprotected void finalize() throws Throwable clone()方法clone()方法用于實現(xiàn)對象克隆,要克隆的目標對象所屬的類必須實現(xiàn)java.lang.Cloneable接口。舉例:實現(xiàn)簡單的克隆操作(例9-7 )Person.javaTestClone.java淺度拷貝和深度拷貝protected native Object clone() throws CloneNotSupportedException;二. 字符串相關類型String類StringBuffer類StringB

9、uilder類StringTokenizer類String類java.lang.String類表示不可修改的Unicode編碼字符串。String類方法層次:構造方法字符串連接、轉換和截斷concat(), replace(), substring(), toLowerCase(), toUpperCase(), trim(), split()檢索和查找功能charAt(), startsWith(), indexOf(), lastIndexOf(), length() 內容比較equals(), equalsIgnoreCase(), compareTo()StringBuffer類Str

10、ingBuffer類對象保存可修改的Unicode字符序列。構造方法: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類用于將字符串按照默認或指定分隔符分解為多個片段。構造方法: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); 輸出結果:陽光沙灘海浪仙人掌例9-13三. 封裝類封裝類的概念和使用自動封裝和拆封封裝類概念封裝類用于封裝基本類型數(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); 輸出結果:314falsetrue31411011331b500例9-14自動封裝/拆封基本數(shù)據(jù)類型和相應的封裝類類型之間可以由系統(tǒng)進行自動轉換,而不必再顯式調

15、用封裝類的構造方法或相應的解析方法。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; /等價于k = Value() + 5;System.out.print

16、ln(k); 輸出結果:3425例9-15四. 日期相關類型Date類Calendar類Locale類TimeZone類GregorianCalendar類DateFormat 類SimpleDateFormat 類Date類java.util.Date類用于表示特定的時間點,精確到毫秒,但不支持日期的國際化和分時區(qū)顯示。構造方法: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ū)/語言相關的方式顯示日期、數(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類描述時區(qū)信息,可以調用如下靜態(tài)方法getDefault()以獲取相應實例。public static TimeZone getDefault()public static TimeZone getTimeZone(String I

20、D)獲取可用時區(qū)ID:public static String getAvailableIDs()用法舉例(例9-19 ):TestTimeZone.java GregorianCalendar類GregorianCalendar是Calendar的子類,提供多數(shù)國家/地區(qū)使用的標準日歷系統(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類提供日期/時間信息的格式化處理功能。主要方法: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風 格描 述日期樣例(英文環(huán)境)時間樣例(英文環(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類的子類,它允許用戶自己定義日期/時間信息的表現(xiàn)格式,并提供更靈活的DateString信息轉換和解析的功能。在創(chuàng)建SimpleDateFormat實例時應指定所轉換的字符串格式(模式串),否則系統(tǒng)會缺省采用與所在語言環(huán)境相關的默認格式。用法舉例(例9-22 ):TestSimpleDateFormat.java日期/時間格式化模式字符表模式字符說 明a上午/下午(AM/PM)標志D一年中的第幾天d一月中的第幾天E星期中的第幾天F一月中的第幾

24、個星期幾G年代標志H小時(023)h小時(011),使用AM/PM區(qū)分上下午K小時(124)k小時(112),使用AM/PM區(qū)分上下午M月份m分鐘S毫秒s秒W一個月中的第幾星期w一年中的第幾星期y年Z太平洋標準時間(PST)時區(qū)zRFC822時區(qū)五. 數(shù)學相關類型Math類Random類BigInteger/BigDecimal類NumberFormat/DecimalFormat類Math類java.lang.Math類提供常用數(shù)學功能和數(shù)學常量數(shù)據(jù)截斷操作:ceil(), floor(), round()取最大、最小及絕對值操作:max(), min() , abs()三角函數(shù):sin()

25、, cos(), tan(), asin(), acos(), atan(), toDegrees(), toRadians() 冪運算和對數(shù)運算:pow(), exp(), sqrt(), log(), log10()其他操作:random()數(shù)學常量:PI, ERandom類java.util.Random類是基于 “線性同余”算法的一種偽隨機數(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ù)和浮點數(shù)運算功能。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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論