<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    自由,平等,開源,分享

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      2 Posts :: 61 Stories :: 3 Comments :: 0 Trackbacks

      封裝是面向?qū)ο笙到y(tǒng)的一個重要特性,是抽象數(shù)據(jù)類型思想的具體體現(xiàn)。
      在面向?qū)ο蟮某绦蛟O(shè)計中,抽象數(shù)據(jù)類型是用“類”這種結(jié)構(gòu)來代表的,而“類”又是面向?qū)ο蟮墓ぞ呖衫斫夂筒倏v的。

    1 封裝的概念

      封裝也稱為信息隱藏,是指利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其構(gòu)成一個不可分割的獨立實體,數(shù)據(jù)被保護在抽象數(shù)據(jù)類型的內(nèi)部,盡可能地隱藏內(nèi)部的細節(jié),只保留一些對外接口使之與外部發(fā)生聯(lián)系。
    系統(tǒng)的其他部分只有通過包裹在數(shù)據(jù)外面的被授權(quán)的操作來與這個抽象數(shù)據(jù)類型交流與交互。
    也就是說,用戶無需知道對象內(nèi)部方法的實現(xiàn)細節(jié),但可以根據(jù)對象提供的外部接口(對象名和參數(shù))訪問該對象。

      封裝具有下述特征:

        在類的定義中設(shè)置訪問對象屬性(數(shù)據(jù)成員)及方法(成員方法)的權(quán)限,限制本類對象及其他類的對象使用的范圍。
        提供一個接口來描述其他對象的使用方法。
        其他對象不能直接修改本對象所擁有的屬性和方法。

      封裝反映了事物的相對獨立性。
      封裝在編程上的作用是使對象以外的部分不能隨意存取對象的內(nèi)部數(shù)據(jù)(屬性),從而有效地避免了外部錯誤對它的“交叉感染”。
      另一方面,當(dāng)對象的內(nèi)部做了某些修改時,由于它只通過少量的接口對外提供服務(wù),因此大大減少了內(nèi)部的修改對外部的影響。

      面向?qū)ο笙到y(tǒng)的封裝單位是對象,類概念本身也具有封裝的意義,因為對象的特性是由它所屬的類說明來描述的。

    2 類的嚴(yán)謹(jǐn)定義

    [類修飾符] class 類名 [extends 父類名] [implements 接口列表]
    {
      數(shù)據(jù)成員
      成員方法
    }

      合理地使用這些可選項,可以充分地展示封裝、繼承和信息隱藏等面向?qū)ο筇匦浴?br />
        類修飾符(Qualifier):用于規(guī)定類的一些特殊性,主要是說明對它的訪問限制。
        extends 父類名:指明新定義的類是由已存在的父類派生出來的。
        implements 接口列表:Java 本來只支持單繼承,為了給多重繼承的軟件開發(fā)提供方便,它提供了這一接口機制。

    3 類修飾符

      類的修飾符用于說明對它的訪問限制,一個類可以沒有修飾符,也可以有 public、final、abstract 等幾種不同的修飾符。

    3.1 無修飾符的情況

      如果一個類前無修飾符,則這個類只能被同一個包里的類使用。
      Java 規(guī)定,同一個程序文件中的所有類都在同一個包中。
      無修飾符的類可以被同一個程序文件中的類使用,但不能被其他程序文件中的其他包中的類使用。

    3.2 public 修飾符

      如果一個類的修飾符是 public,則這個類是公共類。
      公共類不但可供它所在包中的其他類使用,也可供其他包中的類使用。
      在程序中可以用 import 語句引用其他包中的 public 類。
      Java 規(guī)定,在一個程序文件中,只能定義一個 public 類,其余的類可以是無修飾符的類,也可以是用 final 修飾符定義的最終類,否則編譯時會報錯。

    3.3 final 修飾符

      用 final 修飾符修飾的類被稱為最終類。
      最終類是不能被任何其他類所繼承的。

      定義最終類的目的有三:

        用來完成某種標(biāo)準(zhǔn)功能。將一個類定義為 final 類,則可以將它的內(nèi)容、屬性和功能固定下來,與它的類名形成穩(wěn)定的映射關(guān)系,從而保證引用這個類時所實現(xiàn)的功能是正確無誤的。
        提高程序的可讀性。從父類派生子類,再從子類派生子類,使軟件變得越來越復(fù)雜。而在必要的層次上設(shè)置 final 類,可以提高程序的可讀性。
        提高安全性。病毒的闖入途徑之一是在一些處理關(guān)鍵信息的類中派生子類,再用子類去替代原來的類。由于用 final 修飾符定義的類不能再派生子類,截斷了病毒闖入的途徑,因而提高了程序的安全性。

    3.4 abstract 修飾符

      用 abstract 修飾符修飾的類稱為抽象類。
      抽象類刻畫了研究對象的公有行為特征,并通過繼承機制將這些特征傳送給它的派生類。
      其作用在于將許多有關(guān)的類組織在一起,提供一個公共的基類,為派生具體類奠定基礎(chǔ)。
      此外,當(dāng)一個類中出現(xiàn)一個或多個用 abstract 修飾符定義的方法時,則必須在這個類的前面加上 abstract 修飾符,將其定義為抽象類。

    3.5 類修飾符使用注意事項

      可以同時使用兩個修飾符來修飾一個類,當(dāng)使用兩個修飾符修飾一個類時,這些修飾符之間用空格分開,寫在關(guān)鍵字 class 之前,修飾符的順序?qū)︻惖男再|(zhì)沒有任何影響。

      需要注意的是:一個類可以為修飾為 public abstract,也可以被修飾為 public final,但不能被修飾為 abstract final,這是因為 abstract 類自身沒有對象,需要派生子類后再創(chuàng)建子類的對象,而 final 類不能派生子類,所以不存在用 abstract final 兩個修飾符修飾的類。

    posted on 2008-04-07 12:07 龍震 閱讀(889) 評論(0)  編輯  收藏 所屬分類: 概念,術(shù)語,基礎(chǔ),理解
    主站蜘蛛池模板: 四虎永久在线精品免费一区二区 | 久久免费的精品国产V∧| 中国人免费观看高清在线观看二区 | 无码av免费毛片一区二区| 24小时免费直播在线观看| 免费观看国产小粉嫩喷水| 亚洲精品成人片在线播放| 亚洲人成7777影视在线观看| 亚洲av无码专区在线电影 | 亚洲国产高清在线精品一区| 亚洲日韩在线中文字幕综合| 久久国产精品免费看| A级毛片内射免费视频| 中日韩亚洲人成无码网站| 香蕉免费看一区二区三区| 日韩毛片免费在线观看| 亚洲图片在线观看| 黄色毛片免费网站| 久久久高清免费视频| 亚洲熟女综合一区二区三区| 一区二区免费视频| 亚洲热线99精品视频| 羞羞漫画在线成人漫画阅读免费 | 777亚洲精品乱码久久久久久| 黄页网站在线观看免费| 青青草原亚洲视频| 永久免费无码日韩视频| 亚洲精品高清无码视频| 免费视频爱爱太爽了| 国产成人精品日本亚洲网站 | 免费人成视频在线播放| 永久黄网站色视频免费| 亚洲依依成人精品| 亚洲精品国产高清嫩草影院| 亚洲jizzjizz少妇| 国产美女精品视频免费观看| 亚洲欧美不卡高清在线| 免费的涩涩视频在线播放| 黄色网页在线免费观看| 亚洲一区中文字幕| 久久久久久国产精品免费免费 |