php--oop筆記(一)

//面向對象的模型概念:在PHP5裏面它作爲類(class),定義一個模型使用關鍵字class
/*
類的定義涉及以下幾點:
1.類的成員(屬性)【人的屬性:姓名,年齡】
2.類屬性(變量)的定義:使用關鍵字var
3.類的常量,永遠不會發生改變的屬性【人的常量:血統,性別】
4.如何訪問成員
a)類的實例化(new)
b)類指針的使用(符號:->)
c)訪問類的常量(常量指針符號 類名稱::常量名)


定義類的方法:使用關鍵字function
1)類的方法,代表一種行爲【人的行爲:喫,走,說】
2)類的方法如何訪問(符號:->)
3)行爲是多樣的,定義行爲的多樣可以使用參數function say(參數)
4)行爲的返回值:
注意事項:在php5裏面有一個奇葩問題(odd problem)echo & echo ,這個奇葩問題首先有一個優先級別,如果是類方法它會由於其他一切執行,如果是函數方法,它會低於類方法,但高於echo本身,解決這個問題最好的方式就是使用return關鍵字


成員屬性的訪問權限:
1)公開的(關鍵字:public,var)   ---- 最高級別的(可以被繼承,可以被隨便訪問)
2)私有的(關鍵字:private) --- 最低級別(不可以被繼承,不可以在外部訪問)
3)受保護的(關鍵字:protected) ---中等級別(可以被繼承,不可以在外部訪問)


方法的訪問權限
1)公開的(關鍵字:public,這是默認的方式,可以省略不寫)   ---- 最高級別的(可以被繼承,可以被隨便訪問)
2)私有的(關鍵字:private) --- 最低級別(不可以被繼承,不可以在外部訪問)
3)受保護的(關鍵字:protected) ---中等級別(可以被繼承,不可以在外部訪問)


靜態屬性(靜態變量):作用相同於類常量,可以改變(但也許很長時間都不改變,甚至永遠不改變),理解靜態爲靜觀其變的態,專業術語:靜態變量術語類本身
比如:我是一箇中國人,就算我娶了一個香港的妻子,我生出來的孩子,他的膚色是永遠不會改變。但膚色真的永遠不可以改變嗎?因爲可以曬黑,還有一種可能,假設我的兒子將來娶了一個俄羅斯的女人,生出來的孫子就不可能是中國人的黃皮膚,頭髮有可能不是黑頭髮
聲明靜態的關鍵字(static):
1)如何訪問靜態的變量(類名稱::$變量名)
2)香港的dd面試題:類常量與靜態變量有何區別?
答案:(1)靜態變量是可以改變,靜態常量是不可以改變(2)語法規定常量是不可以在外部賦值的,常量在外部只能被訪問(3)常量在類和接口裏面定義的時候必須初始化


靜態的方法:作用和麪對的問題與靜態變量是一樣,只不過一個是變量一個是行爲
1)如何訪問(類名稱::方法名())


xx面試題:靜態變量和靜態方法,類常量如何在類內部進行訪問?
答案:(1)訪問靜態變量可以使用(可以用類名::$變量名也可以用self::$變量名)
        (2)訪問靜態的方法可以使用(可以用類名::方法名也可以用self::方法名)
(3)訪問類常量可以使用(可以用類名::常量名也可以使用self::常量名)
(4)self只能用於內部訪問靜態變量或方法,常量,外部只能使用類名稱


xx面試:如何在外部訪問內部聲明靜態屬性?
答案:定義一個公開的方法,方法內部訪問私有的變量


靜態變量和靜態方法的權限
1)公開的(關鍵字:public,這是默認的方式,可以省略不寫)   ---- 最高級別的(可以被繼承,可以被隨便訪問)
2)私有的(關鍵字:private) --- 最低級別(不可以被繼承,不可以在外部訪問)
3)受保護的(關鍵字:protected) ---中等級別(可以被繼承,不可以在外部訪問)

*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章