靜態方法不能訪問非靜態的實例變量和實例方法。實例方法可以訪問靜態成員和非靜態成員。
1在本來中直接調用靜態方法
2可以通過類名來調用該類的靜態方法
3通過實例調用靜態方法
// 外部類,不能是靜態的 public class OuterClass { // 靜態方法,又稱為類方法,屬於Test類 public static void staticFun() { } // 非靜態方法,又稱為實例方法,屬於Test類的具體實例 public void nonStaticFun() { } // 靜態內部類,靜態類只能是內部類 public static class StaticInnerClass { // 靜態方法,屬於StaticInnerClass類 public static void staticFun() { } // 非靜態方法,屬於StaticInnerClass類的實例 public void nonStaticFun() { } } // 非靜態內部類,不能有靜態方法 public class NonStaticInnerClass { // 非靜態方法,屬於NonStaticInnerClass的實例 public void nonStaticFun() { } } // 測試代碼如下: public static void main(String[] args) { // 對於靜態方法,使用類直接訪問 OuterClass.staticFun(); StaticInnerClass.staticFun(); // 對於非靜態方法,需要使用類的實例訪問 new OuterClass().nonStaticFun(); new StaticInnerClass().nonStaticFun(); // 對於非靜態內部類,必須創建外部類后才能使用 OuterClass outerClass = new OuterClass(); NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass(); nonStaticInnerClass.nonStaticFun(); } }