




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
學(xué)問復(fù)習(xí).類是一種抽象的概念,對象是類的一種詳細(xì)表示形式,是詳細(xì)的概念。先有類,然后由類來生成對象()O對象又叫做實例()。.類由兩大部分構(gòu)成:屬性以及方法。屬性一般用名詞來表示,方法一般用動詞來表示。3.假如一個源文件中定義了多個類,那么這些類中最多只能有一個類是 的,換句話說,定義的多個類可以都不是的。.在中進(jìn)行方法的參數(shù)傳遞時,無論傳遞的是原生數(shù)據(jù)類型還是引用類型,參數(shù)傳遞方式統(tǒng)一是傳值()o中沒有傳引用()的概念。.方法重載()。表示兩個或多個方法名字相同,但方法參數(shù)不同。方法參數(shù)不同有兩層含義:1)參數(shù)個數(shù)不同。2)參數(shù)類型不同。留意:方法的返回值對重載沒有任何影響。.構(gòu)造方法重載:只需看參數(shù)即可。假如想在一個構(gòu)造方法中調(diào)用另外一個構(gòu)造方法,那么可以運用()的方式調(diào)用,()括號中的參數(shù)表示目標(biāo)構(gòu)造方法的參數(shù)。()必須要作為構(gòu)造方法的第一條語句,換句話說,()之前不能有任何可執(zhí)行的代碼。.繼承():是單繼承的,意味著一個類只能從另一個類繼承(被繼承的類叫做父類【基類,工繼承的類叫做子類),中的繼承運用關(guān)鍵字。.當(dāng)生成子類對象時,默認(rèn)首先調(diào)用父類的不帶參數(shù)的構(gòu)造方法,然后執(zhí)行該構(gòu)造方法,生成父類的對象。接下來,再去調(diào)用子類的構(gòu)造方法,1)首先在中查找有沒有這個字符串對象,假如有,則不在中再去創(chuàng)建這個對象了,干脆在堆中()中創(chuàng)建一個字符串對象,然后將堆中的這個對象的地址返回來,賦給S引用,導(dǎo)致S指向了堆中創(chuàng)建的這個字符串對象。2)假如沒有,則首先在中創(chuàng)建一個““對象,然后再在堆中()創(chuàng)建一個”“對象,然后將堆中的這個”“對象的地址返回來,賦給s引用,導(dǎo)致s指向了堆中所創(chuàng)建的這個”“對象。.包裝類()o針對于原生數(shù)據(jù)類型的包裝。全部的包裝類(8個)位于包下。中的8個包裝類分別是:,,,,,,,。他們的運用方式都是一樣的,可以實現(xiàn)原生數(shù)據(jù)類型和包裝類型的雙向轉(zhuǎn)換.數(shù)組():相同類型數(shù)據(jù)的集合就叫做數(shù)組。.如何定義數(shù)組??谧兞棵?[數(shù)組中元素的個數(shù)];可以依據(jù)下列方式定義長度為10的數(shù)組:[]a=[10];或者a口=[10];.數(shù)組中的元素索引是從0起先的。對于數(shù)組來說,最大的索引數(shù)組的長度-1O.定義數(shù)組的第3種方式:口變量名二{口}{逗號分隔的初始化值列表};. 中的每個數(shù)組都有一個名為的屬性,表示數(shù)組的長度。屬性是,,的。數(shù)組長度一旦確定,就不能變更大小。. []a=[10],其中a是一個引用,它指向了生成的數(shù)組對象的首地址,數(shù)組中每個元素都是類型,其中僅存放數(shù)據(jù)值本身。.二維數(shù)組。二維數(shù)組是一種平面的二維結(jié)構(gòu),本質(zhì)上是數(shù)組的數(shù)組。二維數(shù)組的定義方式:□□a=[2][3];.三維數(shù)組??诳诳赼=[2][3][4];.冒泡排序。(駕馭交換排序,快速排序的原理和實現(xiàn)方式).二分查找():待查找的數(shù)組要有序。.隨機(jī)生成50個數(shù)字(整數(shù)),每個數(shù)字的范圍是[10,50],統(tǒng)計每個數(shù)字出現(xiàn)的次數(shù)以及出現(xiàn)次數(shù)最多的數(shù)字和它的個數(shù),最終將每個數(shù)字及其出現(xiàn)次數(shù)打印出來,假如某個數(shù)字出現(xiàn)次數(shù)為0,則不要打印它。打印時依據(jù)數(shù)字的升序排列。.對于中的常量的命名規(guī)則:全部單詞的字母都是大寫,假如有多個單詞,那么運用下劃線連接即可。比如說:0=20;.在中聲明常量時通常都會加上關(guān)鍵字,這樣對象的每個實例都會訪問唯一一份常量值。. (),集成開發(fā)環(huán)境。1)。,最高版本是6.9.1)o))(日蝕、月蝕),最高版本3.6.1.集合中存放的依舊是對象的引用而不是對象本身。. 底層采納數(shù)組實現(xiàn),當(dāng)運用不帶參數(shù)的構(gòu)造方法生成對象時,事實上會在底層生成一個長度為10的類型數(shù)組.假如增加的元素個數(shù)超過了10個,那么底層會新生成一個數(shù)組,長度為原數(shù)組的1.5倍+1,然后將原數(shù)組的內(nèi)容復(fù)制到新數(shù)組當(dāng)中,并且后續(xù)增加的內(nèi)容都會放到新數(shù)組當(dāng)中。當(dāng)新數(shù)組無法容納增加的元素時,重復(fù)該過程。.對于元素的刪除操作,須要將被刪除元素的后續(xù)元素向前移動,代價比較高。.集合當(dāng)中只能放置對象的引用,無法放置原生數(shù)據(jù)類型,我們須要運用原生數(shù)據(jù)類型的包裝類才能加入到集合當(dāng)中。9.集合當(dāng)中放置的都是類型,因此取出來的也是類型,那么必須要運用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)換為真正的類型(放置進(jìn)去的類型)。10.關(guān)于和的比較分析a)底層采納數(shù)組實現(xiàn),底層采納雙向鏈表實現(xiàn)。b)當(dāng)執(zhí)行插入或者刪除操作時,采納比較好。c)當(dāng)執(zhí)行搜尋操作時,采納比較好。.當(dāng)向添加一個對象時,事實上就是將該對象放置到了底層所維護(hù)的數(shù)組當(dāng)中;當(dāng)向中添加一個對象時,事實上內(nèi)部會生成一個對象,該對象的結(jié)構(gòu)為:其中的類型的元素就是我們向中所添加的元素,然后又構(gòu)造好了向前和向后的引用、,最終將生成的這個對象加入到了鏈表當(dāng)中。換句話說,中所維護(hù)的是一個個的對象。.關(guān)于類的方法的特點a)自反性:(x)應(yīng)當(dāng)返回b)對稱性:(y)為,那么(x)也為。c)傳遞性:(y)為并且⑵為,那么(z)也應(yīng)當(dāng)為。d)一樣性:(y)的第一次調(diào)用為,那么(y)的其次次、第三次、第n次調(diào)用也應(yīng)當(dāng)為,前提條件是在比較之間沒有修改x也沒有修改y。e)對于非空引用x,()返回。.關(guān)于類的()方法的特點:a)在應(yīng)用的一次執(zhí)行過程當(dāng)中,對于同一個對象的方法的多次調(diào)用,他們應(yīng)當(dāng)返回同樣的值(前提是該對象的信息沒有發(fā)生變更)。b)對于兩個對象來說,假如運用方法比較返回,那么這兩個對象的值肯定是相同的。c)對于兩個對象來說,假如運用方法比較返回,那么這兩個對象的值不要求肯定不同(可以相同,可以不同),但是假如不同則可以提高應(yīng)用的性能。d)對于類來說,不同的對象的值是不同的(類的值表示的是對象的地址)。.當(dāng)運用時,()方法就會得到調(diào)用,推斷已經(jīng)存儲在集合中的對象的值是否和增加的對象的值一樣;假如不一樣,干脆加進(jìn)去;假如一樣,再進(jìn)行方法的比較,方法假如返回,表示對象已經(jīng)加進(jìn)去了,就不會再增加新的對象,否則加進(jìn)去。.假如我們重寫方法,那么也要重寫方法,反之亦然。.(映射):的()方法會返回的集合,因為的鍵是不能重復(fù)的,因此()方法的返回類型是;而的值是可以重復(fù)的,因此()方法的返回類型是,可以容納重復(fù)的元素。注:是異步處理機(jī)制,而是同步的;1.有這樣一個類:要求:假如有若干個類對象存在一個當(dāng)中,對他們進(jìn)行排序,分別依據(jù)名字、年齡、進(jìn)行排序(要有正序和倒序兩種排序方式)。假如年齡或者姓名重復(fù),依據(jù)的正序進(jìn)行排序。要求運用策略模式進(jìn)行。.底層是運用實現(xiàn)的。當(dāng)運用方法將對象添加到當(dāng)中時,事實上是將該對象作為底層所維護(hù)的對象的,而則都是同一個對象(該對象我們用不上);. 底層維護(hù)一個數(shù)組,我們向中所放置的對象事實上是存儲在該數(shù)組當(dāng)中;.當(dāng)向中一對鍵值時,它會依據(jù)的值計算出一個位置,該位置就是此對象打算往數(shù)組中存放的位置。.假如該位置沒有對象存在,就將此對象干脆放進(jìn)數(shù)組當(dāng)中;假如該位置已經(jīng)有對象存在了,則順著此存在的對象的鏈起先找尋(類有一個類型的成員變量,指向了該對象的下一個對象),假如此鏈上有對象的話,再去運用方法進(jìn)行比較,假如對此鏈上的某個對象的方法比較為,則將該對象放到數(shù)組當(dāng)中,然后將數(shù)組中該位置以前存在的那個對象鏈接到此對象的后面。. 的內(nèi)存實現(xiàn)布局:.所謂泛型:就是變量類型的參數(shù)化。.當(dāng)遍歷集合或數(shù)組時,假如須要訪問集合或數(shù)組的下標(biāo),那么最好運用舊式的方式來實現(xiàn)循環(huán)或遍歷,而不要運用增加的循環(huán),因為它丟失了下標(biāo)信息。.類有一個緩存,它會緩存介于-128?127之間的整數(shù)。.可變參數(shù):可變參數(shù)本質(zhì)上就是一個數(shù)組,對于某個聲明白可變參數(shù)的方法來說,我們既可以傳遞離散的值,也可以傳遞數(shù)組對象。但假如將方法中的參數(shù)定義為數(shù)組,那么只能傳遞數(shù)組對象而不能傳遞離散的值。.可變參數(shù)必須要作為方法參數(shù)的最終一個參數(shù),即一個方法不行能具有兩個或兩個以上的可變參數(shù)。.枚舉():我們所定義的每個枚舉類型都繼承自類,枚舉中的每個成員默認(rèn)都是的。.而每個枚舉的成員其實就是您定義的枚舉類型的一他1實例()。換句話說,當(dāng)定義了一個枚舉類型后,在編譯時刻就能確定該枚舉類型有幾個實例,分別是什么。在運行期間我們無法再運用該枚舉類型創(chuàng)建新的實例了,這些實例在編譯期間就已經(jīng)完全確定下來了。.靜態(tài)導(dǎo)入:a);b);.表示導(dǎo)入類中的靜態(tài)成員變量以及靜態(tài)方法。留意:運用時,要始終導(dǎo)入到類中的靜態(tài)成員變量或靜態(tài)方法。.中,無論生成某個類的多少個對象,這些對象都會對應(yīng)于同一個對象。.要想運用反射,首先須要獲得待處理類或?qū)ο笏鶎?yīng)的對象。.獲得某個類或某個對象所對應(yīng)的對象的常用的3種方式:a)運用類的靜態(tài)方法:(“”);b)運用類的語法:;c)運用對象的()方法:s="";<?>=();.若想通過類的不帶參數(shù)的構(gòu)造方法來生成對象,我們有兩種方式:a)先獲得對象,然后通過該對象的()方法干脆生成即可:<?>=;=0;b)先獲得對象,然后通過該對象獲得對應(yīng)的對象,再通過該對象的()方法生成:<?>=;=(口{});=(□{));.若想通過類的帶參數(shù)的構(gòu)造方法生成對象,只能運用下面這一種方式:<?>=;二(□{,});二(□{“",3});.返回的是,而返回的是類所對應(yīng)的對象。.靜態(tài)代理模式圖示.注解():a)注解表示子類要重寫()父類的對應(yīng)方法。b)注解表示方法是不建議被運用的。c)注解表示抑制警告。.自定義注解:當(dāng)注解中的屬性名為時,在對其賦值時可以不指定屬性的名稱而干脆寫上屬性值即可;除了以外的其他值都須要運用這種賦值方式,即明確指定給誰賦值。.當(dāng)我們運用關(guān)鍵字定義一個注解時,該注解隱含地繼承了接口;假如我們定義了一個接口,并且讓該接口繼承自,那么我們所定義的接口依舊還是接口而不是注解;本身是接口而不是注解??梢院皖惐?。. (3.8、4):.我的名言:沒有反射,許多框架就不存在了。(,)o.4的執(zhí)行的一般流程:a)首先獲得待測試類所對應(yīng)的對象。b)然后通過該對象獲得當(dāng)前類中全部方法所對應(yīng)的數(shù)組。c)遍歷該數(shù)組,取得每一個對象d)調(diào)用每個對象的()方法,推斷該方法是否被注解所修飾。e)假如該方法返回,那么調(diào)用()方法去執(zhí)行該方法,否則不執(zhí)行。.單元測試不是為了證明你是對的,而是證明你沒有錯誤。.(編寫平安的代碼):o.異樣()。.中的異樣分為兩大類:(非)().中全部的異樣類都會干脆或間接地繼承自。.類也是干脆繼承自類,它叫做運行時異樣,中全部的運行時異樣都會干脆或間接地繼承自。.中凡是繼承自而不是繼承自的類都是非運行時異樣。.異樣處理的一般結(jié)構(gòu)是:(e)無論程序是否出現(xiàn)異樣,塊中的代碼都是會被執(zhí)行的。.對于非運行時異樣(),必須要對其進(jìn)行處理,處理方式有兩種:第一種是運用.?…進(jìn)行捕獲;其次種是在調(diào)用該會產(chǎn)生異樣的方法所在的方法聲明.對于運行時異樣(),我們可以不對其進(jìn)行處理,也可以對其進(jìn)行處理。舉薦不對其進(jìn)行處理。.是空指針異樣,出現(xiàn)該異樣的緣由在于某個引用為,但你卻調(diào)用了它的某個方法。這時就會出現(xiàn)該異樣。.所謂自定義異樣,通常就是定義了一個繼承自類的子類,那么這個類就是一個自定義異樣類。通常狀況下,我們都會干脆繼承自類,一般不會繼承某個運行時的異樣類。.我們可以運用多個塊來捕獲異樣,這時須要將父類型的塊放到子類型的塊之后,這樣才能保證后續(xù)的可能被執(zhí)行,否則子類型的生成子類的對象?!疽肷勺宇惖膶ο?,首先須要生成父類的對象,沒有父類對象就沒有子類對象。比如說:沒有父親,就沒有孩子】。. 關(guān)鍵字:表示對父類對象的引用。.假如子類運用()顯式調(diào)用父類的某個構(gòu)造方法,那么在執(zhí)行的時候就會找尋和()所對應(yīng)的構(gòu)造方法而不會再去找尋父類的不帶參數(shù)的構(gòu)造方法。和一樣,也必須要作為構(gòu)造方法的第一條執(zhí)行語句,前面不能有其他可執(zhí)行語句。.關(guān)于繼承的3點:a)父類有的,子類也有b)父類沒有的,子類可以增加c)父類有的,子類可以變更.關(guān)于繼承的留意事項a)構(gòu)造方法不能被繼承b)方法和屬性可以被繼承c)子類的構(gòu)造方法隱式地調(diào)用父類的不帶參數(shù)的構(gòu)造方法d)當(dāng)父類沒有不帶參數(shù)的構(gòu)造方法時,子類須要運用來顯式地調(diào)用父類的構(gòu)造方法,指的是對父類的引用e)關(guān)鍵字必需是構(gòu)造方法中的第一行語句。.方法重寫():又叫做覆寫,子類和父類的方法返回類型一樣、方法名稱一樣,參數(shù)一樣,這樣我們說子類和父類的方法構(gòu)成了重寫關(guān)系。.方法重寫和方法重載之間的關(guān)系:重載發(fā)生在同一個類內(nèi)部的兩個或多個方法。重寫發(fā)生在父類和子類之間。將恒久無法到達(dá),編譯器會報編譯錯誤;假如多個塊的異樣類型是獨立的(,2),那么誰前誰后都是可以的。.假如塊中存在語句,那么首先也須要將塊中的代碼執(zhí)行完畢,然后方法再返回。.假如塊中存在(0)語句,那么就不會執(zhí)行 塊中的代碼,因為(0)會終止當(dāng)前運行的虛擬機(jī),程序會在虛擬機(jī)終止前結(jié)束執(zhí)行。. (),圖形用戶界面。. (),抽象窗口工具集,第一代的組件,是重量級的。7.,不依靠于底層細(xì)微環(huán)節(jié),輕量級的組件。.內(nèi)部類(),內(nèi)部類共分為4種。.靜態(tài)內(nèi)部類():只能訪問外部類的靜態(tài)成員變量和靜態(tài)方法,生成靜態(tài)內(nèi)部類對象的方式為:=0;.成員內(nèi)部類():可以訪問外部類的靜態(tài)和非靜態(tài)的方法和成員變量。生成成員內(nèi)部類對象的方式為:二00;.若想在局部內(nèi)部類中訪問外部類的成員變量,語法為:;.局部內(nèi)部類():定義在方法當(dāng)中,只能訪問方法中聲明的類型的變量。.匿名內(nèi)部類():匿名內(nèi)部類會隱式地繼承一個父類或?qū)崿F(xiàn)一個接口。.所謂遞歸(),就是方法調(diào)用自身。對于遞歸來說,肯定有一個出口,讓遞歸結(jié)束,只有這樣才能保證不出現(xiàn)死循環(huán)。.作業(yè):給定隨意一個書目,以樹形方式呈現(xiàn)出該書目中的全部子書目和文件。另外,在呈現(xiàn)的時候?qū)颗旁谏厦?,文件排在下面。每一層要加上縮進(jìn)。.一個類若想被序列化,則須要實現(xiàn)接口,該接口中沒有定義任何方法,是一個標(biāo)識性接口(),當(dāng)一個類實現(xiàn)了該接口,就表示這個類的對象是可以序列化的。.在序列化時,變量是無法序列化的;假如A包含了對B的引用,那么在序列化A的時候也會將B一并地序列化;假如此時A可以序列化,B無法序列化,那么當(dāng)序列化A的時候就會發(fā)生異樣,這時就須要將對B的引用設(shè)為,該關(guān)鍵字表示變量不會被序列化。.當(dāng)我們在一個待序列化/反序列化的類中實現(xiàn)了以上兩個方法(方法聲明要和上面的保持完全的一樣),那么就允許我們以更加底層、更加細(xì)粒度的方式限制序列化/反序列化的過程。.中假如我們自己沒有產(chǎn)生線程,那么系統(tǒng)就會給我們產(chǎn)生一個線程(主線程,方法就在主線程上運行),我們的程序都是由線程來執(zhí)行的。.進(jìn)程:執(zhí)行中的程序(程序是靜態(tài)的概念,進(jìn)程是動態(tài)的概念)。.線程的實現(xiàn)有兩種方式,第一種方式是繼承類,然后重寫方法;其次種是實現(xiàn)接口,然后實現(xiàn)其方法。.將我們希望線程執(zhí)行的代碼放到方法中,然后通過方法來啟動線程,方法首先為線程的執(zhí)行打算好系統(tǒng)資源,然后再去調(diào)用方法。當(dāng)某個類繼承了類之后,該類就叫做一個線程類。.一個進(jìn)程至少要包含一個線程。.對于單核來說,某一時刻只能有一個線程在執(zhí)行(微觀串行),從宏觀角度來看,多個線程在同時執(zhí)行(宏觀并行)。.對于雙核或雙核以上的來說,可以真正做到微觀并行。.1)類也實現(xiàn)了接口,因此實現(xiàn)了接口中的方法;2)當(dāng)生成一個線程對象時,假如沒有為其設(shè)定名字,那么線程對象的名字將運用如下形式:,該將是自動增加的,并被全部的對象所共享(因為它是的成員變量)。3)當(dāng)運用第一種方式來生成線程對象時,我們須要重寫方法,因為類的方法此時什么事情也不做。4)當(dāng)運用其次種方式來生成線程對象時,我們須要實現(xiàn)接口的方法,然后運用(())(假如已經(jīng)實現(xiàn)了接口)來生成線程對象,這時的線程對象的方法就會調(diào)用類的方法,這樣我們自己編寫的方法就執(zhí)行了。.關(guān)于成員變量和局部變量:假如一個變量是成員變量,那么多個線程對同一個對象的成員變量進(jìn)行操作時,他們對該成員變量是彼此影響的(也就是說一個線程對成員變量的變更會影響到另一個線程)。.假如一個變量是局部變量,那么每個線程都會有一個該局部變量的拷貝,一個線程對該局部變量的變更不會影響到其他的線程。.停止線程的方式:不能運用類的方法來終止線程的執(zhí)行。一般要設(shè)定一個變量,在方法中是一個循環(huán),循環(huán)每次檢查該變量,假如滿意條件則接著執(zhí)行,否則跳出循環(huán),線程結(jié)束。.不能依靠線程的優(yōu)先級來確定線程的執(zhí)行依次。.關(guān)鍵字:當(dāng)關(guān)鍵字修飾一個方法的時候,該方法叫做同步方法。.中的每個對象都有一個鎖()或者叫做監(jiān)視器(),當(dāng)訪問某個對象的方法時,表示將該對象上鎖,此時其他任何線程都無法再去訪問該方法了,直到之前的那個線程執(zhí)行方法完畢后(或者是拋出了異樣),那么將該對象的鎖釋放掉,其他線程才有可能再去訪問該方法。.假如一個對象有多個方法,某一時刻某個線程已經(jīng)進(jìn)入到了某個方法,那么在該方法沒有執(zhí)行完畢前,其他線程是無法訪問該對象的任何方法的。.假如某個方法是的,那么當(dāng)線程訪問該方法時,它鎖的并不是方法所在的對象,而是方法所在的對象所對應(yīng)的對象,因為中無論一個類有多少個對象,這些對象會對應(yīng)唯一一個對象,因此當(dāng)線程分別訪問同一個類的兩個對象的兩個,方法時,他們的執(zhí)行依次也是依次的,也就是說一個線程先去執(zhí)行方法,執(zhí)行完畢后另一個線程才起先執(zhí)行。.塊,寫法:表示線程在執(zhí)行的時候會對對象上鎖。.方法是一種粗粒度的并發(fā)限制,某一時刻,只能有一個線程執(zhí)行該方法塊則是一種細(xì)粒度的并發(fā)限制,只會將塊中的代碼同步,位于方法內(nèi)、塊之外的代碼是可以被多個線程同時訪問到的。.死鎖().和方法都是定義在類中,而且是的,因此會被全部的類所繼承并且無法重寫。這兩個方法要求在調(diào)用時線程應(yīng)當(dāng)已經(jīng)獲得了對象的鎖,因此對這兩個方法的調(diào)用須要放在方法或塊當(dāng)中。當(dāng)線程執(zhí)行了方法時,它會釋放掉對象的鎖。.另一個會導(dǎo)致線程暫停的方法就是類的方法,它會導(dǎo)致線程睡眠指定的毫秒數(shù),但線程在睡眠的過程中是不會釋放掉對象的鎖的。1.對于單例模式()來說,假如在()方法中生成實例則可能會產(chǎn)生同步問題,即可能會生成兩個不同的對象。1.客戶端和服務(wù)器端之間的通信全部采納實現(xiàn):1)用戶登錄(1):〃8〃?》<><>2)服務(wù)器端向全部客戶端發(fā)送的在線用戶列表(4):〃1.0〃〃8〃?》<>040<><><><><><><>1.客戶端和服務(wù)器端之間的通信全部采納實現(xiàn):1)用戶登錄(1):<〃1.0〃〃8〃?》<><>1<><><><>2)服務(wù)器端向全部客戶端發(fā)送的在線用戶列表(4):< 〃8〃?》<>040<><><><><>3)客戶端向服務(wù)器端發(fā)送的閑聊數(shù)據(jù)(2):<>020<><><><><>4)服務(wù)器端向全部客戶端發(fā)送的閑聊數(shù)據(jù)(3):<>030<>:<><>5)關(guān)閉服務(wù)器端窗口(6):<>060<>6)關(guān)閉客戶端窗口(5):<>050<><><><><>.服務(wù)器端確認(rèn)客戶端關(guān)閉(7)<>070<>.登錄結(jié)果(8)<>080<><><>系統(tǒng)概覽圖:.(類加載器)2供應(yīng)了三種類加載器1)根類加載器(運用編寫,程序員無法在代碼中獲得該類)2)擴(kuò)展加載器,運用代碼實現(xiàn)3)系統(tǒng)加載器(應(yīng)用加載器),運用代碼實現(xiàn).用戶自定義的類加載器都是的子類.程序中對子類的“主動運用”會導(dǎo)致父類被初始化;但對父類的“主動”運用并不會導(dǎo)致子類初始化(不行能說生成一個類的對象就導(dǎo)致系統(tǒng)中全部的子類都會被初始化).類加載器的父親托付機(jī)制().父子加載器并非繼承關(guān)系,也就是說子加載器不肯定是繼承了父加載器。.自帶的類加載器之間的關(guān)系:.定義類加載器:假如某個類加載器能夠加載一個類,那么該類加載器就稱作:定義類加載器;定義類加載器及其全部子加載器都稱作:初始類加載器。.當(dāng)生成一個自定義的類加載器實例時,假如沒有指定它的父加載器,那么系統(tǒng)類加載器就將成為該類加載器的父加載器。.當(dāng)兩個方法形成重寫關(guān)系時,可以在子類方法中通0形式調(diào)用父類的()方法,其中()不必放在第一行語句,因此此時父類對象已經(jīng)構(gòu)造完畢,先調(diào)用父類的()方法還是先調(diào)用子類的()方法是依據(jù)程序的邏輯確定的。.在定義一個類的時候,假如沒有顯式指定該類的父類,那么該類就會繼承于類(供應(yīng)的一個類,類是中全部類的干脆或間接父類)。.多態(tài)():我們說子類就是父類(玫瑰是花,男人是人),因此多態(tài)的意思就是:父類型的引用可以指向子類的對象。.多態(tài):父類型的引用可以指向子類型的對象。.p二 ();當(dāng)運用多態(tài)方式調(diào)用方法時,首先檢查父類中是否有()方法,假如沒有則編譯錯誤;假如有,再去調(diào)用子類的()方法。.一共有兩種類型的強(qiáng)制類型轉(zhuǎn)換:a)向上類型轉(zhuǎn)換():比如說將類型轉(zhuǎn)換為類型,即將子類型轉(zhuǎn)換為父類型。對于向上類型轉(zhuǎn)換,不須要顯式指定。b)向下類型轉(zhuǎn)換():比如將類型轉(zhuǎn)換為類型。即將父類型轉(zhuǎn)換為子類型。對于向下類型轉(zhuǎn)換,必須要顯式指定(必須要運用強(qiáng)制類型轉(zhuǎn)換)。.抽象類():運用了關(guān)鍵字所修飾的類叫做抽象類。抽象類無法實例化,也就是說,不能出來一個抽象類的對象(實例)。.抽象方法():運用關(guān)鍵字所修飾的方法叫做抽象方法。抽象方法須要定義在抽象類中。相對于抽象方法,之前所定義的方法叫做詳細(xì)方法(有聲明,有實現(xiàn))。.假如一個類包含了抽象方法,那么這個類肯定是抽象類。.假如某個類是抽象類,那么該類可以包含詳細(xì)方法(有聲明、有實現(xiàn))。.假如一個類中包含了抽象方法,那么這個類肯定要聲明成 ,也就是說,該類肯定是抽象類;反之,假如某個類是抽象類,那么該類既可以包含抽象方法,也可以包含詳細(xì)方法。.無論何種狀況,只要一個類是抽象類,那么這個類就無法實例化。.在子類繼承父類(父類是個抽象類)的狀況下,那么該子類必須要實現(xiàn)父類中所定義的全部抽象方法;否則,該子類須要聲明成一個。.接口():接口的地位等同于,接口中的全部方法都是抽象方法。在聲明接口中的方法時,可以運用關(guān)鍵字,也可以不運用。通常狀況下,都會省略掉關(guān)鍵字。.可以將接口看作是特別的抽象類(抽象類中可以有詳細(xì)方法,也可以有抽象方法,而接口中只能有抽象方法,不能有詳細(xì)方法)。.類可以實現(xiàn)接口。實現(xiàn)運用關(guān)鍵字表示,代表了某個類實現(xiàn)了某個接口。.一個類實現(xiàn)了某個接口,那么該類必須要實現(xiàn)接口中聲明的全部方法。假如該類是個抽象類,那么就無需實現(xiàn)接口中的方法了。.是單繼承的,也就是說某個類只能有唯一一個父類;一個類可以實現(xiàn)多個接口,多個接口之間運用逗號分隔。.多態(tài):所謂多態(tài),就是父類型的引用可以指向子類型的對象,或者接口類型的引用可以指向?qū)崿F(xiàn)該接口的類的實例。關(guān)于接口和實現(xiàn)接口的類之間的強(qiáng)制類型轉(zhuǎn)換方式和父類和子類之間的強(qiáng)制類型轉(zhuǎn)換方式完全一樣。.關(guān)鍵字:可以用于修飾屬性,也可以用于修飾方法,還可以用于修飾類(后面的課程講).修飾屬性:無論一個類生成了多少個對象,全部這些對象共同運用唯一一份靜態(tài)的成員變量;一個對象對該靜態(tài)成員變量進(jìn)行了修改,其他對象的該靜態(tài)成員變量的值也會隨之發(fā)生變更。假如一個成員變量是的,那么我們可以通過類名.成員變量名的方式來運用它(舉薦運用這種方式)。.修飾方法:修飾的方法叫做靜態(tài)方法。對于靜態(tài)方法來說,可以運用類名.方法名的方式來訪問。.靜態(tài)方法只能繼承,不能重寫()。.關(guān)鍵字:可以修飾屬性、方法、類。.修飾類:當(dāng)一個類被所修飾時,表示該類是一個終態(tài)類,即不能被繼承。.修飾方法:當(dāng)一個方法被所修飾時,表示該方法是一個終態(tài)方法,即不能被重寫()。.修飾屬性:當(dāng)一個屬性被所修飾時,表示該屬性不能被改寫。.當(dāng)修飾一個原生數(shù)據(jù)類型時,表示該原生數(shù)據(jù)類型的值不能發(fā)生變更(比如說不能從10變?yōu)?0);假如修飾一個引用類型時,表示該引用類型不能再指向其他對象了,但該引用所指向的對象的內(nèi)容是可以發(fā)生變更的。.對于類型成員變量,一般來說有兩種賦初值方式:a)在聲明類型的成員變量時就賦上初值b)在聲明類型的成員變量時不賦初值,但在類的全部構(gòu)造方法中都為其賦上初值。.代碼塊:靜態(tài)代碼塊。靜態(tài)代碼塊的作用也是完成一些初始化工作。首先執(zhí)行靜態(tài)代碼塊,然后執(zhí)行構(gòu)造方法。靜態(tài)代碼塊在類被加載的時候執(zhí)行,而構(gòu)造方法是在生成對象的時候執(zhí)行;要想調(diào)用某個類來生成對象,首先須要將類加載到虛擬機(jī)上(),然后由加載這個類來生成對象。.類的靜態(tài)代碼塊只會執(zhí)行一次,是在類被加載的時候執(zhí)行的,因為每個類只會被加載一次,所以靜態(tài)代碼塊也只會被執(zhí)行一次;而構(gòu)造方法則不然,每次生成一個對象的時候都會調(diào)用類的構(gòu)造方法,所以一次就會調(diào)用構(gòu)造方法一次。.假如繼承體系中既有構(gòu)造方法,又有靜態(tài)代碼塊,那么首先執(zhí)行最頂層的類的靜態(tài)代碼塊,始終執(zhí)行到最底層類的靜態(tài)代碼塊,然后再去執(zhí)行最頂層類的構(gòu)造方法,始終執(zhí)行到最底層類的構(gòu)造方法。留意:靜態(tài)代碼塊只會執(zhí)行一次。.不能在靜態(tài)方法中訪問非靜態(tài)成員變量;可以在靜態(tài)方法中訪問靜態(tài)的成員變量??梢栽诜庆o態(tài)方法中訪問靜態(tài)的成員變量。.總結(jié):靜態(tài)的只能訪問靜態(tài)的;非靜態(tài)的可以訪問一切。.不能在靜態(tài)方法中運用關(guān)鍵字。.接口中所聲明的方法都是抽象方法。接口中的方法都是的。.接口中也可以定義成員變量。接口中的成員變量都是、、的。.一個類不能既是,又是的。因為的主要目的是定義一種約定,讓子類去實現(xiàn)這種約定,而表示該類不能被繼承,這樣希望該類可以被繼承而明確說明該類不能被繼承,兩者沖突。因此一個類不能既是的,又是的。. (設(shè)計模式)。單例模式():表示一個類只會生成唯一的一個對象。.包()。用于將完成不同功能的類分門別類,放在不同的書目(包)下。包的命名規(guī)則:將公司域名反轉(zhuǎn)作為包名。,(包名),對于包名:每個字母
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 原藥材銷售合同范本
- 勞動合同范本內(nèi)容模板
- 醫(yī)院醫(yī)藥采購合同范本
- haccp培訓(xùn)合同范本
- 化肥購買銷售合同范本
- 勞動合同范例 日照
- 加盟藥店轉(zhuǎn)讓合同范本
- 醫(yī)院購置器械合同范本
- 醫(yī)療門診用工合同范例
- 單位銷售人員聘用合同范本
- 中央2025年中國科協(xié)所屬單位招聘社會在職人員14人筆試歷年參考題庫附帶答案詳解-1
- 2024年濰坊工程職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動葫蘆吊裝方案計劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫含答案解析
- 《建立特種設(shè)備“日管控、周排查、月調(diào)度”工作機(jī)制》專題培訓(xùn)
- 《自然語言處理》課件
- 壓裂設(shè)備專用件項目評價分析報告
- 2025上半年重慶萬州區(qū)事業(yè)單位招聘擬聘用人員歷年管理單位筆試遴選500模擬題附帶答案詳解
- 造價咨詢服務(wù)方案進(jìn)度計劃安排及保證措施
- 公路養(yǎng)護(hù)工安全操作規(guī)程模版(2篇)
評論
0/150
提交評論