靜態的方法不能存取“this”所引用的對象。本類中構造函數的引用一定且只能用this 靜態的static的引用用類名,非靜態的引用用對象靜態方法是跟實例無關的方法,只跟類有關,在類沒有實例的時候就可以使用其靜態方法。靜態方法不能操作非靜態變量,因為非靜態變量是跟實例相關的,每個實例的非靜態變量都不同,而類的靜態變量是所有實例共有的。this是跟實例相關的,它就是當前調用該方法的實例的引用,這跟靜態方法矛盾。而一般的方法可以操作靜態變量,雖然允許這樣做,但是不推薦。一般的方法必須由類的實例的引用調用,在沒有實例的時候是沒法調用的。靜態方法也叫類方法。在類被加載的時候被初始化,可以通過類名和對象名進行調用,在類內部可以直接調用。僅該方法不需要實例化對象,即可調用。在靜態的方法中不能以任何形式引用this,因為this默認的對象引用,靜態方法被調用時,this所引用的對象并沒有產生,this無所指向.就是說一個靜態的方法不能存在this去指向變量等等,如public static void fun() { this.a = b; //不能存在this,只能是a = b 而且這個a和b一定要是靜態的} (轉自黑馬論壇版塊)
新聞熱點
疑難解答