php面向對象中常用的關鍵字有final、static、const
(1)final:
1,final不能修飾成員屬性
2,final只能修飾類和方法
作用:
使用final修飾的類不能被子類繼承
使用final修飾的方法不能被子類去覆蓋
用來限制類不被繼承,方法不能被覆蓋就使用final
(2、)static:
1,使用static可以修飾成員屬性和成員方法,不能修飾類
2,用static修飾的成員屬性,可以被同一個類的所有對象共享
3,靜態的數據是存在內存中的數據段中(初始化靜態段)
4,靜態的數據是在類每一次加載時分配到內存中的,以後再用到類時就直接從數據段中 獲取
5,只要在程序中使用到這個類(有這個類名出現)就是類被加載
注意:靜態的成員都要使用類名去訪問,不用創建對象,不用對象去訪問
類名::靜態成員
如果在類中使用靜態成員,可以使用self代表本類(功能相當於$this)
self::靜態成員
6,靜態方法,不能訪問非靜態的成員,非靜態的方法中,可以訪問靜態成員。
這是因為非靜態的成員,就必須用對象來訪問,訪問內部的成員使用的就是$this,靜態方法不用使用對象來調用,也就沒有對象,$this也就不能代表什麼對象,非靜態的成員還必須使用對象。如果你確定一個方法不使用非靜態的成員,則可以將這個方法聲明為靜態方法(不能創建對象,直接用類名來訪問)
(3、)const:
1,它只能修飾成員屬性
2,類中聲明常量屬性使用const
3,命名的方法與define是一樣的效果
4,訪問方式和static靜態成員屬性是一樣:類名::常量 self::常量
5,常量一定要在聲明時就給初值
6,常量在聲明後不能被重新賦值
一般是為了防止父類的一個方法被重寫。
public和var的作用差不多 因為 var定義的變量如果沒有加protected 或 private則默認為public
php4 中一般是用 var
php5 中就一般是用 public了
現在基本都是使用public來代替var
var是定義變量的;而public是定義property(屬性)和method(方法)的可見性的