成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Java 復(fù)用類(7)

darkbaby123 / 2270人閱讀

摘要:復(fù)用代碼是眾多引入注目的功能之一。但要想成為極具革命性的語(yǔ)言,僅僅能夠復(fù)制代碼并對(duì)之加以改變是不夠的,它還必須能夠做更多的事情。

復(fù)用代碼是Java眾多引入注目的功能之一。但要想成為極具革命性的語(yǔ)言,僅僅能夠復(fù)制代碼并對(duì)之加以改變是不夠的,它還必須能夠做更多的事情。

1.組合語(yǔ)法

將對(duì)象引用置于新類中.

初始化對(duì)象引用:1.定義時(shí)初始化;2.構(gòu)造器初始化;3.使用之前(惰性初始化);4.實(shí)例初始化(代碼塊).

2.繼承語(yǔ)法

采用extends關(guān)鍵字實(shí)現(xiàn).

采用現(xiàn)有類的類型來創(chuàng)建新類,無(wú)需改變現(xiàn)有類的形式.

即使一個(gè)類只有包訪問權(quán)限,其public main仍然是可訪問的.

繼承并不只是復(fù)制基類的接口.當(dāng)創(chuàng)建了一個(gè)當(dāng)初類的對(duì)象時(shí),該對(duì)象包含了一個(gè)基類的子對(duì)象,和直接創(chuàng)建的基類對(duì)象是一樣的,區(qū)別在于,后者來自外部,而基類的子對(duì)象被包裝在導(dǎo)出類對(duì)象內(nèi)部.

基類初始化:構(gòu)造器.如果沒有,會(huì)合成一個(gè)默認(rèn)的構(gòu)造器,該構(gòu)造器將調(diào)用基類的構(gòu)造器.

調(diào)用帶參構(gòu)造器:super.

調(diào)用基類構(gòu)造器必須是在導(dǎo)出類構(gòu)造器中要做的第一件事(如果做錯(cuò)了,編譯器會(huì)提醒).

3.代理

Java語(yǔ)言不支持直接代理.

將一個(gè)成員的對(duì)象置于所要構(gòu)造的類中(就像組合),但于此同時(shí)在新類中暴露了該成員對(duì)應(yīng)的所有方法(就像繼承).

4.結(jié)合使用組合與繼承

確保正確清理:try{}finally,先清理導(dǎo)出類,在清理基類.

如果Java的基類擁有某個(gè)已被多次重載的方法名稱,那么在導(dǎo)出類中重新定義個(gè)該方法名稱并不會(huì)屏蔽其在基類中的任何版本.

使用@Override(不是關(guān)鍵字)注解覆蓋與基類完全相同的特征簽名及返回類型具有相同名稱的方法.

5.在組合與繼承之間選擇

組合和繼承都允許在新的類中放置子對(duì)象,組合是顯示地這樣做,而繼承則是隱式地做.

組合技術(shù)通常用于想在新類中使用現(xiàn)有類的功能而非他的接口這種情形.

在繼承的時(shí)候,使用某個(gè)現(xiàn)有類,并開發(fā)一個(gè)它的特殊版本.

"is-a"(是一個(gè))的關(guān)系是用繼承來表達(dá)的,而"has-a"(有一個(gè))的關(guān)系是用組合來表達(dá)的.

6.protected關(guān)鍵字

將某些事物盡可能對(duì)這個(gè)世界隱藏起來,但仍然允許導(dǎo)出類的成員來訪問它們.

就類用戶而言,這是private的,但對(duì)于任何繼承與此類的導(dǎo)出類或其他任何位于同一個(gè)包內(nèi)的類來說,它卻是可以訪問的(protected提供了包內(nèi)訪問權(quán)限).

7.向上轉(zhuǎn)型

將根置于頁(yè)面的頂端,然后逐漸向下.由導(dǎo)出類轉(zhuǎn)型成基類,在繼承圖上是向上移動(dòng)的,因此一般稱為向上轉(zhuǎn)型(總是安全的).

在向上轉(zhuǎn)型的過程中,類接口中唯一可能發(fā)生的事情是丟失方法,而不是獲取它們.

8.final關(guān)鍵字

無(wú)法改變的(不想改變的理由:設(shè)計(jì)或效率).

final數(shù)據(jù):對(duì)于基本數(shù)據(jù)類型,final使數(shù)值恒定不變;而對(duì)用對(duì)象引用,final使引用恒定不變(無(wú)法改為指向另一個(gè)對(duì)象,對(duì)象自身可以被修改).

static final 域只占據(jù)一段不能改變的存儲(chǔ)空間,基本用全寫大寫字母命名.

空白final:聲明時(shí)為賦值,使用前必須被初始化(提供了更大的靈活性).

final參數(shù):無(wú)法在方法中更改參數(shù)引用所指向的對(duì)象(主要用來向匿名內(nèi)部類傳遞參數(shù)).

final方法:把方法鎖定,防止任何繼承類修改它的含義.

類中所有的private方法都隱式地被制定是final的.

