freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java與sql的數(shù)據(jù)庫技術(shù)的學(xué)生成績管理系統(tǒng)(編輯修改稿)

2025-05-13 05:39 本頁面
 

【文章內(nèi)容簡介】 接實現(xiàn)。注意:當(dāng)類與接口(或者是接口與接口)發(fā)生方法命名沖突的時候,此時必須使用內(nèi)部類來實現(xiàn)。用接口不能完全地實現(xiàn)多繼承,用接口配合內(nèi)部類才能實現(xiàn)真正的多繼承。④ 匿名內(nèi)部類(必須掌握):匿名內(nèi)部類是一種特殊的局部內(nèi)部類,它是通過匿名類實現(xiàn)接口。IA被定義為接口。IA I=new IA(){}。注:一個匿名內(nèi)部類一定是在new的后面,用其隱含實現(xiàn)一個接口或?qū)崿F(xiàn)一個類,沒有類名,根據(jù)多態(tài),我們使用其父類名。因其為局部內(nèi)部類,那么局部內(nèi)部類的所有限制都對其生效。匿名內(nèi)部類是唯一一種無構(gòu)造方法類。匿名內(nèi)部類在編譯的時候由系統(tǒng)自動起名Out$。如果一個對象編譯時的類型是接口,那么其運行的類型為實現(xiàn)這個接口的類。因匿名內(nèi)部類無構(gòu)造方法,所以其使用范圍非常的有限。(下午:)Exception(例外/異常)(教程上的MODEL7)對于程序可能出現(xiàn)的錯誤應(yīng)該做出預(yù)案。例外是程序中所有出乎意料的結(jié)果。(關(guān)系到系統(tǒng)的健壯性)JAVA會將所有的錯誤封裝成為一個對象,其根本父類為Throwable。Throwable有兩個子類:Error和Exception。一個Error對象表示一個程序錯誤,指的是底層的、低級的、不可恢復(fù)的嚴(yán)重錯誤。此時程序一定會退出,因為已經(jīng)失去了運行所必須的物理環(huán)境。對于Error錯誤我們無法進(jìn)行處理,因為我們是通過程序來應(yīng)對錯誤,可是程序已經(jīng)退出了。我們可以處理的Throwable對象中只有Exception對象(例外/異常)。Exception有兩個子類:Runtime exception(未檢查異常)非Runtime exception(已檢查異常)(注意:無論是未檢查異常還是已檢查異常在編譯的時候都不會被發(fā)現(xiàn),在編譯的過程中檢查的是程序的語法錯誤,而異常是一個運行時程序出錯的概念。)在Exception中,所有的非未檢查異常都是已檢查異常,沒有另外的異常!!未檢查異常是因為程序員沒有進(jìn)行必要的檢查,因為他的疏忽和錯誤而引起的異常。一定是屬于虛擬機內(nèi)部的異常(比如空指針)。應(yīng)對未檢查異常就是養(yǎng)成良好的檢查習(xí)慣。已檢查異常是不可避免的,對于已檢查異常必須實現(xiàn)定義好應(yīng)對的方法。已檢查異??隙缭匠隽颂摂M機的范圍。(比如“未找到文件”)如何處理已檢查異常(對于所有的已檢查異常都要進(jìn)行處理):首先了解異常形成的機制:當(dāng)一個方法中有一條語句出現(xiàn)了異常,它就會throw(拋出)一個例外對象,然后后面的語句不會執(zhí)行返回上一級方法,其上一級方法接受到了例外對象之后,有可能對這個異常進(jìn)行處理,也可能將這個異常轉(zhuǎn)到它的上一級。對于接收到的已檢查異常有兩種處理方式:throws和try方法。注意:出錯的方法有可能是JDK,也可能是程序員寫的程序,無論誰寫的,拋出一定用throw。例:public void print() throws Exception.對于方法a,如果它定義了throws Exception。那么當(dāng)它調(diào)用的方法b返回異常對象時,方法a并不處理,而將這個異常對象向上一級返回,如果所有的方法均不進(jìn)行處理,返回到主方法,程序中止。(要避免所有的方法都返回的使用方法,因為這樣出現(xiàn)一個很小的異常就會令程序中止)。如果在方法的程序中有一行throw new Exception(),返回錯誤,那么其后的程序不執(zhí)行。因為錯誤返回后,后面的程序肯定沒有機會執(zhí)行,那么JAVA認(rèn)為以后的程序沒有存在的必要。對于try……catch格式:try {可能出現(xiàn)錯誤的代碼塊} catch(exception e){進(jìn)行處理的代碼} ; 對象變量的聲明用這種方法,如果代碼正確,那么程序不經(jīng)過catch語句直接向下運行;如果代碼不正確,則將返回的異常對象和e進(jìn)行匹配,如果匹配成功,則處理其后面的異常處理代碼。(如果用exception來聲明e的話,因為exception為所有exception對象的父類,所有肯定匹配成功)。處理完代碼后這個例外就完全處理完畢,程序會接著從出現(xiàn)異常的地方向下執(zhí)行(是從出現(xiàn)異常的地方還是在catch后面呢?利用程序進(jìn)行驗證)。最后程序正常退出。Try中如果發(fā)現(xiàn)錯誤,即跳出try去匹配catch,那么try后面的語句就不會被執(zhí)行。一個try可以跟進(jìn)多個catch語句,用于處理不同情況。當(dāng)一個try只能匹配一個catch。我們可以寫多個catch語句,但是不能將父類型的exception的位置寫在子類型的excepiton之前,因為這樣父類型肯定先于子類型被匹配,所有子類型就成為廢話。JAVA編譯出錯。在try,catch后還可以再跟一子句finally。其中的代碼語句無論如何都會被執(zhí)行(因為finally子句的這個特性,所以一般將釋放資源,關(guān)閉連接的語句寫在里面)。如果在程序中書寫了檢查(拋出)exception但是沒有對這個可能出現(xiàn)的檢查結(jié)果進(jìn)行處理,那么程序就會報錯。而如果只有處理情況(try)而沒有相應(yīng)的catch子句,則編譯還是通不過。如何知道在編寫的程序中會出現(xiàn)例外呢1. 調(diào)用方法,查看API中查看方法中是否有已檢查錯誤。2. 在編譯的過程中看提示信息,然后加上相應(yīng)的處理。Exception有一個message屬性。在使用catch的時候可以調(diào)用:Catch(IOException e){(())}。Catch(IOException e){()}。上面這條語句回告訴我們出錯類型所歷經(jīng)的過程,在調(diào)試的中非常有用。開發(fā)中的兩個道理:①如何控制try的范圍:根據(jù)操作的連動性和相關(guān)性,如果前面的程序代碼塊拋出的錯誤影響了后面程序代碼的運行,那么這個我們就說這兩個程序代碼存在關(guān)聯(lián),應(yīng)該放在同一個try中。② 對已經(jīng)查出來的例外,有throw(積極)和try catch(消極)兩種處理方法。對于try catch放在能夠很好地處理例外的位置(即放在具備對例外進(jìn)行處理的能力的位置)。如果沒有處理能力就繼續(xù)上拋。當(dāng)我們自己定義一個例外類的時候必須使其繼承excepiton或者RuntimeException。Throw是一個語句,用來做拋出例外的功能。而throws是表示如果下級方法中如果有例外拋出,那么本方法不做處理,繼續(xù)向上拋出。Throws后跟的是例外類型。斷言是一種調(diào)試工具(assert)其后跟的是布爾類型的表達(dá)式,如果表達(dá)式結(jié)果為真不影響程序運行。如果為假系統(tǒng)出現(xiàn)低級錯誤,在屏幕上出現(xiàn)assert信息。Assert只是用于調(diào)試。在產(chǎn)品編譯完成后上線assert代碼就被刪除了。方法的覆蓋中,如果子類的方法拋出的例外是父類方法拋出的例外的父類型,那么編譯就會出錯:子類無法覆蓋父類。結(jié)論:子類方法不可比父類方法拋出更多的例外。子類拋出的例外或者與父類拋出的例外一致,或者是父類拋出例外的子類型?;蛘咦宇愋筒粧伋隼狻H绻割愋蜔othrows時,子類型也不允許出現(xiàn)throws。此時只能使用try catch。練習(xí):寫一個方法:int add(int a,int b){ return a+b;}當(dāng)a+b=100。拋出100為異常處理。集合(從本部分開始涉及API)集合是指一個對象容納了多個對象,這個集合對象主要用來管理維護(hù)一系列相似的對象。數(shù)組就是一種對象。(練習(xí):如何編寫一個數(shù)組程序,并進(jìn)行遍歷。).*定義了一系列的接口和類,告訴我們用什么類NEW出一個對象,可以進(jìn)行超越數(shù)組的操作。(注:)集合框架接口的分類:(分collection接口 和 map接口) Collection接口 Map接口List接口 Set接口 SortedMap接口 SortedSet接口JAVA中所有與集合有關(guān)的實現(xiàn)類都是這六個接口的實現(xiàn)類。Collection接口:集合中每一個元素為一個對象,這個接口將這些對象組織在一起,形成一維結(jié)構(gòu)。List接口代表按照元素一定的相關(guān)順序來組織(在這個序列中順序是主要的),List接口中數(shù)據(jù)可重復(fù)。Set接口是數(shù)學(xué)中集合的概念:其元素?zé)o序,且不可重復(fù)。(正好與List對應(yīng))SortedSet會按照數(shù)字將元素排列,為“可排序集合”。Map接口中每一個元素不是一個對象,而是一個鍵對象和值對象組成的鍵值對(KeyValue)。KeyValue是用一個不可重復(fù)的key集合對應(yīng)可重復(fù)的value集合。(典型的例子是字典:通過頁碼的key值找字的value值)。例子:key1—value1。key2—value2。key3—value3.SortedMap:如果一個Map可以根據(jù)key值排序,則稱其為SortedMap。(如字典)!!注意數(shù)組和集合的區(qū)別:數(shù)組中只能存簡單數(shù)據(jù)類型。Collection接口和Map接口只能存對象。以下介紹接口:List接口:(介紹其下的兩個實現(xiàn)類:ArrayList和LinkedList)ArrayList和數(shù)組非常類似,其底層①也用數(shù)組組織數(shù)據(jù),ArrayList是動態(tài)可變數(shù)組。① 底層:指存儲格式。說明ArrayList對象都是存在于數(shù)組中。注:數(shù)組和集合都是從下標(biāo)0開始。ArrayList有一個add(Object o)方法用于插入數(shù)組。ArrayList的使用:(完成這個程序)先import .*;用ArrayList在一個數(shù)組中添加數(shù)據(jù),并遍歷。ArrayList中數(shù)組的順序與添加順序一致。只有List可用get和size。而Set則不可用(因其無序)。Collection接口都是通過Iterator()(即迭代器)來對Set和List遍歷。通過語句:Iterator it=()。 得到一個迭代器,將集合中所有元素順序排列。然后可以通過interator方法進(jìn)行遍歷,迭代器有一個游標(biāo)(指針)指向首位置。Interator有hasNext(),用于判斷元素右邊是否還有數(shù)據(jù),返回True說明有。然后就可以調(diào)用next動作。Next()會將游標(biāo)移到下一個元素,并把它所跨過的元素返回。(這樣就可以對元素進(jìn)行遍歷)練習(xí):寫一個程序,輸入對象信息,比較基本信息。集合中每一個元素都有對象,如有字符串要經(jīng)過強制類型轉(zhuǎn)換。Collections是工具類,所有方法均為有用方法,且方法為static。有Sort方法用于給List排序。()分為兩部分,一部分為排序規(guī)則;一部分為排序算法。規(guī)則用來判斷對象;算法是考慮如何排序。對于自定義對象,Sort不知道規(guī)則,所以無法比較。這種情況下一定要定義排序規(guī)則。方式有兩種:① :Comparable(可比較的)可以讓自定義對象實現(xiàn)一個接口,這個接口只有一個方法parableTo(Object o)其規(guī)則是當(dāng)前對象與o對象進(jìn)行比較,其返回一個int值,系統(tǒng)根據(jù)此值來進(jìn)行排序。如 當(dāng)前對象o對象,則返回值0;(可將返回值定義為1)如 當(dāng)前對象=o對象,則返回值=0;如 當(dāng)前對象o對象,則返回值〈0。(可將返回值定義為1)看TestArraylist的java代碼。我們通過返回值1和1位置的調(diào)換來實現(xiàn)升序和降序排列的轉(zhuǎn)換。② (比較器)它擁有pare(),用來比較兩個方法。要生成比較器,則用Sort中Sort(List,List(Compate))第二種方法更靈活,且在運行的時候不用編譯。注意:要想實現(xiàn)parTo()就必須在主方法中寫上implement parable.練習(xí):生成一個EMPLOYEE類,然后將一系列對象放入到ArrayList。用Iterator遍歷,排序之后,再進(jìn)行遍歷。集合的最大缺點是無法進(jìn)行類型判定(),這樣就可能出現(xiàn)因為類型不同而出現(xiàn)類型錯誤。解決的方法是添加類型的判斷。 LinkedList接口(在代碼的使用過程中和ArrayList沒有什么區(qū)別)ArrayList底層是object數(shù)組,所以ArrayList具有數(shù)組的查詢速度快的優(yōu)點以及增刪速度慢的缺點。而在LinkedList的底層是一種雙向循環(huán)鏈表。在此鏈表上每一個數(shù)據(jù)節(jié)點都由三部分組成:前指針(指向前面的節(jié)點的位置),數(shù)據(jù),后指針(指向后面的節(jié)點的位置)。最后一個節(jié)點的后指針指向第一個節(jié)點的前指針,形成一個循環(huán)。雙向循環(huán)鏈表的查詢效率低但是增刪效率高。所以LinkedList具有查詢效率低但增刪效率高的特點。ArrayList和LinkedList在用法上沒有區(qū)別,但是在功能上還是有區(qū)別的。LinkedList經(jīng)常用在增刪操作較多而查詢操作很少的情況下:隊列和堆棧。隊列:先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。堆棧:后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。注意:使用堆棧的時候一定不能提供方法讓不是最后一個元素的元素獲得出棧的機會。LinkedList提供以下方法:(ArrayList無此類方法)addFirst()。 removeFirst()。 addLast()。 removeLast()。在堆棧中,push為入棧操作,pop為出棧操作。Push用addFirst();pop用removeFirst(),實現(xiàn)后進(jìn)先出。用isEmpty()其父類的方法,來判斷棧是否為空。在隊列中,put為入隊列操作,get為出隊列操作。Put用addFirst(),get用removeLast()實現(xiàn)隊列。List接口的實現(xiàn)類(Vector)(與ArrayList相似,區(qū)別是Vector是重量級的組件,使用使消耗的資源比較多。)結(jié)論:在考慮并發(fā)的情況下用Vector(保證線程的安全
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1