物件(object):類是具有相似內部狀態和運動規律的實體的集合(或統稱、抽象).例:string 就是乙個物件
類(calss):描述了一組有相同特性(屬性)和相同行為(方法)的物件。
特性:1) 抽象:類的定義中明確指出類是一組具有內部狀態和運動規律物件的抽象,抽象是一種從一般的觀點看待事物的方法,它要求我們集中於事物的本質特徵(內部狀態和運動規律),而非具體細節或具體實現。物件導向鼓勵我們用抽象的觀點來看待現實世界,也就是說,現實世界是一組抽象的物件——類組成的。
2)繼承:繼承是類不同抽象級別之間的關係。類的定義主要有2種辦法歸納和演繹;由一些特殊類歸納出來的一般類稱為這些特殊類的父類,特殊類稱為一般類的子類,同樣父類可演繹出子類; 父類是子類更高階別的抽象。子類可以繼承父類的所有內部狀態和運動規律。在計算機軟體開發中採用繼承性,提供了類的規範的等級結構;通過類的繼承關係,使公共的特性能夠共享,提高了軟體的重用性。
3)封裝:物件間的相互聯絡和相互作用過程主要通過訊息機制得以實現。物件之間並不需要過多的了解對方內部的具體狀態或運動規律。物件導向的類是封裝良好的模組,類定義將其說明(使用者可見的外部介面)與實現(使用者不可見的內部實現)顯式地分開,其內部實現按其具體定義的作用域提供保護。類是封裝的最基本單位。封裝防止了程式相互依賴性而帶來的變動影響。在類中定義的接收對方訊息的方法稱為類的介面。
4)多型(覆蓋):多型性是指同名的方法可在不同的類中具有不同的運動規律。在父類演繹為子類時,類的運動規律也同樣可以演繹,演繹使子類的同名運動規律或運動形式更具體,甚至子類可以有不同於父類的運動規律或運動形式。不同的子類可以演繹出不同的運動規律。如動物都會吃,而羊和狼吃的方式和內容都不一樣,如圖3。
5)過載:過載指類的同名方法在給其傳遞不同的引數是可以有不同的運動規律。在物件間相互作用時,即使接收訊息物件採用相同的接收辦法,但訊息內容的詳細程度不同,接收訊息物件內部的運動規律也可能不同。如圖4,老闆指派採購員買東西,當老闆沒有指明買什麼時,採購員可能預設買地瓜;如老闆指明要採購員買大公尺,採購員可能到最近的超市買10斤大公尺;如老闆指明採購員今天晚上到福州東街口買5斤大公尺,那採購員將不得不按老闆指定的時間、地點去購買5斤大公尺。
6、包:哲學認為現實世界中不同物件間的相互聯絡和相互作用構成了各種不同的系統,不同系統間的相互聯絡和相互作用構成了更龐大的系統,進而構成了整個世界。在物件導向概念中把這些系統稱為包。
7、包的介面類:在系統間相互作用時為了蘊藏系統內部的具體實現,系統通過設立介面介面類或物件來與其他系統進行互動;讓其他系統只看到是這個介面介面類或物件,這個類在物件導向中稱為介面類。
而在程式中,類實際上就是資料型別!例如:整數,小數等等。整數也有一組特性和行為。面向過程的語言與面相物件的語言的區別就在於,面向過程的語言不允許程式設計師自己定義資料型別,而只能使用程式中內建的資料型別!而使程式的功能受到一定的限制,為了更好的解決問題,往往我們需要建立解決問題所必需的資料型別!物件導向的程式語言為我們提供了解決方案。
C 類 物件導向初探
我們需要解決這幾個問題 a.c 類物件中的成員變數和成員函式是一起儲存的嗎?如果不是?b.c 編譯器如何管理類和物件,具體的說就是物件呼叫類中的方法,c 編譯器是如何區分哪個具體的物件呼叫哪個成員方法的?我們應該知道c 有兩種成員資料 static,nostatic 三種成員函式 static,no...
c 類和物件初探
1 類 物件 成員變數 成員函式 2 物件導向三大概念 封裝 繼承 多型 3 程式設計實踐 類的定義和物件的定義,物件的使用 求圓形的面積 定義teacher類,列印teacher的資訊 把類的宣告和類的實現分開 1 封裝 encapsulation a 封裝,是物件導向程式設計最基本的特性。把資料...
js 初探類陣列(物件型的)
在學習的過程中,敲寫自己的學習筆記 本文粗略的記錄了類陣列的一些要點。只講物件型的類陣列 類陣列 是物件,但能當物件用,也能當陣列用 類陣列要求 屬性要為索引 數字 屬性,必須要有length屬性,最好加上push方法 例子 var obj 在後台 obj.push d 則 obj push方法的大...