1. 程式人生 > >無法從靜態上下文中引用非靜態方法

無法從靜態上下文中引用非靜態方法

用static修飾的方法稱為靜態方法,修飾變數則為靜態變數,又分別叫做類方法或者類變數。
靜態方法中不能直接呼叫非靜態方法。因為非靜態方法不是獨立存在的,它是依附於物件存在——即只有申明瞭物件,才能通過物件呼叫。而靜態方法則可以直接通過類名呼叫,而不需要申明物件。因此直接引用非靜態方法就會出錯。
比如常見的main方法都是靜態的,必須由static修飾,因此在main方法裡呼叫類的其他非靜態方法,都是需要先申明物件,才能用。否則就會出現引用非靜態方法的錯誤。
要解決這個問題,可以去除一般方法的static關鍵字(如果是main方法,則不能去掉static)。另外一種方法就是把需要引用的方法也設定成靜態方法。