梳理總結Java static關鍵字的方法作用
概述
關於 static 關鍵字的使用,它可以用來修飾的成員變量和成員方法,被修飾的成員是屬於類的,而不是單單是屬 於某個對象的。也就是說,既然屬於類,就可以不靠創建對象來調用瞭。
定義和使用格式
類變量
當 static 修飾成員變量時,該變量稱為類變量。該類的每個對象都共享同一個類變量的值。任何對象都可以更改 該類變量的值,但也可以在不創建該類的對象的情況下對類變量進行操作。 類變量:使用 static關鍵字修飾的成員變量。 定義格式:
static 數據類型 變量名;
舉例:
static int id;
靜態方法
當static 修飾成員方法時,該方法稱為類方法 。靜態方法在聲明中有static ,建議使用類名來調用,而不需要 創建類的對象。調用方式非常簡單。 類方法:使用 static關鍵字修飾的成員方法,習慣稱為靜態方法。 定義格式:
修飾符 static 返回值類型 方法名 (參數列表){ // 執行語句 }
舉例:在Student類中定義靜態方法
public static void showNum() { System.out.println("num:" + numberOfStudent); }
靜態方法調用的註意事項:
- 靜態方法可以直接訪問類變量和靜態方法。
- 靜態方法不能直接訪問普通成員變量或成員方法。反之,成員方法可以直接訪問類變量或靜態方法。
- 靜態方法中,不能使用this關鍵字。
小貼士:靜態方法隻能訪問靜態成員。
public class MyClass { int num; // 成員變量 static int numStatic; // 靜態變量 // 成員方法 public void method() { System.out.println("這是一個成員方法。"); // 成員方法可以訪問成員變量 System.out.println(num); // 成員方法可以訪問靜態變量 System.out.println(numStatic); } // 靜態方法 public static void methodStatic() { System.out.println("這是一個靜態方法。"); // 靜態方法可以訪問靜態變量 System.out.println(numStatic); // 靜態不能直接訪問非靜態 // System.out.println(num); // 錯誤寫法! // 靜態方法中不能使用this關鍵字。 // System.out.println(this); // 錯誤寫法! } }
調用格式
被static修飾的成員可以並且建議通過類名直接訪問。雖然也可以通過對象名訪問靜態成員,原因即多個對象均屬 於一個類,共享使用同一個靜態成員,但是不建議,會出現警告信息。
格式:
// 訪問類變量 類名.類變量名; // 調用靜態方法 類名.靜態方法名(參數);
靜態原理圖解
static 修飾的內容:
- 是隨著類的加載而加載的,且隻加載一次。
- 存儲於一塊固定的內存區域(靜態區),所以,可以直接被類名調用。
- 它優先於對象存在,所以,可以被所有對象共享。
靜態代碼塊
靜態代碼塊:定義在成員位置,使用static修飾的代碼塊{ }。 位置:類中方法外。 執行:隨著類的加載而執行且執行一次,優先於main方法和構造方法的執行。
格式:
public class ClassName{ static { // 執行語句 } }
作用:給類變量進行初始化賦值。
用法演示,代碼如下:
public class Game { public static int number; public static ArrayList<String> list; static { // 給類變量賦值 number = 2; list = new ArrayList<String>(); // 添加元素到集合中 list.add("張三"); list.add("李四"); } }
小貼士: static 關鍵字,可以修飾變量、方法和代碼塊。在使用的過程中,其主要目的還是想在不創建對象的情況 下,去調用方法。
到此這篇關於梳理總結Java static關鍵字的方法作用的文章就介紹到這瞭,更多相關Java static 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!