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

正文內(nèi)容

軟件抽象過程外文翻譯-資料下載頁(yè)

2025-05-11 15:47本頁(yè)面

【導(dǎo)讀】Assemblylanguage

  

【正文】 每個(gè)類的成員( member)或元素( element)都共享 相同的性質(zhì):每個(gè)賬戶都有結(jié)余金額,每個(gè)出納都可以處理存款請(qǐng)求等。 同時(shí),每個(gè)成 員都有其自身的狀態(tài):每個(gè)賬戶都有不同的結(jié)余金額,每個(gè)出納都有自己的名 稱。因此,出納、客戶、賬戶、交易等都可以在計(jì)算機(jī)程序中被表示成為唯一的實(shí)體( entity) 這些實(shí)體就是對(duì)象,每一個(gè)對(duì)象都屬于定義了特性和行為的某個(gè)特定的類。所以,盡管我們?cè)诿嫦驅(qū)ο蟪绦蛟O(shè)計(jì)中實(shí)際所作的是創(chuàng)建新的數(shù)據(jù)類型,但事實(shí)上所有的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言都使用 Class 關(guān)鍵詞來表示數(shù)據(jù)類型。當(dāng)你看到類型( Type)一詞時(shí), 請(qǐng)將其作為類( Class)來考慮,反之亦然。 既然類被描述成了具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象集合,那么一個(gè)類就確實(shí)是一個(gè)數(shù)據(jù)類型,就像所有浮點(diǎn)型數(shù)字具有相同的特性和行為集合一樣。二者的差異在于,程序員通過定義類來適應(yīng)問題,而不再被強(qiáng)制只能使用現(xiàn)有的被設(shè)計(jì)用來表示在機(jī)器中的存儲(chǔ)單元的數(shù)據(jù)類型。你可以根據(jù)需求,通過添加新的數(shù)據(jù)類型來擴(kuò)展編程語(yǔ)言。編程系統(tǒng)欣然接受新的類,并且給予它們與內(nèi)置類型相同的管護(hù)和類型檢查( Typechecking)。面向?qū)ο蠓椒ú⒉皇莾H局限于構(gòu)件仿真程序。無(wú)論你是否同意任何程序都是你所設(shè)計(jì)的系統(tǒng)的一個(gè)仿真的觀念,面向?qū)ο蠹夹g(shù)確實(shí)可以將大量的問題降解為一個(gè)簡(jiǎn)單的解決方案。一旦類被建立, 你想要?jiǎng)?chuàng)建該類的多少個(gè)對(duì)象,就可以創(chuàng)建多少個(gè)了,然后去操作它們,就像它們是存在于你的待解問題中的元素一樣。事實(shí)上,面向?qū)ο蟪绦蛟O(shè)計(jì)的挑戰(zhàn)之一,就是 在問題空間的元素和解空間的對(duì)象之間創(chuàng)建一對(duì)一的映射。 但是,你怎樣才能獲得對(duì)你有用的對(duì)象呢?必須有某種方式產(chǎn)生對(duì)對(duì)象的請(qǐng)求,使對(duì)象完成諸如完成一筆交易 、在屏幕上畫圖、打開開關(guān)之類的任務(wù)。每個(gè)對(duì)象都只能滿足某些請(qǐng)求, 這些請(qǐng)求由對(duì)象的接口( Interface)所定義,決定接口的便是類型( Type)。 以電燈泡為例來 做一個(gè)簡(jiǎn)單的比喻: Light lt = new Light()。 ()。 接口定義了你能夠?qū)δ骋惶囟▽?duì)象發(fā)出的請(qǐng)求。但是,在程序中必須有滿足這些請(qǐng)求的代碼。這些代碼與隱藏的數(shù)據(jù)一起構(gòu)成了實(shí)現(xiàn)( implementation)。從過程型編程的觀點(diǎn)來看,這并不太復(fù)雜。在類型中,每一個(gè)可能的請(qǐng)求都有一個(gè)方法與之相關(guān)聯(lián),當(dāng)你向?qū)ο蟀l(fā)送請(qǐng)求時(shí),與之相關(guān)聯(lián)的方法就會(huì)被調(diào)用。此過程通常被總結(jié)為:你向某個(gè)對(duì)象發(fā)送消息(產(chǎn)生請(qǐng)求),這個(gè)對(duì)象便知道此消息的目的,然后執(zhí)行對(duì)應(yīng)的程序代碼。 大連交通大學(xué) 2020 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 10 上例中,類型 /類的名稱是 Light,特定的 Light 對(duì)象的名稱是 lt,你可以 向 Light 對(duì)象發(fā)出的請(qǐng)求是:打開它、關(guān)閉它、將它調(diào)亮、將它調(diào)暗。你以這種方式創(chuàng)建了一個(gè) Light 對(duì)象:定義這個(gè)對(duì)象的 引用( reference) ( lt),然后調(diào)用 new 方法來創(chuàng)建該類型的新對(duì)象。為了向?qū)ο蟀l(fā)送消息,你需要聲明對(duì)象的名稱,并以圓點(diǎn)符號(hào)連接一個(gè)消息請(qǐng)求。從預(yù)定義類的用戶觀點(diǎn)來看,這些差不多就是用對(duì)象來進(jìn)行設(shè)計(jì)的全部。 前面的圖是 UML(Unified Modelling Language)形式的圖,每個(gè)類都用一個(gè)方框表示,類名在方框的頂部,你所關(guān)心的任何數(shù)據(jù)成員( data member)都描述在方框的中間部分,方法(隸屬于此對(duì)象的,用來接收你發(fā)給此對(duì)象的消息的函數(shù))在方框的底部。通常,只有類名和公共方法( Public Method)被示于 UML 設(shè)計(jì)圖中,因此,方框的中部并不繪出。如果你只對(duì)類型感興趣,那么方框的底部甚至也不需要被繪出。 每個(gè)對(duì)象都提供服務(wù) 當(dāng)你正是如開發(fā)或理解一個(gè)程序設(shè)計(jì)時(shí),最好的方法之一就是將對(duì)象想象為 服務(wù)提供者( Service Provider) 。你的程序本身將向用戶提供服務(wù),它將通過調(diào)用其它對(duì)象提供的服務(wù)來實(shí)現(xiàn)這一目的。你的目標(biāo)就是去創(chuàng)建(或者 最好是在現(xiàn)有代碼庫(kù)中尋找)能夠提供理想的服務(wù)來解決問題的對(duì)象集合。著手從事這件事的方式之一是詢問 如果我可以將問題從表象中抽取出來,那么什么樣的對(duì) 象可以馬上解決我的問題呢? 例如,假設(shè)你正在創(chuàng)建一個(gè)簿記( Bookkeeping)系統(tǒng),你可以想象系統(tǒng)應(yīng)該具有某些包括了預(yù)定義的簿記輸入屏幕的對(duì)象,一個(gè)執(zhí)行簿記計(jì)算的對(duì)象集合,以及一個(gè)處理在不同的打印機(jī)上打印支票和開發(fā)票的對(duì)象。也許上述對(duì)象中的某些已經(jīng)存在了,但是對(duì)于那些并不存在的對(duì)象,它們看起來什么樣?它們能夠提供哪些服務(wù)?它們需要哪些對(duì)象才能履行它們的義務(wù)? 如果你持續(xù)這樣做,你最終會(huì)發(fā)現(xiàn)你將到達(dá)這樣一個(gè)節(jié)點(diǎn):你會(huì)說 那個(gè)對(duì)象看起來很簡(jiǎn)單,以至可以坐下來寫代碼了 ,或者會(huì)說 我肯定那個(gè)對(duì)象已經(jīng)存在了 。這是將問題分解為對(duì)象集合的一種合理方式。將對(duì)象看作是服務(wù)提供者還有一個(gè)附加的好處:它有助于提高對(duì)象的內(nèi)聚性( cohesiveness)。高內(nèi)聚是軟件設(shè)計(jì)的基本質(zhì)量要求之一:這意味著一個(gè)軟件構(gòu)件(例如一個(gè)對(duì)象,盡管它也有可能被用來指代一個(gè)方法或一個(gè)對(duì)象庫(kù))的各個(gè)方面 組合( fit together) 得很好。人們?cè)谠O(shè)計(jì)對(duì)象時(shí)所面臨的一個(gè)問題是將過多的功能都填塞在一個(gè) 對(duì)象中。例如,在你的檢查打印模式模塊中,你可以設(shè)計(jì)一個(gè)對(duì)象,它了解所有的格式和打印技術(shù)。你可能會(huì)發(fā)現(xiàn)這些功能對(duì)于一個(gè)對(duì)象來說太多了,你需要的是三個(gè)甚至更多個(gè)對(duì)象,其中,一個(gè)對(duì)象可以是所有可能的支大連交通大學(xué) 2020 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 11 票排版的目錄,它可以被用來查詢有關(guān)如何打印一張支票的信息;另一個(gè)對(duì)象或是 對(duì)象集合可以是一個(gè)通用的打印接口,它知道有關(guān)所有不同類型的打印機(jī)的信息(但是不包含任何有關(guān)簿記的內(nèi)容,它更應(yīng)該是一個(gè)需要購(gòu)買而不是自己編寫的對(duì)象);第三個(gè)對(duì)象通過調(diào)用另外兩個(gè)對(duì)象的服務(wù)來完成打印任務(wù)。因此,每個(gè)對(duì)象都有一個(gè)它所能提供服務(wù)的高內(nèi) 聚的集合。在良好的面向?qū)ο笤O(shè)計(jì)中,每個(gè)對(duì)象都可以很好地完成一項(xiàng)任務(wù),但是它并不試圖多更多的事。就像在這里看到的,不僅允許某些對(duì)象可以通過購(gòu)買獲得(打印機(jī)接口對(duì)象),而且還使對(duì)象在某處重用成為可能(支票排版目錄對(duì)象)。將對(duì)象作為服務(wù)提供者看待是一件偉大的簡(jiǎn)化工具,它不僅在設(shè)計(jì)過程中非常有用,而且當(dāng)其他人試圖理解你的代碼或重用某個(gè)對(duì)象時(shí)(如果他們看出了這個(gè)對(duì)象所能提供的服務(wù)的價(jià)值所在的話),它會(huì)使將對(duì)象調(diào)整到適應(yīng)其設(shè)計(jì)的過程變得簡(jiǎn)單得多。 被隱藏的具體實(shí)現(xiàn) 將程序開發(fā)人員按照角色分為類創(chuàng)建者( class creator,那些創(chuàng)建新數(shù)據(jù)類型的程序員)和客戶端程序員 ( client programmer,那些在其應(yīng)用中使用數(shù)據(jù)類型的類消費(fèi)者)是大有裨益的??蛻舳顺绦騿T的目標(biāo)是收集各種用來實(shí)現(xiàn)快速應(yīng)用開發(fā)( Rapid Application Development)的類。類創(chuàng)建者的目標(biāo)是構(gòu)建類,該類只向客戶端程序員暴露必需的部分,而隱藏其它所有部分。為什么要這樣呢?因?yàn)槿绻右噪[藏,那么客戶端程序員將不能夠訪問它,這意味著類 創(chuàng)建者可以任意修改被隱藏的部分,而不用擔(dān)心對(duì)其他任何人造成影響。被隱藏的部分通常代表對(duì)象內(nèi)部 脆弱的部分,它們很容易被粗心的或不知內(nèi)情的客戶端程序員所毀壞,因此將實(shí)現(xiàn)隱藏起來可以減少程序的 Bug。 實(shí)現(xiàn)隱藏的概念再怎么強(qiáng)調(diào)也不會(huì)過分。在任何相互關(guān)系中,具有關(guān)系所涉及的各方都遵守的邊界是十分重要的事情。當(dāng)你創(chuàng)建一個(gè)類庫(kù)( Library)時(shí),你就建立了與客戶端程序員之間的關(guān)系,他們同樣也是程序員,但是他們是使用你的類庫(kù)來構(gòu)建應(yīng)用,或者是構(gòu)建更大的類庫(kù)的程序員。如果所有的類成員( Member)對(duì)任何人都是可用的,那么客戶端程序員就可以對(duì)類作任何事情,而不受任何約束。即使你希望客戶端程序員不要直接操作你的類中 的某些成員,但是如果沒有任何訪問控制,將無(wú)法阻止此事發(fā)生。所有東西都將赤裸裸地暴露于世前 。 因此,訪問控制的第一個(gè)存在原因就是讓客戶端程序員無(wú)法觸及他們不應(yīng)該觸及的部分 ——這些部分對(duì)數(shù)據(jù)類型的內(nèi)部操作來說是必需的,但并不是用戶需要的用來解決特定問題的接口的一部分。這對(duì)用戶來說其實(shí)是一項(xiàng)服務(wù),因?yàn)樗麄兛梢院苋菀椎乜闯瞿男〇|西對(duì)他們來說很重要,而哪些東西可以忽略。 大連交通大學(xué) 2020 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 12 訪問控制的第二個(gè)存在原因就是允許庫(kù)設(shè)計(jì)者可以改變類內(nèi)部的工作方式而不用擔(dān)心是否會(huì)影響到客戶端程序員。例如,你可能為了減輕開發(fā)任務(wù)而以某種簡(jiǎn) 單的方式實(shí)現(xiàn)了某個(gè)特定類,但稍后你就發(fā)現(xiàn)你必須改寫它才能使其運(yùn)行得更快。如果接口和實(shí)現(xiàn)可以清晰地分離并得以保護(hù),那么你就可以輕而易舉地完成這項(xiàng)工作。 Java 使用三個(gè)關(guān)鍵字來在類的內(nèi)部設(shè)定邊界: public、 private、 protected。它們的含義和用法非常易懂。這些 訪問指定詞( access specifier) 決定了緊跟其后被定義的東西可以被誰(shuí)使用。 public 表示緊隨其后的元素對(duì)任何人都是可用的,另一方面,private 這個(gè)關(guān)鍵字表示除類型創(chuàng)建者和該類型的內(nèi)部方法之外的任何人都不能訪問 的元素。 private 就像你與客戶端程序員之間的一堵磚墻,如果有人試圖訪問 private 成員,就會(huì)在編譯時(shí)刻得到錯(cuò)誤信息。 protected 關(guān)鍵字與 private 作用相當(dāng),差別僅在于繼承類( Inheriting class)可以訪問 protected 成員,但是不能訪問 private 成員。稍后將會(huì)對(duì)繼承( Inheritance)進(jìn)行介紹。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1