學習面向?qū)ο笾嫦驅(qū)ο蟮幕靖拍?對象和其他基本要素
什么是對象
對象是一件事,一個實體,一個名詞,概括來說:萬物皆是對象
一個對象保存了某些信息,并知道如何執(zhí)行某些操作
對象的狀態(tài)和行為
對象具有狀態(tài),狀態(tài)是對對象的一個或多個屬性的描述(如:一個燈 "燈是亮的 這是它的狀態(tài)")
對象具有行為,行為是對象為為改變自身的狀態(tài)而發(fā)生的作用和反作用(如:一個燈 "把燈關(guān)了" 這是它的行為)
面像對象中最原始的單元就是對象
封裝
把數(shù)據(jù)和影響這個數(shù)據(jù)的操作聚合成一個對象的行為稱為“封裝”
封裝隱藏對象的屬性和實現(xiàn)細節(jié),公對公開接口,控制程序中屬性的讀和修改的訪問級別
從外視圖看,在一個對象內(nèi)封裝的數(shù)據(jù)是隱藏的
封裝的目的增強安全性和簡化編程,使用者不必了解具體的實現(xiàn)細節(jié),而只要通過對象對外開發(fā)的接口,一特定的訪問權(quán)限來使用對象的成員
消息和方法
消息發(fā)送
一個對象通過發(fā)送“消息”訪問另一個對象,這樣的訪問,稱為“消息發(fā)送”,是一個對象訪問另一個對象的唯一的方法
消息發(fā)送過程中包含了:發(fā)送器->消息【名稱和參數(shù)】->接收器
消息
一個“消息”由一個操作的名稱和所有必須的參數(shù)組成,當一個對象給另一個對象發(fā)送消息時,發(fā)送者請求消息接受者執(zhí)行指定的操作,并(有可能)返回信息,當接受者接收消息時,它以它所知道的方式來執(zhí)行被請求的操作。這樣的請求不規(guī)定如何執(zhí)行一個操作。對于發(fā)送者的這種信息總是被隱藏的
消息名稱
一個消息包括操作名稱和該操作所要求的全部參數(shù),有時,通過名稱來查閱操作是很有用的,而不考慮它的參數(shù),我們把一個操作的名稱稱為“消息名稱”。
方法
當一個對象接收一個消息時,它通過執(zhí)行一種方法來完成被請求的操作。這種“方法”就是一步一步執(zhí)行算法。當消息名稱和操作名稱匹配時,響應(yīng)接收到的消息。正如由信息隱藏原理所規(guī)定的。方法始終是一個對象私有表達的一部分,而不是公式接口的一部分。
簽名
與消息發(fā)送相關(guān)的一個更有用的概念是簽名,當一個消息由一種方法和方法所需的參數(shù)組成時,“簽名”就是這種方法的名稱,參數(shù)類型和返回對象的類型,簽名是方法輸入的正規(guī)說明書,也是方法輸出的正規(guī)說明書。它規(guī)定了使用這種方法所必需的東西
相關(guān)文章
Javascript面向?qū)ο缶幊蹋ㄈ?非構(gòu)造函數(shù)的繼承
這個系列的第一部分介紹了"封裝",第二部分介紹了使用構(gòu)造函數(shù)實現(xiàn)"繼承"。2011-08-08JavaScript面向?qū)ο?極簡主義法minimalist approach)
荷蘭程序員 Gabor de Mooij 提出了一種比 Object.create ()更好的新方法,他稱這種方法為極簡主義法(minimalist approach)。這也是我推薦的方法2012-07-07用JavaScript實現(xiàn)單繼承和多繼承的簡單方法
JavaScript是一種強大的多泛型編程語言,其融合了面向過程、面向?qū)ο蠛秃瘮?shù)式編程于一身,具備強大的表現(xiàn)能力。2009-03-03javascript 面向?qū)ο缶幊?function也是類
function在javascript中用來創(chuàng)建函數(shù)或方法,但要想實現(xiàn)面向?qū)ο蠓绞降木幊?,類是不可或缺的角色之一,而且是主角?/div> 2009-09-09JavaScript isPrototypeOf和hasOwnProperty使用區(qū)別
JavaScript isPrototypeOf和hasOwnProperty的使用技巧,需要的朋友的朋友可以參考下。2010-03-03JavaScript面向?qū)ο笤O(shè)計二 構(gòu)造函數(shù)模式
在Javascript面向?qū)ο笤O(shè)計一——工廠模式 中介紹了使用CreateEmployee()函數(shù)創(chuàng)建員工類。ECMAScript中的構(gòu)造函數(shù)可以用來創(chuàng)建特定類型的對象,如Object和Array這樣的原生構(gòu)造函數(shù),在運行時會自動出現(xiàn)在執(zhí)行環(huán)境中,此外也可以創(chuàng)建自定義的構(gòu)造函數(shù),從而創(chuàng)建自定義對象類型的屬性和方法2011-12-12最新評論