覆蓋只有在某方法是基類接口的一部分時(shí)才會(huì)出現(xiàn),否則,僅具有相同名稱(基類方法設(shè)置為private是因?yàn)樗鶜w屬的類的組織結(jié)構(gòu)的原因).

final類:不允許繼承(對(duì)該類的設(shè)計(jì)永不需要做任何變動(dòng)/安全).

不論類是都被定義為final,相同的規(guī)則都適用于定義為final的域.

final類中所有的方法都隱式指定為師final的.

忠告:慎用final.

9.初始化及類的加載

在許多傳統(tǒng)語(yǔ)言中,程序是作為啟動(dòng)過程的一部分立刻被加載的,然后是初始化,緊接著程序開始運(yùn)行.

類的代碼在初次使用時(shí)才加載,即加載發(fā)生于創(chuàng)建類的第一個(gè)對(duì)象之時(shí),或者static域或方法被訪問時(shí).

END

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71550.html

相關(guān)文章

  • Java編程思想》筆記7.復(fù)用

    摘要:在類的構(gòu)造方法中。對(duì)基類構(gòu)造器的調(diào)用必須放到子類構(gòu)造器的第一行。約定用大寫字母下劃線命名規(guī)范空白空白指被聲明為但又未給定初值的域,但可以在構(gòu)造方法必須在域的定義處代碼塊或構(gòu)造器中對(duì)進(jìn)行賦值。 點(diǎn)擊進(jìn)入我的博客 復(fù)用代碼是Java眾多引人注目的功能之一,但要成為極具革命性的語(yǔ)言,僅僅能夠復(fù)制代碼并對(duì)之加以改變是不夠的,它還必須能夠做更多的事情。 7.1 組合 組合語(yǔ)法 就是在當(dāng)前類中產(chǎn)...

    ningwang 評(píng)論0 收藏0
  • 第5章:可復(fù)用性的軟件構(gòu)建方法 5.2面向復(fù)用的構(gòu)造

    摘要:代碼使用泛型類中不依賴于類型參數(shù)的方法。委托依賴于動(dòng)態(tài)綁定,因?yàn)樗蠼o定的方法調(diào)用可以在運(yùn)行時(shí)調(diào)用不同的代碼段。委托捕獲操作并將其發(fā)送給另一個(gè)對(duì)象。委托可以被看作是在對(duì)象層次上的復(fù)用機(jī)制,而繼承是類層次上的復(fù)用機(jī)制。 大綱 設(shè)計(jì)可復(fù)用的類 繼承和重寫 重載(Overloading) 參數(shù)多態(tài)和泛型編程 行為子類型與Liskov替換原則 組合與委托 設(shè)計(jì)可復(fù)用庫(kù)與框架 API和庫(kù)...

    DevTalking 評(píng)論0 收藏0
  • java jar打包使用總結(jié)(一)

    摘要:背景介紹將程序打包,無(wú)論是為了代碼復(fù)用,還是發(fā)布應(yīng)用,都是必不可少的的技能,上次總結(jié)了一下利用打包成,這次我來說如何打包。導(dǎo)入往往我們使用打包不只是為了雙擊使用,有時(shí)也是為了代碼復(fù)用。礙于時(shí)間關(guān)系,將留待下一篇文章進(jìn)行總結(jié)。 背景介紹 將程序打包,無(wú)論是為了代碼復(fù)用,還是發(fā)布應(yīng)用,都是必不可少的的技能,上次總結(jié)了一下python利用cxfreeze打包成exe,這次我來說java如何打...

    Blackjun 評(píng)論0 收藏0
  • 我的JAVA學(xué)習(xí)

    摘要:學(xué)習(xí)筆記方法方法就是一個(gè)功能塊返回?cái)?shù)值,結(jié)束方法方法定義格式修飾符方法返回類型方法名形參列表方法傳值值傳遞,沒有引用傳遞面向?qū)ο笠灶惖姆绞浇M織代碼,以對(duì)象的方式組織類對(duì)對(duì)象的抽象對(duì)象具體的事物對(duì)象以類為模板以類的方式組織代碼,以對(duì)象的方式組 JAVA學(xué)習(xí)筆記 1.方法 方法就是一個(gè)功能塊 return ,返回?cái)?shù)值,結(jié)束方法 方法定義格式: [修飾符] 方法返回類型 方法名(形參列表...

    Caizhenhao 評(píng)論0 收藏0
  • java.io (2) 輸入流的復(fù)用

    摘要:輸入流的復(fù)用在實(shí)際的開發(fā)中是很常見的場(chǎng)景。根據(jù)對(duì)的抽象,流的復(fù)用是矛盾的。檢查當(dāng)前流類是否支持標(biāo)記功能這三個(gè)方法能有效地解決流復(fù)用的問題。 輸入流的復(fù)用在實(shí)際的開發(fā)中是很常見的場(chǎng)景。 在實(shí)際應(yīng)用中,很多需要提供輸入數(shù)據(jù)的API都是用IputStream類作為其參數(shù)類型,比如XML文檔的解析API就是一個(gè)典型的例子。同時(shí)很多數(shù)據(jù)的提供者允許使用者通過InputStream類的對(duì)象方式來...

    kun_jian 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<