• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Java面向?qū)ο缶幊痰娜筇匦?/h1>
      2020-01-18 05:51:56岳青玲
      電子技術(shù)與軟件工程 2019年24期
      關(guān)鍵詞:子類多態(tài)面向?qū)ο?/a>

      文/岳青玲

      面向?qū)ο笫钱?dāng)前Java和C#等主流編程語言共同的特點(diǎn)。面向?qū)ο蟠嬖谲浖_發(fā)過程中的每個階段。其中包含了面向?qū)ο蠓治觯∣OA)、面向?qū)ο笤O(shè)計(OOD)和面向?qū)ο缶幊蹋∣OP),上述幾個方面形成了完整的軟件工程核心理論、方法以及工具。在學(xué)習(xí)Java的過程中,首先接觸的就是相關(guān)的基本概念,經(jīng)過此模塊的系統(tǒng)學(xué)習(xí)后,我們可以正確的認(rèn)知對象并進(jìn)行使用,在面向?qū)ο蟮膶W(xué)習(xí)過程中有很大的推進(jìn)作用。本文對Java的三大特性:封裝、繼承、多態(tài)進(jìn)行詳細(xì)的解釋和舉例,對理解學(xué)習(xí)面向?qū)ο笏枷牒秃罄m(xù)的學(xué)習(xí)有較大的幫助。

      1 Java封裝

      1.1 封裝的概念

      面向?qū)ο笤O(shè)計方法的第一大特性--封裝,該特性是指把抽象的函數(shù)接口的具體實(shí)現(xiàn)細(xì)節(jié)當(dāng)作一個包,將其包裝并且隱藏起來。

      (1)定義:將對象的屬性和具體細(xì)節(jié)打包隱藏,對外使用時只能看到相應(yīng)的接口,來執(zhí)行對屬性的可讀及修改的訪問權(quán)限。

      (2)目的:增加程序的安全級別,降低后續(xù)的編程復(fù)雜度,程序的使用者不需要了解實(shí)現(xiàn)的細(xì)節(jié),只需要了解它的外部接口,來進(jìn)行對該類的使用。

      (3)基本要求:將屬性進(jìn)行私有化操作,對每個屬性創(chuàng)建set和get方法,如果這里存在一個帶參數(shù)的構(gòu)造函數(shù),以此同時就必須存在一個不帶參數(shù)的構(gòu)造函數(shù)。在后續(xù)的開發(fā)階段需要對已經(jīng)存在的類測試,因此有時還需要寫toString方法,雖然不是強(qiáng)制的。

      1.2 封裝的優(yōu)點(diǎn)

      (1)優(yōu)秀的封裝使用可以低耦合。

      (2)類的內(nèi)部結(jié)構(gòu)可以根據(jù)實(shí)際需求進(jìn)行更改。

      (3)對成員變量的調(diào)控變得更精準(zhǔn)。

      (4)隱藏不需要外部了解的細(xì)節(jié)。

      1.3 實(shí)現(xiàn)Java封裝的步驟

      修改屬性的可見性來限制對屬性的訪問(一般限制為private),例如:

      public class Someone {

      private String name;

      private String gender;}

      上述例子,把 name 和 gender屬性設(shè)定為private,只有該類才可以執(zhí)行此方法,因此可以認(rèn)定把細(xì)節(jié)模糊處理。

      表1:類成員修飾符與訪問能力之間的關(guān)系(類成員訪問權(quán)限)

      表2:繼承和權(quán)限

      其次,再將上述方法中的值都封裝起來,并設(shè)置為一個方法,外部如果想使用該值時,可以用過調(diào)用該方法來使用其中的值,這樣做可以對一些私有屬性進(jìn)行訪問。

      2 繼承

      2.1 目的

      實(shí)現(xiàn)代碼的復(fù)用。

      2.2 介紹

      兩個類存在同樣的屬性和同樣的方法名稱時,可以把兩個類中共同的部分提取出來,新建類為父類,之前的兩個類來繼承這個類進(jìn)而使用方法。進(jìn)行繼承操作后,子類自動擁有了父類的屬性和詳細(xì)方法,但是父類存在private的屬性和方法,子類不能夠繼承。除此之外,子類可以再次編寫自己特有的屬性和方法,目的就為了后續(xù)開發(fā)過程中功能的擴(kuò)展,子類也可以復(fù)寫方法。如表1、表2所示。

      繼承是面向?qū)ο笞铒@著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力。

      在Java之中,實(shí)現(xiàn)繼承,可以參考以下例子:

      class 子類 extends 父類 {}

      子類可以叫繼承類(派生類); 父類可以叫超類(Super Class)。

      觀察繼承的基本實(shí)現(xiàn):

      運(yùn)行結(jié)果:類別:哺乳動物,數(shù)量:6

      通過代碼可以發(fā)現(xiàn),子類(Student)并沒有定義任何的操作,而在主類中所使用的全部操作都是由Person類定義的,這證明:子類即使不擴(kuò)充父類,也能維持父類的操作。

      3 多態(tài)

      3.1 概念

      同樣的事物處理,使用的方法為同一個方法,方法中的參數(shù)也相同,但是最后表現(xiàn)的結(jié)果不同。

      3.2 Java如果想實(shí)現(xiàn)多態(tài)必須存在以下幾個條件才可以成功實(shí)現(xiàn)

      繼承:在多態(tài)的管理網(wǎng)中必須要有存在繼承關(guān)系的子類和父類。

      重寫:子類會針對父類中的一些特點(diǎn)方法進(jìn)行自定義,后續(xù)在使用這些方法時會調(diào)用子類中重寫的方法。

      向上轉(zhuǎn)型:在多態(tài)當(dāng)中需要把子類引用的對象賦值給到父類,只有這樣做才能達(dá)到可以調(diào)用父類、子類方法的目的。

      滿足了以上的幾個條件,我們可以在同一個繼承的結(jié)構(gòu)中使用統(tǒng)一邏輯代碼,進(jìn)而去處理不同類別的對象,進(jìn)而達(dá)到執(zhí)行不同方法的目的。

      3.3 多態(tài)的實(shí)現(xiàn)方式

      3.3.1 基于繼承實(shí)現(xiàn)的多態(tài)

      基于繼承來實(shí)現(xiàn)多態(tài),該方法主要表現(xiàn)在父類和繼承該父類的不同子類對這些方法進(jìn)行重寫,多個子類進(jìn)行重寫,后續(xù)調(diào)用時可以執(zhí)行不同的行為。

      3.3.2 基于接口實(shí)現(xiàn)的多態(tài)

      繼承是通過重新編寫父類的同一個方法中的不同的子類來實(shí)現(xiàn)的,如果這樣做的話就是覆蓋接口來實(shí)現(xiàn)多態(tài)。

      4 Java三大特性總結(jié)

      4.1 封裝的優(yōu)點(diǎn)

      (1)提高了安全性,防止一些誤操作。

      (2)提高了復(fù)用性,封裝之后便于調(diào)用。

      (3)信息隱藏,隱藏了實(shí)現(xiàn)細(xì)節(jié)。

      4.2 繼承的優(yōu)點(diǎn)

      (1)繼承可提高代碼的復(fù)用性。

      (2)繼承可提高代碼的穩(wěn)定性。

      (3)繼承讓類與類之間產(chǎn)生關(guān)系,是多態(tài)的前提。

      4.3 多態(tài)性優(yōu)點(diǎn)

      (1)提高了代碼的維護(hù)性(繼承保證)。

      (2)提高了代碼的擴(kuò)展性(由多態(tài)保證)。

      封裝->繼承->多態(tài)這不單單是三個名詞的簡單羅列,更是一步步遞進(jìn)的關(guān)系。對于面向?qū)ο蟮某绦蛟O(shè)計,封裝是基礎(chǔ),繼承是多態(tài)的前提條件,三者邏輯順序不可顛倒。

      5 結(jié)論

      通過上述可以理解面向?qū)ο蟮闹行乃枷刖褪钦_的理解對象的概念,還有對象到類、類到接口等過程。面向?qū)ο箝_發(fā)思想的三大特性包括封裝、繼承與多態(tài),Java的三大特性在初次學(xué)習(xí)和后續(xù)開發(fā)階段,這些特性都是與開發(fā)息息相關(guān)的,在分析設(shè)計類的過程中讓代碼之間變得低耦合、高內(nèi)聚,進(jìn)而提升代碼的復(fù)用性。

      Java程序在執(zhí)行過程中,正確的認(rèn)知對象的整個聲明周期和后續(xù)在實(shí)際的開發(fā)過程中正確的使用它們,是在編寫的效率方面有極大幫助的。因此從理解對象的概念、學(xué)習(xí)對象的使用為起點(diǎn),后續(xù)進(jìn)行面向?qū)ο蟮姆治?、開發(fā)過程,在實(shí)踐過程中才能更迅速的提高對整個系統(tǒng)的分析、設(shè)計能力。

      猜你喜歡
      子類多態(tài)面向?qū)ο?/a>
      分層多態(tài)加權(quán)k/n系統(tǒng)的可用性建模與設(shè)計優(yōu)化
      卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計
      參差多態(tài)而功不唐捐
      面向?qū)ο蟮挠嬎銠C(jī)網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)的開發(fā)
      電子測試(2018年15期)2018-09-26 06:01:34
      關(guān)于對稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計
      面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
      面向?qū)ο骔eb開發(fā)編程語言的的評估方法
      人多巴胺D2基因啟動子區(qū)—350A/G多態(tài)位點(diǎn)熒光素酶表達(dá)載體的構(gòu)建與鑒定及活性檢測
      面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
      河南科技(2014年10期)2014-02-27 14:09:03
      煙堿型乙酰膽堿受體基因多態(tài)與早發(fā)性精神分裂癥的關(guān)聯(lián)研究

      建水县| 定陶县| 天镇县| 大安市| 霍山县| 诸城市| 巴彦淖尔市| 湘潭县| 伽师县| 滨海县| 独山县| 南华县| 吉水县| 北碚区| 稻城县| 临澧县| 定南县| 永春县| 土默特左旗| 紫金县| 丹东市| 洪雅县| 四平市| 怀仁县| 阿荣旗| 石渠县| 甘泉县| 桃江县| 洛阳市| 麦盖提县| 石门县| 高密市| 雷波县| 项城市| 宁强县| 天门市| 福鼎市| 安宁市| 荣成市| 泌阳县| 溆浦县|