Java中static關鍵字的作用及用法
阿新 • • 發佈:2022-05-08
1.static的概述
在Java中static是靜態修飾符,表示靜態的意思,用來修飾變數和方法
2.static的作用
- 隨著類的載入而載入
-
//比如說我建立一個類,裡面有一個靜態方法,一個非靜態 public class Animal { public void Dog() { } public static void Cat() { } //然後在main方法中分別使用這兩個類,對非靜態和靜態方法的引用方式是不同的,如下:public static void main(String[] args) { Animal animal
Cat(); //類一出現,用static修飾的變數和方法隨著類一塊就出現了,可以在直接用 }
-
- 優先於物件存在
- static修飾的東西被類的所有物件共享
-
public class Animal { //姓名設定初始值並且是靜態的 public static String name="小貓咪"; public String getname() { return
-
- 可以通過類名呼叫
這裡注意!!!!
- 在靜態方法中不可以使用this關鍵字
- 靜態方法只能訪問靜態的成員變數和靜態的成員方法
3.靜態變數和成員變數的區別
這裡我們來解釋一下
-
-
靜態變數屬於類,所以也稱為類變數
-
成員變數屬於物件,所以也稱為例項變數(物件變數)
-
-
記憶體中位置不同
-
靜態變數儲存於方法區的靜態區
-
成員變數儲存於堆記憶體
-
-
記憶體出現的時間不同
-
靜態變數隨著類的載入而載入,隨著類的消失而消失
-
成員變數隨著物件的建立而存在,隨著物件的消失而消失
-
-
呼叫不同
-
靜態變數可以通過類名呼叫,也可以通過物件呼叫
-
成員變數只能通過物件名呼叫
4.使用案例
- 建立工具方法
- 只需載入一次或者執行一次
5.程式碼塊
- 定義:在Java中,使用{}括起來的程式碼被稱為程式碼塊,根據位置和宣告的不同,可以分為區域性程式碼塊,構造程式碼塊,靜態程式碼塊,同步程式碼塊。
- (思考程式碼塊的執行順序哦)
public class Student { static { System.out.println("Student 靜態程式碼塊"); } { System.out.println("Student 程式碼塊"); } public Student() { System.out.println("Student 構造方法"); } } public class StudentTest { static { System.out.println("北大吳彥祖"); } public static void main(String[] args) { System.out.println("我是main方法"); Student s1 = new Student(); Student s2 = new student(); } }