1. 程式人生 > >面向對象的靜態屬性和靜態方法

面向對象的靜態屬性和靜態方法

ima alt 方法名 如果 func In public fun 調用

一,靜態屬性

靜態屬性時該類的所有對象共享的變量,任何一個該類的對象去訪問它時,取到的都是相同的值,同樣任何一個該類的對象去修改它時,修改的也是同一個變量

技術分享圖片

定義靜態屬性:訪問修飾符 static 靜態屬性名

靜態屬性的訪問:

1.在類的內部

self::靜態屬性名

類名::靜態屬性名

2.類的外部

如果要在類的外部訪問靜態屬性,靜態屬性需要時public,否則不能直接訪問

訪問形式是: 類名::靜態屬性名

$this和self的區別

1.使用的方式不同

$this->

self::

2.self是類範疇(指向類),$this是對象實例(指向對象實例)

靜態屬性的使用註意事項

1.如果在類的內部使用靜態屬性,有兩種形式:self::靜態屬性名 類名::靜態屬性名

2.在類的外部訪問靜態屬性 類名::靜態屬性名 要求靜態屬性是public

3.靜態屬性在定義時,可以直接初始化(賦值)

二.靜態方法

靜態方法是專門用來操作靜態屬性的

寫法:訪問修飾符 static function 函數名(形參){}

1,在類外部調用靜態方法有以下幾種形式

類名::靜態方法名

對象名->靜態方法名

對象名::靜態方法名(不推薦使用)

2.在類的內部調用靜態方法

self::方法名

類名::方法名(不推薦使用,因為當你的類名發生改變時,這裏也要發生修改)

$this->方法名(不推薦使用)

3.靜態方法只能訪問靜態屬性

4.普通的成員方法可以訪問靜態屬性

5.如果靜態方法時protected或private則不能在類外部使用

面向對象的靜態屬性和靜態方法