php和java中靜態變數static

巴扎黑
發布: 2016-11-23 15:34:39
原創
990 人瀏覽過

因為靜態成員是在類別第一次載入的時候就創建的,所以在類別的外部不需要物件而使用類別名稱就可以存取的到靜態的成員;靜態成員被這個類別的每個實例物件所共享,那麼我們php語言使用物件可不可以存取類別中的靜態成員?

靜態的成員不是在每個物件內部存在的,但是每個物件都可以共享,所以我們如果使用物件存取成員的話就會出現沒有這個屬性定義,使用物件存取不到靜態成員的,在其它的在物件導向的語言中, 

Java是可以使用物件的方式存取靜態成員的 

類別裡面的靜態方法只能存取類別的靜態的屬性,在類別裡面的靜態方法是不能存取類別的非靜態成員的,原因很簡單,我們要想在本類別的方法中存取本類別的其它成員,我們需要使用$this這個引用,而$this這個引用指針是代表調用此方法的對象,我們說了靜態的方法是不用物件呼叫的,而是使用類別名稱來訪問,所以根本就沒有物件存在,也就沒有$this這個引用了,沒有了$this這個引用就不能訪問類別裡面的非靜態成員,又因為類別裡面的靜態成員是可以不用物件來存取的,所以類別裡面的靜態方法只能存取類別的靜態的屬性,即然$this不存在,在靜態方法中訪其它靜態成員我們使用的是一個特殊的類別」self ”; self和$this相似,只不過self是代表這個靜態方法所在的類別。所以在靜態方法裡,可以使用這個方法所在的類別的“類別名稱“,也可以使用“self“來訪問其它靜態成員,如果沒有特殊情況的話,我們通常使用後者,即”self::成員屬性」的方式。 

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!