工具類與算法.ppt_第1頁
工具類與算法.ppt_第2頁
工具類與算法.ppt_第3頁
工具類與算法.ppt_第4頁
工具類與算法.ppt_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Chap6工具類與算法 語言基礎(chǔ)類庫 Object類是java程序中所有類的直接或間接父類 也是類庫中所有類的父類 publicclassObjectClassObjectistherootoftheclasshierarchy EveryclasshasObjectasasuperclass Allobjects includingarrays implementthemethodsofthisclass 主要方法 protectedObjectclone publicbooleanequals Objectobj publicfinalClassgetClass 返回對象所屬類信息protectedvoidfinalize 終結(jié)器publicStringtoString 返回對象本身的信息 protectedObjectclone throwsCloneNotSupportedExceptionCreatesandreturnsacopyofthisobject Theprecisemeaningof copy maydependontheclassoftheobject Thegeneralintentisthat foranyobjectx theexpression x clone xwillbetrue andthattheexpression x clone getClass x getClass willbetrue butthesearenotabsoluterequirements Whileitistypicallythecasethat x clone equals x willbetrue thisisnotanabsoluterequirement publicclassex publicstaticvoidmain Stringargs booleanf Integern1 newInteger 100 Integern2 newInteger 100 f n1 equals n2 System out println f f n1 n2 System out println f xyxy1 newxy xyxy2 newxy xy1 i 10 xy2 i 10 f xy1 equals xy2 System out println f f xy1 xy2 System out println f classxy inti MicrosoftWindowsXP 版本5 1 2600 C 版權(quán)所有1985 2001MicrosoftCorp C DocumentsandSettings aa e E cdjavaE java javacex javaE java javaex運行結(jié)果truef n1 equals n2 falsef n1 n2 falsef xy1 equals xy2 falsef xy1 xy2 equals方法默認的操作是比較對象的內(nèi)存和屬性是否相同 系統(tǒng)中的類重寫了這個方法使他只比較屬性 是比較對象的內(nèi)存和屬性 數(shù)據(jù)類型類 引用數(shù)據(jù)類型 基本數(shù)據(jù)類型的第一個字母大寫主要方法和屬性 兩個屬性MAX VALUE和MIN VALUE其中IntegerByte這兩個屬性類型是int的 Long long構(gòu)造函數(shù)Byte bytex Byte Strings doc Byte bytex 用x初始化類的對象Byte Strings 用字符串對象s初始化對象數(shù)據(jù)類型之間的相互轉(zhuǎn)換方法byteValue doubleValue intValue longValue shortValue 字符串類型與數(shù)據(jù)類型間的轉(zhuǎn)換 數(shù)據(jù)類型類 引用數(shù)據(jù)類型 字符轉(zhuǎn)數(shù)據(jù)Integer parseInt Strings Float parseFloat Strings Integer valueOf Strings intValue Double valueOf Strings doubleValue 返回一個對象返回對象的值數(shù)據(jù)轉(zhuǎn)字符串D1 toString Double toString doubled publicStringtoString publicstaticStringtoString doubled classjava lang Objectclassjava lang Boolean implementsjava io Serializable classjava lang Character implementsjava lang Comparable java io Serializable classjava lang Character Subsetclassjava lang Character UnicodeBlockclassjava lang Class implementsjava io Serializable classjava lang ClassLoaderclassjava lang Compilerclassjava lang Mathclassjava lang Number implementsjava io Serializable classjava lang Byte implementsjava lang Comparable classjava lang Double implementsjava lang Comparable classjava lang Float implementsjava lang Comparable classjava lang Integer implementsjava lang Comparable classjava lang Long implementsjava lang Comparable classjava lang Short implementsjava lang Comparable classjava lang Package Math類 用來完成一些常用的數(shù)學(xué)運算 是Object的子類Math類的方法都是static的 可以直接通過類名直接引用 另外 Math類是最終類 主要屬性和方法 publicfinalstaticdoubleEpublicfinalstaticstaticdoublePIdoubleabs doublea 求絕對值doublerint doublea 對a四舍五入doublesqrt doublea 求平方根doublepow doublea doubleb 求a的b次方doublerandom 產(chǎn)生一個0 1間的隨機數(shù) 不含1 System類 java lang Objectjava lang SystempublicfinalclassSystemextendsObjectTheSystemclasscontainsseveralusefulclassfieldsandmethods Itcannotbeinstantiated AmongthefacilitiesprovidedbytheSystemclassarestandardinput standardoutput anderroroutputstreams accesstoexternallydefined properties ameansofloadingfilesandlibraries andautilitymethodforquicklycopyingaportionofanarray System類 提供標準的輸入輸出工具 錯誤信息的輸入輸出不能被實例化 只有類方法和類屬性 引用時以System為前綴 三個屬性publicstaticPrintStreamerrpublicstaticInputStreaminpublicstaticPrintStreamout用System類的方法獲取系統(tǒng)信息 完成系統(tǒng)操作 publicstaticvoidSystem exit 0 publicstaticvoidexit intstatus TerminatesthecurrentlyrunningJavaVirtualMachine Theargumentservesasastatuscode byconvention anonzerostatuscodeindicatesabnormaltermination ThismethodcallstheexitmethodinclassRuntime Thismethodneverreturnsnormally ThecallSystem exit n iseffectivelyequivalenttothecall Runtime getRuntime exit n publicstaticvoidgc Runsthegarbagecollector CallingthegcmethodsuggeststhattheJavaVirtualMachineexpendefforttowardrecyclingunusedobjectsinordertomakethememorytheycurrentlyoccupyavailableforquickreuse Whencontrolreturnsfromthemethodcall theJavaVirtualMachinehasmadeabestefforttoreclaimspacefromalldiscardedobjects ThecallSystem gc iseffectivelyequivalenttothecall Runtime getRuntime gc Applet類與Applet小程序 Applet的基本工作原理Applet類ClassHierarchyclassjava lang Objectclassjava awt Componentclassjava awt Containerclassjava awt Panel implementsjavax accessibility Accessible classjava applet Applet html文件 applet www瀏覽器 服務(wù)器 2下載文件 html文件 applet 3請求applet文件 4下載applet 1請求html文件 5解釋執(zhí)行applet文件 Applet類的主要方法 init 方法用來完成主類實例的初始化工作 用戶可重載此方法 來完成創(chuàng)建和初始化對象等操作 start 方法用來啟動瀏覽器運行applet的主線程 瀏覽器將在調(diào)用init方法之后 接著自動調(diào)用start方法 用戶可以重載此方法 除此之外 applet被重新啟動時也會被系統(tǒng)自動調(diào)用造成apple重啟動的兩種情況 一是使用了reload操作二是轉(zhuǎn)向其他的html頁面后 又返回 paint Graphicsg 方法主要作用是在applet界面中顯示圖形文字和其他界面元素 在applet啟動后 由瀏覽器自動調(diào)用 導(dǎo)致瀏覽器調(diào)用paint方法的情況有三種 applet被啟動后 自動調(diào)用來重新描繪自己的界面applet所在瀏覽器窗口改變時applet的其他相關(guān)方法被調(diào)用時 如repaint 方法被調(diào)用時 系統(tǒng)首先調(diào)用update 方法將applet所占空間的屏幕清空 然后再調(diào)用paint方法 paint方法固定參數(shù)Graphicsg Graphics用來完成較低級的圖形用戶界面操作的類 可以畫點 線 圓 多邊形 輸出文字等 它是一個抽象類 用戶不可以創(chuàng)建它的對象 stop 方法當(dāng)用戶離開該網(wǎng)頁時 執(zhí)行stop方法destroy 方法當(dāng)用戶退出瀏覽器時 瀏覽器中的applet的實例也在內(nèi)存中被刪除 在這之前瀏覽器會自動調(diào)用此方法 完成釋放資源和關(guān)閉連接等操作 Applet的生命周期和繪圖周期 當(dāng)一個Applet開始運行時 會啟動兩個線程并執(zhí)行 一個是主線程 生命周期 一個是AWT線程 繪圖周期主線程包括init start stop destroy 分別對應(yīng)生命周期的初始化 啟動 終止和消亡各階段AWT線程包括paint repaint 和update 方法 繪圖周期圖 初始化init 啟動start 終止stop 消亡destroy 第一次載入 啟動并執(zhí)行applet 轉(zhuǎn)向其他網(wǎng)頁時 applet暫停執(zhí)行 回到本網(wǎng)頁時 重新激活applet 關(guān)閉瀏覽器 repaint update paint 第一次繪制 當(dāng)某些操作破壞了顯示 須重新繪制時 1 擦除并填充成背景顏色 2 調(diào)用paint 編程控制 繪圖周期的幾個主要方法 update 方法 用于更新圖形 它首先清除背景 在調(diào)用paint 方法完成組建中的具體繪圖 通常不改變update 方法 repaint 方法 主要用于重新繪圖 在組件外形發(fā)生變化 repaint方法被系統(tǒng)自動調(diào)用 本方法將調(diào)用update方法實現(xiàn)對組件的更新 repaint方法有多種重載的方法paint 方法 一個AWT線程要處理各種組件的繪圖工作 并負責(zé)其輸入事件 因此在paint和update方法的程度盡量短 不要只形太耗時的操作 HTML文件參數(shù)傳遞 除了前面用過的CODEHEIGHTWIDTH之外 還有以下的參數(shù) CODEBASE 當(dāng)字節(jié)碼文件與HTML文件保存位置不同時 給出地址URL形式ALT解釋HTML頁面的瀏覽器不包含JAVA解釋器時 將信息顯示給用戶 ALIGN界面在瀏覽器中的對齊方式 ALIGN LEFT以上三個參數(shù)同CODE一樣包含在內(nèi)部向APPLET傳遞參數(shù) HTML文件參數(shù)傳遞 HTML文件可以向所嵌入的APPLET程序傳遞參數(shù) 通過標記來完成參數(shù)名參數(shù)值在APPLET程序中利用getParameter Stringname 來去的參數(shù)值 例myhmlpara 同時實現(xiàn)APPLET與APPLICATION 例appletcation 同時實現(xiàn)APPLET與APPLICATION 實現(xiàn)方式有兩種在已經(jīng)成型的application的基礎(chǔ)上進行改造 把它修改成一個applet在一個已經(jīng)成型的applet的基礎(chǔ)上進行改造 把它修改成一個application對于application只要求一個main方法 而applet可以有多個入口和方法 所以 后者 即在applet基礎(chǔ)上改造成application較實用 importjava awt importjava awt event importjava applet Applet publicclassappletcationextendsApplet publicstaticvoidmain Stringargs Framefrm newFrame thisisapplication appletcationapp newappletcation frm add Center app frm setSize 200 200 frm validate frm setVisible true frm addWindowListener newWindowControl app app init app start publicvoidpaint Graphicsg g drawString hello 50 50 publicvoiddestroy System exit 0 classWindowControlextendsWindowAdapter Appletc publicWindowControl Appletc this c c publicvoidwindowClosing WindowEvente c destroy 數(shù)組 數(shù)組是相同數(shù)據(jù)類型的元素的集合數(shù)組中的各個元素是有先后順序的 它們在內(nèi)容中按照這個先后順序連續(xù)存放在一起每個數(shù)組元素用整個數(shù)組的名字和它自己在數(shù)組中的順序位置來表達a 0 聲明數(shù)組數(shù)組元素類型數(shù)組名 Stringargs 或者數(shù)組元素類型 數(shù)組名 int ary1 注 元素類型可以是基本數(shù)據(jù)類型也可是對象Employee aryemp 創(chuàng)建數(shù)組空間即給數(shù)組分配內(nèi)存空間數(shù)組名 new數(shù)組元素類型 數(shù)組元素的個數(shù) 或把聲明數(shù)組和創(chuàng)建數(shù)據(jù)空間一起完成數(shù)組元素類型數(shù)組名 new數(shù)組元素類型 x e gintmyinary newint 100 Employ aryemp newEmploy 10 注意java不支持變長數(shù)組 創(chuàng)建空間必須指明數(shù)組長度對于基本數(shù)據(jù)類型還可以直接賦初值intmyintary 1 2 3 4 5 6 7 8 9 創(chuàng)建數(shù)組元素并初始化數(shù)組元素為基本數(shù)據(jù)類型則可以不用進行初始化否則 當(dāng)數(shù)組的元素是某類的對象時 必須創(chuàng)建并初始化數(shù)組 employee Stringname doubleinitsal charsex employee myaryemp employee 10 for inti 0 i 10 i employee i newemployee null 300 m 如果強行使用未經(jīng)初始化的數(shù)組會拋出NullPointException異常 數(shù)組 幾點注意事項 數(shù)組的下標是從0開始 最末下標 個數(shù) 1所有的數(shù)組都有一個length屬性java系統(tǒng)能自動檢查是否有數(shù)組下標越界的情況 此時會拋出系統(tǒng)異常數(shù)組下標越界異常 因此在程序中要利用length來控制數(shù)組下標的上界 數(shù)組實際上是一種隱含的 數(shù)組類 的實例 向量 Vector 向量和數(shù)組使用情況 數(shù)組元素為基本數(shù)據(jù)類型元素的數(shù)目基本固定 插入 刪除和查找操作少向量元素不能為基本數(shù)據(jù)類型需處理的對象的數(shù)目不定元素類型不同 都是對象插入刪除操作較多經(jīng)常需要定位查找不同類之間傳遞大量的數(shù)據(jù) 創(chuàng)建向量及常用方法 創(chuàng)建格式Vector對象名 newVector 向量是一個類因此創(chuàng)建一個向量類的對象同前面一樣 構(gòu)造函數(shù)有四個 Vector intinitCapacity intcapacityIncrement 1開始創(chuàng)建時Vector含有的元素數(shù)目2一次追加元素的數(shù)目Vectormyvect newVector 100 50 開始100 150 200 向量中添加元素的方法有兩種 addElement Objectobj 在向量的尾部插入對象objinsertElement Objectobj intindex 在向量的指定位置插入對象obj Vectormyvector newVector 10 10 for inti 1 i 10 i myvector addElement newD200 card 200 50 0 向量名添加的元素即對象構(gòu)造函數(shù)對對象進行初始化 myvector insertElement newD200 card 200 50 0 0 要插入的對象插入位置 第一個 向量中修改和刪除元素的方法修改voidsetElement Objectobj intindex 在向量序列中指定位置的元素設(shè)置為obj刪除booleanremoveElement Objectobj 刪除向量中與指定的對象obj相同的第一個元素 同時將后面的元素提前補上空位 若不存在這樣的元素 則返回false voidremoveElement intindex 刪除指定位置的向量voidremoveElements 刪除向量中所有的元素 myvector setElement newD200 card 300 50 0 0 查找向量序列中的元素ObjectelementAt intindex 返回指定位置的元素booleancontains Objectobj 檢查向量序列中是否包含指定的對象元素obj 是則返回true否則返回falseintindexOf Objectobj intstart index 從指定位置start index開始向后搜索 返回第一個與指定對象obj相同的元素的下標位置 若不存在則返回 1intlastIndexOf Objectobj intstart index 從指定的位置start index開始向前搜索 返回第一個與指定對象obj相同的元素的下標位置 若不存在則返回 1 字符串 String類StringBuffer類JavaApplication命令行參數(shù) String類 創(chuàng)建字符串常量String對象格式 Stringmystr newString Stringmystr xyz 構(gòu)造函數(shù) 共有11 String 創(chuàng)建一個空的字符串常量String Stringvalue String charvalue 用一個字符數(shù)組的元素初始化String StringBufferbuffer String類封裝的方法字符串常量的操作intlength 注意與數(shù)組中的Length屬性的不同 判斷字符串的前綴和后綴publicbooleanstartsWith Stringprefix 是否以prefix為前綴publicbooleanendsWith Stringsuffix 是否以suffix為后綴字符串中單個字符的查找intindexOf intch 從頭向后查找 返回第一個與字符ch相同的字符的位置 從零開始 注意參數(shù)類型Strings1 abcedeio s1 indexOf int e intindexOf intch intfromIndex 從指定的位置fromIndex開始向后查找ch第一個出現(xiàn)的位置 從字符串的尾部開始比較的兩個方法 intlastIndexOf intch intlastIndexOf intch intfromIndex 字符串中子串的查找indexOf方法的重載indexOf Stringstr indexOf Stringstr intfromIndex lastindexOf Stringstr lastindexOf Stringstr intfromIndex 兩個字符串的比較intcompareTo StringanotherString 若兩個字符串相同則返回0 若按字母需當(dāng)前字符串大于參數(shù)字符串返回一個大于0的整數(shù) 若小于參數(shù)字符串返回一個小于0的整數(shù)booleanequals obj 重寫了Object的方法booleanequalsIgnorCase StringanotherString 不區(qū)分大小寫 連接兩個字符串Stringconcat Stringstr 將當(dāng)前字符串與參數(shù)字符串連接 并返回這個連接后的字符串 但是當(dāng)前字符串本身并不發(fā)生改變Strings abc Strings1 s concat xyz s1 abcxyz s abc 數(shù)字類型轉(zhuǎn)化成字符串類型valueOf方法toString方法 StringBuffer String字符串已經(jīng)創(chuàng)建其長度和內(nèi)容都不能更改 而且要求必須賦初值StringBuffer表示的是可以擴充 修改的字符串 創(chuàng)建的時候不一定要給出初值構(gòu)造函數(shù)StringBuffer StringBuffer intlength 確定字符串的長度StringBuffer Stringstr 用str來初始化StringBuffer的字符串對象 對字符串變量的擴充 修改與操作StringBufferappend 參數(shù)類型參數(shù)對象名 在原字符串后面加由參數(shù)轉(zhuǎn)化成的字符串StringBufferinsert int插入位置 參數(shù)類型參數(shù)名 在指定的位置后加字符串 如果要將StringBuffer在屏幕顯示出來必須先用toString方法轉(zhuǎn)換成String類型的 因為Print方法不接受StringBuffer類型的參數(shù)StringBuffersb1 newStringBuffer abced System out println sb1 Strings1 sb1 toString setCharAt intindex charch 用來修改指定位置index的字符用所給字符ch替換StringBuffersb1 newStringBuffer aaaaaa sb1 setCharAt 0 b 字符串的賦值和加法Stringmystr java mystr mystr program JavaApplication命令行參數(shù) applet程序可以通過html傳遞參數(shù) application可以通過命令行參數(shù)傳遞數(shù)據(jù)命令行參數(shù)通過main方法的數(shù)組參數(shù)args 傳遞 在運行命令之后緊跟參數(shù) 參數(shù)之間用空格分隔 如果命令行參數(shù)中有空格 則可以用雙引號將整個參數(shù)括起來以示區(qū)別 命令行參數(shù)的類型均為字符串型例子6 4 因為main方法的參數(shù)args 是字符串類型的數(shù)組 因此每個元素的類型為字符串型 輸入幾個參數(shù) 數(shù)組中就有幾個元素 在使用命令行參數(shù)時 要注意數(shù)組越界問題 運行程序時 系統(tǒng)會自動檢查數(shù)組是否越界 并拋出越界異常 所以在程序中要檢查用戶輸入的參數(shù)是否滿足要求 由于下標越界產(chǎn)生的系統(tǒng)異常 使用數(shù)組的時候

溫馨提示

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

評論

0/150

提交評論