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

正文內(nèi)容

java學(xué)習(xí)筆記(編輯修改稿)

2024-08-31 18:28 本頁面
 

【文章內(nèi)容簡介】 tatic修飾屬性(類變量),也就是使這個屬性成為本類的類變量,為本類對象所共有。這個屬性就是全類公有。(共有的類變量與對象無關(guān),只和類有關(guān))。類加載的過程,類本身也是保存在文件中(字節(jié)碼文件保存著類的信息)的,java會通過I/O流把類的文件(字節(jié)碼文件)讀入JVM(java虛擬機),(java虛擬機)會通過類路徑(CLASSPATH)來找字節(jié)碼文件。類變量,會在加載時自動初始化,初始化規(guī)則和實例變量相同。注意:類中的實例變量是在創(chuàng)建對象時被初始化的,被static修飾的屬性,也就是類變量,是在類加載時被創(chuàng)建并進行初始化,類加載的過程是進行一次。也就是類變量只會被創(chuàng)建一次。2,static修飾方法(靜態(tài)方法),會使這個方法成為整個類所公有的方法,可以用類名。方法名 訪問。注意:static修飾的方法,不直接能訪問(可以通過組合方式訪問)本類中的非靜態(tài)(static)成員(包括方法和屬性),本類的非靜態(tài)(static)方法可以訪問本類的靜態(tài)成員(包括方法和屬性),可以調(diào)用靜態(tài)方法。靜態(tài)方法要慎重使用。在靜態(tài)方法中不能出現(xiàn)this關(guān)鍵字。注意:父類中是靜態(tài)方法,子類中不能覆蓋為非靜態(tài)方法,在符合覆蓋規(guī)則的前提下,在父子類中,父類中的靜態(tài)方法可以被子類中的靜態(tài)方法覆蓋,但是沒有多態(tài)。(在使用對象調(diào)用靜態(tài)方法時其實是調(diào)用編譯時類型的靜態(tài)方法)注意:父子類中,靜態(tài)方法只能被靜態(tài)方法覆蓋,非靜態(tài)方法只能被非靜態(tài)方法覆蓋。java中的main方法必須寫成static是因為在類加載時無法創(chuàng)建對象,因為靜態(tài)方法可以不通過對象調(diào)用,所以在類的main方法所在類加載時就可以通過main方法入口來運行程序。注意:組合方式,就是需要在方法中創(chuàng)建一個所需要的對象,并用這個對象來調(diào)用任意所需的該對象的內(nèi)容,不會再受只能訪問靜態(tài)的約束。3,static修飾初始代碼塊,這時這個初始代碼塊就叫做靜態(tài)初始代碼塊,這個代碼塊只在類加載時被執(zhí)行一次。可以用靜態(tài)初始代碼塊初始化一個類。動態(tài)初始代碼塊,寫在類體中的“{}”,這個代碼塊是在生成對象的初始化屬性是運行。這種代碼塊叫動態(tài)初始代碼塊。類在什么時候會被加載,構(gòu)造(創(chuàng)建)對象時會加載類,調(diào)用類中靜態(tài)方法或訪問靜態(tài)屬性也是會加載這個靜態(tài)方法真正所在的類。在構(gòu)造子類對象時必會先加載父類,類加載會有延遲加載原則,只有在必須加載時才會加載。final修飾符,可以修飾變量,方法,類1,final修飾變量被fianl修飾的變量就會變成常量(常量應(yīng)當(dāng)大寫),一旦賦值不能改變,(可以在初始化時直接賦值,也可以在構(gòu)造方法里也可以賦值,只能在這兩種方法里二選一,不能不為常量賦值),fianl的常量不會有默認(rèn)初始值,對于直接在初始化是賦值時final修飾符常和static修飾符一起使用。2,final修飾方法,被final修飾的方法將不能被其子類覆蓋,保持方法的穩(wěn)定不能被覆蓋。3,final修飾類,被final修飾的類將不能被繼承。final類中的方法也都是final的。注意:final,不能用來修飾構(gòu)造方法,在父類中如果有常量屬性,在子類中使用常量屬性時是不會進行父類的類加載。靜態(tài)常量如果其值可以確定,就不會加載該類,如果不能確定則會加載該常量所在的類。不變模式:對象一旦創(chuàng)建屬性就不會改變。用final修飾屬性,也用final修飾類(強不變模式),用final修飾屬性(弱不變模式)。不變模式的典型體現(xiàn):,不變模式可以實現(xiàn)對象的共享(可以用一個對象實例賦值給多個對象變量。)池化的思想,把需要共享的數(shù)據(jù)放在池中(節(jié)省空間,共享數(shù)據(jù))只有String類可以用“”中的字面值創(chuàng)建對象。在String類中,以字面值創(chuàng)建時,會到Java方法空間的串池空間中去查找,如果有就返回串池中字符串的地址,并把這個地址付給對象變量。如果沒有則會在串池里創(chuàng)建一個字符串對象,并返回其地址付購對象變量,當(dāng)另一個以字面值創(chuàng)建對象時則會重復(fù)上述過程。如果是new在堆空間中創(chuàng)建String類的對象,則不會有上述的過程。String類中的intern()方法會將在堆空間中創(chuàng)建的String類對象中的字符串和串池中的比對,如果有相同的串就返回這個串的串池中的地址。不變模式在對于對象進行修改,添加操作是使相當(dāng)麻煩的,他會產(chǎn)生很多的中間垃圾對象。創(chuàng)建和銷毀的資源的開銷是相當(dāng)大的。String類在字符串連接時會先的效率很低,就是因為它所產(chǎn)生的對象的書性是不能夠修改的,當(dāng)連接字符串時也就是只能創(chuàng)建新的對象。對于很多的字符串連接,應(yīng)當(dāng)使用StringBuffer類,在使用這個類的對象來進行字符串連接時就不會有多余的中間對象生成,從而優(yōu)化了效率。abstract(抽象)修飾符,可以修飾類和方法1,abstract修飾類,會使這個類成為一個抽象類,這個類將不能生成對象實例,但可以做為對象變量聲明的類型,也就是編譯時類型,抽象類就像當(dāng)于一類的半成品,需要子類繼承并覆蓋其中的抽象方法。2,abstract修飾方法,會使這個方法變成抽象方法,也就是只有聲明(定義)而沒有實現(xiàn),實現(xiàn)部分以;代替。需要子類繼承實現(xiàn)(覆蓋)。注意:有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。abstract修飾符在修飾類時必須放在類名前。abstract修飾方法就是要求其子類覆蓋(實現(xiàn))這個方法。調(diào)用時可以以多態(tài)方式調(diào)用子類覆蓋(實現(xiàn))后的方法,也就是說抽象方法必須在其子類中實現(xiàn),除非子類本身也是抽象類。注意:父類是抽象類,其中有抽象方法,那么子類繼承父類,并把父類中的所有抽象方法都實現(xiàn)(覆蓋)了,子類才有創(chuàng)建對象的實例的能力,否則子類也必須是抽象類。抽象類中可以有構(gòu)造方法,是子類在構(gòu)造子類對象時需要調(diào)用的父類(抽象類)的構(gòu)造方法。final和abstract,private和abstract,static和abstract,這些是不能放在一起的修飾符,因為abstract修飾的方法是必須在其子類中實現(xiàn)(覆蓋),才能以多態(tài)方式調(diào)用,以上修飾符在修飾方法時期子類都覆蓋不了這個方法,final是不可以覆蓋,private是不能夠繼承到子類,所以也就不能覆蓋,static是可以覆蓋的,但是在調(diào)用時會調(diào)用編譯時類型的方法,因為調(diào)用的是父類的方法,而父類的方法又是抽象的方法,又不能夠調(diào)用,所以上的修飾符不能放在一起。抽象(abstract)方法代表了某種標(biāo)準(zhǔn),定義標(biāo)準(zhǔn),定義功能,在子類中去實現(xiàn)功能(子類繼承了父類并需要給出從父類繼承的抽象方法的實現(xiàn))。方法一時間想不到怎么被實現(xiàn),或有意要子類去實現(xiàn)而定義某種標(biāo)準(zhǔn),這個方法可以被定義為抽象。(abstract)模板方法模式:用abstract把制訂標(biāo)準(zhǔn)和實現(xiàn)標(biāo)準(zhǔn)分開,制定的標(biāo)準(zhǔn)就是模板,實現(xiàn)就是按模板標(biāo)準(zhǔn)來實現(xiàn),也就是繼承模板,實現(xiàn)模板中相應(yīng)功能的方法。模板中不允許修改的方法可以用fianl來修飾,這個方法不能使抽象方法,為保證安全,封裝,把模板中不公開的部分用protected(保護)修飾。Java中的接口接口是一種程序結(jié)構(gòu),是特殊的抽象類。接口中的方法必須都是公開的抽象方法(public abstract),接口中的屬性都是公開靜態(tài)常量(public static final)。聲明一個接口用 interface 關(guān)鍵字,接口也是一種類型,編譯之后也有生成相應(yīng)字節(jié)碼,他的聲明規(guī)范也要符合類型的定義(一個源文件中只能有一個public interface,接口名和源文件名相同,有public interface,就不能在寫public class了)。接口中的屬性可以不加修飾符,方法也不用加修飾符。接口也可以繼承,但是只能由接口繼承,在用類去繼承時要換用implements 關(guān)鍵字,這時類和接口也不叫做繼承關(guān)系,而是實現(xiàn)關(guān)系,但其實質(zhì)也是繼承。一個類可以繼承也只能繼承另外一個類,但是可以實現(xiàn)多個接口,其語法是在implements后面寫接口名,多個接口以“,”分隔。接口之間是可以多繼承的,其語法和類的繼承語法是相同的,在接口多繼承時,在extends后寫接口名如果要繼承多個接口,接口名以“,”分隔,接口的繼承關(guān)系只是把其父接口中的抽象方法繼承到子接口中。要實現(xiàn)接口就必須實現(xiàn)接口中的所有方法。一個類可以在繼承一個類的同時,也可以實現(xiàn)一個或多個接口。采用接口就繞開了單繼承限制。接口類型也可以做為編譯時類型使用,但其實際的運行時類型必須是完全實現(xiàn)接口的類的對象實例,這樣就使多態(tài)變得很靈活了,注意:實現(xiàn)接口時,在實現(xiàn)(覆蓋)抽象方法時,注意必須要在方法的返回值類型前加public修飾符。如果沒有完全實現(xiàn)接口中的方法,那么這個類就只能夠是個抽象類,不能創(chuàng)建對象。接口的是實質(zhì)就是特殊的抽象類。接口沒有構(gòu)造方法。接口的意義:1,接口可以實現(xiàn)多繼承。2,用接口可以實現(xiàn)混合類型(主類型,副類型),java中可以通過接口分出主次類型。主類型使用繼承,副類型,使用接口實現(xiàn)。3,接口進一步深化了標(biāo)準(zhǔn)的思想,接口本身就是一個標(biāo)準(zhǔn),他起到了降低耦合性的作用,接口可以使方法的定義和實現(xiàn)相分離,也就是將接口的定義者和實現(xiàn)者相分離,接口也可以用于降低模塊間或系統(tǒng)間的耦合性。針對接口編程可以屏蔽不同實現(xiàn)間的差異,看到的只是實現(xiàn)好的功能,接口:定義標(biāo)準(zhǔn),接口的實現(xiàn):實現(xiàn)標(biāo)準(zhǔn)接口的調(diào)用者:標(biāo)準(zhǔn)的使用針對接口編程原則,也就是按照標(biāo)準(zhǔn)實現(xiàn)。接口的回調(diào):先有接口的定義(接口實現(xiàn)者),再有接口使用者,最后把接口的實現(xiàn)對象傳入接口的使用者中,接口的使用者會通過接口來調(diào)用接口實現(xiàn)者的方法。接口的回調(diào):接口的定義者定義好了標(biāo)準(zhǔn),接口的使用者先寫好了使用代碼,接口的實現(xiàn)者寫好實現(xiàn)之后把實現(xiàn)對象傳入接口的使用者中。他調(diào)用接口中方法也就是掉用接口實現(xiàn)中的方法。這種過程叫做接口的回調(diào)。盡量使用接口類型作為編譯時類型,盡量將抽取到的共性行為寫在接口中。用若干個小接口取代一個大接口。(接口隔離原則)把一個類的功能作成接口,只暴露想暴露的方法,接口隔離原則可以實現(xiàn)更高層次的封裝,針對的對象不同,暴露的方法也不同。java中的根類Objectjava中所有的類的父類或直接或間接的或隱含的都是Object類。java不允許循環(huán)繼承,也就是互相繼承是不可以的。Object類中的finalize()一個對象被垃圾收集的時候,最后會由JVM調(diào)用這個對象的finalize方法Object類中有一個String toString()方法,返回該對象的字符串表示。Object類中的toString()方法他返回的是類名加上他的地址的一個字符串。在子類中推薦覆蓋toString()方法。Object類中的boolean equals(Objecto)方法是用來比較對象的內(nèi)容是否相等,其返回值是boolean類型的值,相同為真,不同則為假。實際上還是比較對象地址是否相同。String類覆蓋了equals()方法,他比較是對象中的內(nèi)容是否相同。子類中也推薦覆蓋Object類中繼承的equals()方法equals()的覆蓋原則:自反性:(x) 為true對稱性:(x) 和 (y) 的值要相同,要么都為true,要么都為false。傳遞性:(y)為true, (z)也為true ,(z)一定也為true。覆蓋equals()方法的步驟:boolean equals(Object o){if(this==o) return true; //1,看看是不是一個對象if(o==null) return true; //2,看看對象是不是空if(!(o instanceof 本類類名)) return false; //看看是不是本類對象...... //根據(jù)本類設(shè)計。 }封裝類java為每一個簡單數(shù)據(jù)類型提供了一個封裝類,使每個簡單數(shù)據(jù)類型可以被Object來裝載。除了int(Integer)和char(Character),其余類型首字母大寫即成封裝類類型名。轉(zhuǎn)換字符的方式:int I=10;String s=I+” ”;String s1=(i);Int I=10;Interger I_class=new integer(I);封裝類、字符串、基本類型間的轉(zhuǎn)換Interger(Double())DoubleString (() )IntegerInteger(() )Stringint(100+””)StringString(() )intInteger(() )int學(xué)會查看javadoc的幫助文檔。要先關(guān)注要使用方法的返回值類型,也就是要獲得內(nèi)容的類型,然后看方法名,JDK中的方法名基本上是見名知義,參數(shù)表,就是看需要什么才可以獲得的需要的那些內(nèi)容,也要看自己能夠提供什么。注意:“==”在任何時候都是比較地址,這種比較永遠(yuǎn)不會被覆蓋。程序員自己編寫的類和JDK類是一種合作關(guān)系。(因為多態(tài)的存在,可能存在我們調(diào)用JDK類的情況,也可能存在JDK自動調(diào)用我們的類的情況。)注意:類型轉(zhuǎn)換中double\Interger\String之間的轉(zhuǎn)換最多。(注:所有使用內(nèi)部類的地方都可以不用內(nèi)部類,但使用內(nèi)部類可以使程序更加的簡潔,便于命名規(guī)范和劃分層次結(jié)構(gòu))。內(nèi)部類是指在一
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1