oop1
1、面向過程編程方法,是將程序看成一個個步驟;而面向對象編程(OOP)方法是將程序看成一個個具有不同功能的部件在協同工作,類就是描述這些部件的數據結構和行為方式,而對象就是這些具體的部件。?
2、對象的定義:一個對象有自己的狀態,行為和唯一的標識;所有相同類型的對象所具有的結構和行為在它們共同的類中定義
3、對象的狀態: 包括這個對象已有的屬性 (小明的身高,體重,性別等)
4、行為:是指一個對象如何影響外界及被外界影響,表現為對象自身狀態的改變和信息的傳遞 ( 小明,他可以唱歌給大家聽,這是他的行為,他會學習新知識,等)?
5、標識:是指一個對象所具有的區別于其他對象的屬性(不是變量名,而是內存地址)
6、一個類就是一群對象所共有的結構和行為。而一個對象對外部公開的屬性和方法被稱為對外部的接口
7、屬性和方法: 包括實例屬性和靜態屬性, 也即實例方法和靜態方法 ,
實例屬性是用變量來表示的,
實例方法描述這個實例有哪些行為,方法可分為外部可訪問和外部不可訪問,其中外部不可訪問的方法,用來描述類中的各個成員互相協作的內部邏輯,而外部可訪問的方法是這個對象可以對外部提供的服務
8、靜態屬性:存儲所有對象共同的狀態(屬性),和任何的實例(對象)沒有關聯。每個對象的實例屬性可以各不相同,但所有同類對象的靜態屬性值是要同的,改變一個類的靜成屬性,將會影響到該類的所有實例,靜態屬性是屬于類的,每個實例中都有可能改變靜態變量的值,
9、靜態方法:也是獨立于所有實例的。靜態方法僅和每個類綁定,不和類的任何具體實例(對象)綁定,靜態屬性和靜態方法都應該通過類訪問
10、類的實例化? $對象名=new 類名[()];???? 這里要把后面的類名看成是構造函數,而不應該把它理解為類名?
11、構造函數(用于構造對象的函數):對象的創建和刪除是所有OOP語言關注的重要課程,創建對象時,會自動調用構造函數(方法),我們在使用一個對象前,往往需要初始化這個新生的對象狀態,構造方法的作用就是在實例(對象)新生時,自動給它設置一些狀態(屬性)
12、$this 關鍵字,持有對當前對象(實例)的引用 ,注意 $this關鍵字,只限于實例屬性和實例方法,靜態屬性和靜態方法只應該用 類名::屬生|方法 的形式調用
,在類中也可以使用 self::$靜態變量 的形式調用靜態變量?
13、封裝 :又叫隱藏實現,就是將具體實現的細節隱藏起來,只將必要的功能接口對外開放,用戶只知道這些代碼單元可以提供哪些服務,但這知道這些代碼單元中具體的邏輯如何
14、private\protected\public這個關鍵字,僅與封裝有關,和繼承沒有半點關系,用private限定的成員,依然會被繼承,這些關鍵字只是限定了某些狀態(屬性)或者行為(方法)是否可以被外部訪問到。
15、靜態屬性的訪問: 類名::$屬性名???? 注意 有 “$"
16、靜態方法的訪問: 類名::方法名()??
17、常量:
定義方式: const 大寫名稱=值;
訪問方式: 類名::常量名?? 沒有 $
常量和靜態屬性很象,也是屬于類的,不屬于某個實例
18、抽象類
主要用來限定子類的規范或者說是格式,抽象類至少會包含一個抽象方法,即沒有方法體的方法,子類中必須完全現實所有的抽象方法才能實例化,子類中抽象方法的封裝訪問限定詞不能比父類限定更嚴格?
轉載于:https://blog.51cto.com/hwp2011/707639
總結
- 上一篇: Net与Flex入门
- 下一篇: 网络工程师要如何选择?