|
【一】 面向對象的基本概念
面向對象的英文全稱叫做Object Oriented,簡稱OO。OO其實包括OOA(Object Oriented Analysis,面向對象分析)、OOD(Object Oriented Design,面向對象設計)和OOP(Object Oriented Programming,面向對象的程序設計)。
通常所說的面向對象是指OOP, OOP是一種圍繞真實世界的概念來組織模型的程序設計方法,它采用對象來描述問題空間的實體。在使用計算機解決問題時,對象是作為計算機模擬真實世界的一個抽象,一個對象就是一個物理實體或邏輯實體,它反映了系統為之保存信息和(或)與它交互的能力。使其具有自己的屬性和行為, 從而簡化對復雜事物的描述,更有利于工程的可維護性和擴展性。
OOP同結構化程序設計相比最大的區別就在于: 前者首先關心的是所要處理的數據,而后者首先關心的是功能。
【二】 面向對象三個基本特征
封裝 (Encapsulation) 將數據以及相關的操作組織在一起,成為獨立的構件。外部無法直接訪問這些封裝了的數據,從而保證了這些數據的正確性。封裝的目的是為了內部數據表現形式和實現細節的隱藏,信息隱藏是為了減少系統各部分間的依賴性,各部分間必須通過明確的通道傳送信息,也就是對象間的接口.這樣一來,隱藏了部分內部的細節,極大方便系統的開發,維護和擴展。
繼承 (Inheritance) 繼承是一種聯結類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。一個新類可以從現有的類中派生,這個過程稱為類的繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且派生類可以修改或增加新的方法使之更適合特殊的需求。繼承性很好地解決了軟件的可重用性問題。
多態 (Polymorphism) 多態是允許你將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是允許類與類之間相同方法名的指針得以調用, 這樣很好地解決了應用程序函數同名問題。實現多態,有二種方式,覆蓋,重載。
【三】 Javascript 面向對象
Javascript本身是一種基于對象(object-based)的語言,我們日常編碼過程中用到的所有東西幾乎都是對象(Number, String, Boolean, etc.)。但是,相對于一些流行的面向對象語言(C++, C#, Java),它又不是一種真正的面向對象編程(OOP)語言,因為它的語法中沒有class的概念。
Keyword: class, object, `this`, closure, constructor, prototype
幾種對象封裝的方法
- 繼承
- 多態體現
之一、幾種對象封裝的方法
1. 對象封裝 – 原始模式
假定我們把貓看成一個對象,它有”name”和”color”兩個屬性, “etc” 行為。
var Cat = { name: '' color: '', eat: function() {}};
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。