一、static的用途
1、爲什麼要用static修飾【靜態變量】?
首先,是公共性,定義一次,大家都可以用。Static變量是在類的第一行聲明變量,並不在方法或函數裏,也不是放在main裏,因爲,這樣,它才能被所有的方法和函數調用,一般用於修飾類的屬性和方法。
舉例:計數用(獲取用戶的PV訪問量),比如:你打開一個APP,系統可以計算並記錄你訪問每一個頁面的次數。一進入系統,就可以用Static聲明變量,比如:public static int m_click=0; 每訪問一個頁面,在頁面的代碼中讓這個變量加1。
其次,是減少變量的重複定義,另外,調用也比較方便,不需要再定義和聲明。
最後,列出了其他文章關於static的用法:
- 修飾變量,把它變成類的成員,大家可以共享使用。
- 修飾方法,可以直接用"類.方法名()”來調用。
- 修飾代碼塊,把多個類成員放在一起初始化,注意:每次用NEW聲明對象時,就自動執行,但只會執行一次。
- 靜態導包,把類的方法直接導入到當前類裏,可直接用“方法名()”調用類。
package HELLO;
public class helloword {
public static void main(String[] args) {
bian uuu=new bian();
System.out.println("聲明再調用,麻煩而且還多佔用內存:"+uuu.m);
System.out.println("直接調用顯示i的值:"+bian.m);
}
}
二、用static修飾【靜態變量】
主要用於一個類(.java文件內)中的應用,一般在第一行。其實,剛開始,我一直有一個疑問,那不加static不是也能定義變量嗎?爲什麼要加?後來測試發下,如果不加static,在static的靜態方法或函數中是不能調用的。你看一看下面的例子就知道了。
package HELLO;
public class helloword {
// 注意:用 static都 是在類的最前面,這樣可以被下面的方法和函數調用,造成不要放在方法裏。
static int i=0; // static靜態變量
public int u=0; // 不帶static的變量
void shuxue() // 在這個方法中可以調用i,也可以調用u,沒毛病。
{
i++;
u++;
System.out.print("小類!"+i);
}
// 注意,main()前面有static,但是他不能調用沒有加static的變量u,但可以調用i,
public static void main(String[] args) {
i++; // 調用加了static的i沒毛病。
// u++; 但是u不行,會報錯的。
System.out.print("顯示i的值:"+i);
}
}
三、用static修飾【靜態方法】
1、實例,直接調用靜態方法
package Book;
public class book {
public static void print() // 顯示內容
{
System.out.println("水滸傳:66元");
}
public static void main(String[] args)
{
book.print(); // 直接調用,在其他類中也是直接調用的。
}
}
四、用static修飾【代碼塊】
package Book;
public class book {
// ================== 靜態代碼塊
static
{
System.out.println("類初始化塊");
int age = 20;
}
public static void print() // 顯示內容
{
System.out.println("水滸傳:66元");
}
public static void main(String[] args)
{
book m_book1= new book(); // 只要對象化類,就自動執行static的代碼塊。
book m_book2= new book(); // 但是,只執行一次。
}
}