前言:我們學習的javascript語言是一門面向對象的語言,所以這一概念我們需要理解與認識!下面是理解性的理論內容,不需要記憶,理解與思考我們的學習才能站在更高的視角!
一、認識:
面向對象是當今主流的一種程序設計理念和設計規范,它取代了早期的"結構化"過程設計開發技術,主張一切皆為對象,程序以人的思維模式去解決問題。面向對像的程序是由類組成的,每個類包含對用戶公開的特定功能部分和隱藏的實現部分。傳統的結構化程序設計通過設計一系列的過程(即算法)來求解問題。這一些過程一旦被確定,就要開始考考慮存儲數據的方式,這就明確的表述了程序員的工作方式。但面相對像卻調換了這個順序,它不必關心數據對象的具體實現,只要能滿足用戶的需求即可。
從世界觀的角度可以認為:
1、面向對象的基本哲學是認為世界是由各種各樣具有自己的運動規律和內部狀態的對象所組成的;
2、不同對象之間的相互作用和通訊構成了完整的現實世界。
因此,人們應當按照現實世界這個本來面貌來理解世界,直接通過對象及其相互關系來反映世界。這樣建立起來的系統才能符合現實世界的本來面目。
從方法學的角度可以認為:
1、面向對象的方法是面向對象的世界觀在開發方法中的直接運用;
2、它強調系統的結構應該直接與現實世界的結構相對應,應該圍繞現實世界中的對象來構造系統,而不是圍繞功能來構造系統。
二、特點:
面向對象有三個最基本的特性,即:封裝,繼承,多態。這也是我們判斷一門語言是不是面向對象語言的依據!
封裝(Encapsulation):使用方法把類的數據隱藏起來,讓普通類型上升為對象級;封裝控制用戶對類的修改和訪問數據的程度,增強了 程序的可維護性。
繼承(Implementation):發生在類和類之間,可分為單繼承和多層繼承描述父子對象之間的血緣關系, 最終達到的目的是:一旦使用了繼承,子類便獲得了父類所有的成員(變量和方法),但是父類的私有的方法和屬性不能被訪問,父類的final成員不能被重寫。 一旦使用了繼承,父類的實例能指向派生類(子類)的引用。
多態(Multipart):對象在運行期和編譯期具有的兩種狀態,使代碼具有靈活性和重用性。編譯時多態,也就是函數重載,所謂函數重載就是指同一個函數名可以對應多個函數的實現具體調用哪個按照由參數個數,參數類型等來決定。運行時多態:用一個基類的指針或引用來操縱多個派生類型的能力被稱為多態性。