1. 程式人生 > >java學習筆記(二)static方法以及static程式碼塊

java學習筆記(二)static方法以及static程式碼塊

一:static方法

1.靜態方法中可以直接呼叫同類中的靜態成員,
但不能直接呼叫非靜態成員。
如果希望在靜態方法中呼叫非靜態變數,可以通過建立類的物件,
然後通過物件來訪問非靜態變數
2.
在普通成員方法中,則可以直接訪問同類的非靜態變數和靜態變數,
3.靜態方法中不能直接呼叫非靜態方法,
需要通過物件來訪問非靜態方法.

程式碼:


public class HelloWorld {
   
    static int score1 = 86;
   
	static int score2 = 92; 

  
	public static int sum() { 
        return score1+score2;
	}

	public static void main(String[] args) {
        
       
        
		int allScore = sum();
        
		System.out.println("AllPermission" + allScore);
	}
}

 

二.static程式碼塊:

在類的宣告中,可以包含多個初始化塊,當建立類的例項時,就會依次執行這些程式碼塊。
如果使用 static 修飾初始化塊,就稱為靜態初始化塊。

需要特別注意:靜態初始化塊只在類載入時執行,且只會執行一次,同時靜態初始化塊只能給靜態變數賦值,不能初始化普通的成員變數。

public class HelloWorld {
    
    String name; // 宣告變數name
	String sex; // 宣告變數sex
	static int age;// 宣告靜態變數age
    
    // 構造方法
	public HelloWorld() { 
		System.out.println("通過構造方法初始化name");
		name = "tom";
	}
    
    // 初始化塊
	{ 
		System.out.println("通過初始化塊初始化sex");
		sex = "男";
	}
    
    // 靜態初始化塊
	        static{ 
		System.out.println("通過靜態初始化塊初始化age");
		age = 20;
	}
    
	public void show() {
		System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
	}
    
	public static void main(String[] args) {
        
        // 建立物件
		HelloWorld hello = new HelloWorld();
		// 呼叫物件的show方法
        hello.show();
        
	}
}