關於java靜態方法裡只能呼叫靜態變數的思考

2021-08-11 13:41:12 字數 502 閱讀 9057

最近一段時間裡面寫了這樣乙個類:

public classdbmanager 

returnhelper

; }

public static voidexecsql(sqlitedatabase db,string sql)}}

}

private staticmysqlitehelper helper

;

一開始上面這行**我並沒有加static修飾,然後工具就報錯了。
下面仔細分析一下原因:靜態變數和靜態方法屬於整個類的共享,不管這個類有沒有例項化出物件均可以呼叫。
而非靜態變數的引用必須先初始化物件。
"".equals(sql)
另外,上面一行**這樣寫可以避免空指標異常。

JAVA中關於主方法呼叫非靜態方法的問題

1 已知 如下 public class test 請問哪個語句是正確的 a 輸出為null b 輸出為0 c 編譯時出錯 d 執行時出錯 答 c 因為a的修飾符不是static,所以在main 方法執行system.out.print a 6 時,陣列a還沒有被初始化,也就導致了編譯出錯。把a的修...

java靜態方法不能呼叫非靜態方法的原因

靜態方法是屬於類的,即靜態方法是隨著類的載入而載入的,在載入類時,程式就會為靜態方法分配記憶體,而非靜態方法是屬於物件的,物件是在類載入之後建立的,也就是說靜態方法先於物件存在,當你建立乙個物件時,程式為其在堆中分配記憶體,一般是通過this指標來指向該物件。靜態方法不依賴於物件的呼叫,它是通過 類...

關於靜態方法和非靜態方法之間的呼叫

1 如果在非靜態方法裡呼叫非靜態方法,則可以用this呼叫。如 this.hao string args 也可以省略this,直接呼叫hao string args 2 如果在靜態方法裡呼叫靜態方法,則可以直接使用 類名.方法名 呼叫。如 若被呼叫的靜態方法m1在類hao1裡,則呼叫方法是 1 靜態...