1. 程式人生 > >JAVA static關鍵字

JAVA static關鍵字

static關鍵字的四種用法

1.static變數

       在類中定義變數的時候,加上static後可在同包不同類中通過類名.變數名直接呼叫

       定義:修飾符  static  資料型別  變數名;

       呼叫:類名.變數名

       static變數又稱靜態變數。靜態變數在記憶體中只有一個,所有的物件都可以呼叫;而非靜態變數在建立物件時就被建立,各個物件的非靜態變數互不影響。

       static成員變數的初始化順序按照定義的順序進行初始化。

       注意:static不允許用來修飾區域性變數。

2.static方法

       static方法又稱靜態方法。靜態方法不通過物件就可以進行訪問。

public class Main {
	
	public static void main(String [] args) {
		//直接呼叫,未建立物件
		Main.play();
		play();
	}
	
	public static void play() {
		System.out.println("<<<<");
	}

}

       靜態方法不依賴與任何物件,沒有物件就沒有this,所以沒有this.靜態方法。

       在靜態方法中不能訪問類的非靜態成員變數和非靜態成員方法,因為非靜態成員方法和變數是依賴於具體的物件才能呼叫。

       注意:在靜態方法中不能訪問非靜態成員方法和非靜態成員變數,但在非靜態方法中可以訪問靜態成員方法和變數。

       想要在不建立物件的情況下呼叫某個方法,可以將這個方法設定為static方法。最常見的static方法是main方法(主函式)。

3.static程式碼塊(靜態塊)

       static塊可以置於類中的任何地方,類中可以有多個靜態塊。在類被初次載入的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。

       static塊可以用來優化程式效能:只會在類載入的時候執行一次。

       普通方法:每次呼叫都會建立新的物件

public void chat() {
		String name1 = "名字1";
		String name2 = "名字2";
		System.out.println(name1+"和"+name2+"在聊天");
	}

       靜態塊:只需要在初始化的時候建立一次物件

    private static String name1,name2;
	
	static {
		name1 = "名字1";
		name2 = "名字2";
		System.out.println(name1+"和"+name2+"在聊天");
	}
	
	public void chat() {
		System.out.println(name1+"和"+name2+"在聊天");
	}

4.靜態匯入

       匯入類:

import packageName className; //匯入指定的類
import packageName.*; //匯入包中所有的類

       靜態匯入:

import static packageName.className.methonName; //匯入某個特定的靜態方法
import static packageName.className; //匯入類中的所有靜態成員

       匯入後,可以在當前類中直接用方法名呼叫靜態方法,不必再用className.methonName來訪問。