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

    1 封裝的概念

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

      封裝具有下述特征:

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

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

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

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

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

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

    3 類修飾符

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

    3.1 無修飾符的情況

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

    3.2 public 修飾符

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

    3.3 final 修飾符

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

      定義最終類的目的有三:

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

    3.4 abstract 修飾符

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

    3.5 類修飾符使用注意事項(xiàng)

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

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

    posted on 2008-04-07 12:07 龍震 閱讀(881) 評(píng)論(0)  編輯  收藏 所屬分類: 概念,術(shù)語,基礎(chǔ),理解
    主站蜘蛛池模板: 亚洲精品国产va在线观看蜜芽| 亚洲AV日韩AV天堂久久| 在线播放免费人成视频网站| 亚洲人成77777在线播放网站| 最近2019免费中文字幕6| 亚洲欧美精品午睡沙发| 亚洲视频在线精品| 精品成在人线AV无码免费看 | 亚洲国产综合精品中文字幕| 日本不卡免费新一区二区三区| 亚洲综合偷自成人网第页色| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 午夜视频在线观看免费完整版| 亚洲免费视频一区二区三区| 亚洲第一页在线视频| 亚洲一区日韩高清中文字幕亚洲| 国产成人精品免费视频动漫 | 午夜视频在线观看免费完整版| 永久在线观看免费视频| 亚洲日本成本人观看| 国产亚洲av片在线观看16女人| 免费特级黄毛片在线成人观看| a级毛片免费全部播放| 亚洲sm另类一区二区三区| 亚洲AV日韩AV永久无码绿巨人| 四虎影视在线永久免费观看| 曰批视频免费40分钟试看天天| 国产精品免费看久久久香蕉 | 中文字幕成人免费视频| 成人免费网站久久久| 亚洲AV男人的天堂在线观看| 久久综合图区亚洲综合图区| 亚洲国产aⅴ综合网| 毛片免费在线播放| 精品香蕉在线观看免费| 久久久精品午夜免费不卡| 农村寡妇一级毛片免费看视频| 亚洲欧美国产日韩av野草社区| 亚洲成人在线免费观看| 亚洲AV无码成人精品区蜜桃 | 久久亚洲日韩看片无码|