1. 程式人生 > >static關鍵字注意事項

static關鍵字注意事項

/*
	static關鍵字注意事項
		A:在靜態方法中是沒有this關鍵字的
			如何理解呢?
				靜態是隨著類的載入而載入,this是隨著物件的建立而存在。
				靜態比物件先存在。
		B:靜態方法只能訪問靜態的成員變數和靜態的成員方法
				靜態方法:
					成員變數:只能訪問靜態變數
					成員方法:只能訪問靜態成員方法
				非靜態方法:
					成員變數:可以是靜態的,也可以是非靜態的
					成員方法:可是是靜態的成員方法,也可以是非靜態的成員方法。
			簡單記:
				靜態只能訪問靜態。
*/
class Teacher {
	public int num = 10;
	public static int num2 = 20;
	
	public void show() {
		System.out.println(num); //隱含的告訴你訪問的是成員變數
		System.out.println(this.num); //明確的告訴你訪問的是成員變數
		System.out.println(num2);
		
		//function();
		//function2();
	}
	
	public static void method() {
		//無法從靜態上下文中引用非靜態 變數 num
		//System.out.println(num);
		System.out.println(num2);
		
		//無法從靜態上下文中引用非靜態 方法 function()
		//function();
		function2();
	}
	
	public void function() {
	
	}
	
	public static void function2() {
	
	}
}

class TeacherDemo {
	public static void main(String[] args) {
		//建立物件
		Teacher t = new Teacher();
		t.show();
		System.out.println("------------");
		t.method();
	}
}