Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型.ppt_第1頁
Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型.ppt_第2頁
Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型.ppt_第3頁
Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型.ppt_第4頁
Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型.ppt_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Programming with Types,Java是種強類型語言必須顯示規(guī)定數(shù)據(jù)類型 使用基本類型可以大大地改善系統(tǒng)的特性,但是它不具有對象的特性,也不能滿足很多特殊的需要。所以要用包裝類來包裝基本類型,使它變成對象類型。 幾乎所有的基本類型(e.g. int, float, boolean)都有一個類或稱“包裝器類”與其對應(yīng),Class類則是表示類和接口的類型。 這些類具有三個優(yōu)點: (1)、特定類型的有用靜態(tài)方法具有邏輯的和統(tǒng)一的歸宿。For example,把字符串轉(zhuǎn)化為float的方法是Float類型類的靜態(tài)方法 (2)、描述性的方法和域也有邏輯歸宿。常數(shù)MIN_VALUE和MAX_VALUE存在于任一數(shù)值基本類型的類中,描述一個super類的方法存在于它的Class對象中。 (3)、對于基本類型,可以創(chuàng)建包裝器對象保存它們的值,然后這些對象可以應(yīng)用。(-所以基本類型的類叫做包裝器類(wrapper class)。),這些類型的層次關(guān)系,Java的威力:能從對應(yīng)用程序有意義的地方 載入類。 說明載入類的功能:游戲 如果開發(fā)一個游戲,使得玩家可以利用他自己選擇的任何策略編寫類來玩游戲,需要提供一個抽象類Player,玩家繼承它并實現(xiàn)自己的策略。 當玩家準備嘗試自己的策略時,他們往系統(tǒng)發(fā)送編譯過的字節(jié)碼。字節(jié)碼被載入游戲,經(jīng)過運算,把得分返回給玩家。,讓人感興趣的部分是:如何使游戲程序載入編譯過的字節(jié)碼使用類載入器(class loader) 通過繼承抽象的ClassLoader并實現(xiàn)它的loadClass()方法定義類載入器 loadClass方法: protected abstract Class loadClass(String name, boolean resolve) throws ClassNotFoundException / 如果resolve為true, 它必須調(diào)用resolveClass以確保這個類引用的所有類都載入了,包裝器類概述,大部分基本語言類型都有表示它的類,叫做包裝器類。 包裝器類具有2個基本功能: 1、為與這個類型相關(guān)的方法和變量(e.g. 字符串轉(zhuǎn)換和 取值范圍常數(shù))提供一個歸宿。 下面的實例檢驗到底是可以在一個特定的值上進行較快的float運 算,還是這個值需要比float所能提供的更大范圍: if ( value = Float.MIN_VALUE ,一些對所有的包裝器類公用的方法,1、構(gòu)造函數(shù),以基本類型為自變量,創(chuàng)建相應(yīng)類 型的一個對象(e.g. Character(char); ) 2、構(gòu)造函數(shù),解碼一個簡單的String參數(shù),得到 對象的初始值(Integer(String) ) 3、toString()方法:得到對象類型的字符串形式 4、typeValue():得到基本類型值,e.g. Character.charValue, Boolean.booleanValue ; 5、equals():比較同類型的類對象是否相等(區(qū)分大小寫) 6、hashCode():返回一個散列表的基于值的散列碼,利用包裝器類進行類型轉(zhuǎn)化的常用辦法 (以Integer為例,其他類類似),1 、用包裝器類來包裝基本類型,使它變成對象類型。 用其Constructor Summary :Integer (int value) , Integer(String s) 分別接受int和String。 2 、把一個包裝類變成基本類型: 有三種常用的方法: a. intValue(): 返回的是int 其它的類型也有這方法:#Value() 返回的是# 。 b. parseInt(String s): 這是一個static方法,用類名.parseInt(Strings) 返回的是int ,不用實例化一個類。要注意它傳入的是String 。 其它的類型也有這方法 parse#(String)返回的 是# 。 c. valueOf(String s): 這是一個static方法,用類名. valueOf(Strings) 但它返回的是Integer,是對象類型,可以與a方法一起用-就可 以返回int 。 其它的類型也有這方法 valueOf(String s)返回的是# 對象類型。 3、 最常用的方法: String(byte bytes, int offset,int length) byte buf = new byte100; int len = bis.read(buf); System.out.println( new String(buf, 0, en) ); / (explain it),具體的對象類型(其中的一些常用方法),1、Boolean: 不管其中大小寫字母如何混雜,上頁中提到的Constructor Summary只把“true”當作true,其他字符串都解釋為false,2、Character: 除提供常數(shù)MIN_VALUE和MAX_VALUE外,還提供常 數(shù)MIN_RADIX和MAX_RADIX(字符數(shù)字和整數(shù)之間 互譯的方法所能理解的最小和最大基數(shù)(explain it) ) public static int digit(char ch, int radix):返回指定基數(shù)上的數(shù)字ch的數(shù)值。若給定的字符不是合法數(shù)字,返回-1 public static char forDigit(int digit, int radix): 返回給定數(shù)字在指定的基數(shù)上的字符值。若給定的數(shù)字在指定的基數(shù)上非法,返回字符u0000 public static boolean isLowercase(char ch): 如果ch是個小 寫字母,返回true ( Uppercase同理 ) public static boolean isDigit(char ch) public static boolean isLetter(char ch) public static boolean isLetterOfDigit(char ch) public static boolean isJavaLetter(char ch) / 是否可以作為Java標識 / 符的第一個字母a letter | _ | $ public static boolean isJavaLetterOrDigit(char ch) public static boolean isSpace(char ch) / , t, n, f, r,PS:部分轉(zhuǎn)義符意義列表,f 新頁符(FF) r 回車(R) b 回格(Backspace, BS) t 水平制表符(HT) n 換行符(LF) ” 雙引號(“) 單引號() 反斜杠(),3、一些Number類的共同的常用方法前面 已列出,故不再贅述 補充說明: 除標準的Number方法,F(xiàn)loat和Double支持以下 方法(以Float和float為例,Double和Double類似) public final static float POSITIVE_INFINITY / +的值 public final static float NEGATIVE_INFIN

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論