第十二節 static關鍵字,靜態變量,靜態方法,靜態代碼塊,靜態導入

話不多說,直接上代碼



package com.ufgov.controller;


import static java.lang.System.out; 
import static java.lang.Math.*;
import static com.ufgov.controller.base02.name;
/**
 * static 關鍵字作用就是在不用創建對象的情況下進行(方法/變量)的調用
 * static 不依賴對象進行訪問,只要類被加載了,就可直接使用
 * static 用途:1,修飾成員變量
 *             2,修飾方法
 *             3,靜態代碼塊
 *             4,靜態導入
 */
public class base01 {

public static void main(String[] args) {
//靜態變量直接調用
System.out.println(base02.name);//輸出:xiaohei


//靜態方法直接調用
System.out.println(base02.getName(base02.name));//輸出:xiaohei1

//在添加靜態代碼塊後執行main方法,打印出
/**
* 靜態代碼塊執行
* xiaohei
* xiaohei1
*/
//靜態代碼塊在類加載的時候就執行,所以更多的是用來優化程序,或者是加載資源


/**
* import static 包名.類名.靜態成員變量;
* import static 包名.類名.靜態成員函數;

* import static java.lang.System.out; 
* import static java.lang.Math.*;

* 靜態導入就是把包中
*/
out.println(name);                                         //xiaohei      name就是導入的靜態變量
System.out.println("靜態導入"+round(100));//靜態導入100     round是導入的靜態方法 
}



}


class base02{
/**
* static修飾的變量爲靜態變量,靜態變量與成員變量的區別爲:
* 靜態變量在內存中只存在一個,所有被所有對象共享,在類加載的時候進行初始化
* 成員變量在每次創建對象時都含有一個此成員變量的副本,互不影響
*/
public static String name="xiaohei";

public String address;

/**
* 靜態方法不依賴於任何對象就可以進行訪問,因此對於靜態方法來說,是沒有this的,(this代表的是當前的類對象)
*/
public static String getName(String name){
return name+1;



/**
* 此段代碼報錯,因爲靜態方法中引用了非靜態的成員變量
* 靜態方法調用直接object.method調用,不用創建對象,既然沒有創建對象,那麼沒有類的成員變量address,所以報錯
*/
/*public static String getAddress(String address){
return this.address+2;
} */

static{
System.out.println("靜態代碼塊執行");
}


}


//https://www.cnblogs.com/dolphin0520/p/3799052.html  也可參照此篇博文加深理解



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章