原文:(轉)為什么不能從靜態的方法里面調用非靜態方法,或變量and類加載機制

. 程序最終都將在內存中執行,變量只有在內存中占有一席之地時才能被訪問。 類的靜態成員 變量和方法 屬於類本身,在類加載的時候就會分配內存,可以通過類名直接去訪問 非靜態成員 變量和方法 屬於類的對象,所以只有在類的對象產生 創建類的實例 時才會分配內存,然后通過類的對象 實例 去訪問。 在一個類的靜態成員中去訪問其非靜態成員之所以會出錯是因為在類的非靜態成員不存在的時候類的靜態成員就已經存在了 ...

2017-06-20 10:55 0 4596 推薦指數:

查看詳情

靜態方法不能調用靜態變量靜態方法可以引用靜態變量

為什么靜態方法不能調用靜態變量靜態方法可以引用靜態變量? 理由很簡單,靜態方法不屬於對象,是屬於類的,是不需要實例化的,而非靜態變量是屬於對象的,需要先實例化。在一個類的靜態成員中去訪問其靜態成員之所以會出錯是因為在類的靜態成員不存在的時候類的靜態成員就已經存在了,訪問一個內存中不存在 ...

Tue Feb 18 05:59:00 CST 2020 0 3293
PHP靜態調用靜態方法

靜態調用靜態方法!!這在java,c#中是不可想象的,也是絕對不行的。這樣的錯誤在這些語言中會在編譯階段就被指出錯誤的。但是對於php這樣的動態語言呢?首先這個是語法沒有錯誤的,php –l 找不出錯誤來的。如果運行呢? 先看一個例子 <?php class myClass ...

Thu Sep 13 06:53:00 CST 2012 5 14867
Java中靜態方法靜態方法調用

Java中靜態方法靜態方法調用是有區別的。 ①靜態方法可以直接調用,如下冒泡排序,只需將冒泡方法設為static方法即可直接調用。 ② 靜態方法調用,需要使用對象來調用。還是冒泡排序示例,如下 ...

Sun Feb 24 01:07:00 CST 2019 0 8275
c#靜態方法怎么調用靜態方法

一般情況F()不能調用G(),但是你可以增加一個靜態成員class A{private static A instance=new A();public static void F()//靜態{instance.G();//正確}public void G()//靜態{} } ...

Thu Jan 14 17:38:00 CST 2016 0 1945
靜態方法調用靜態方法

有時候面試的時候,面試官會問靜態方法里能不能調用靜態方法,這時候呢,你的回答是什么呢? 雖然不能直接調用,但是可以間接的調用,可以通過將一個對象的引用傳入靜態方法中,再去調用該對象的靜態方法靜態方法通過用傳進來的對象引用調用靜態方法,從而達到靜態方法調用靜態方法。    ...

Sun Jan 24 02:18:00 CST 2016 1 3927
靜態方法靜態方法調用詳解

1、靜態方法不能直接調用靜態 2、靜態方法可以直接調用靜態方法 原因: 靜態方法和類一起加載靜態方法只有在創建對象時才會加載。所以才有了靜態方法不能直接調用靜態(因為靜態方法加載時類還沒有初始化也就還沒有靜態方法),靜態方法可以直接調用靜態方法(因為靜態方法加載時 ...

Wed Apr 06 16:44:00 CST 2022 0 1805
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM