• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java教程
    Java標識符與關鍵字
    Java變量
    Java數據類型
    Java運算符
    Java控制語句
    Java方法
    Java面向對象
    Java對象的創建和使用
    Java封裝
    Java中static和this
    Java繼承
    Java方法覆蓋和多態
    Java super
    Java基礎練習題

    Java變量的作用域

     

     

    所謂變量的作用域就是變量的有效范圍。通過后面內容的學習大家會更加明白,實際上局部變量、實例變量、靜態變量它們存儲在Java虛擬機的不同內存區域上,所以變量是有作用域的。

     

    關于變量的有效范圍,在這里我給大家總結了一個口訣:出了大括號就不認識了。雖然這句話屬于大白話,但很實用。我們來測試一下:

     

    public class VarTest05 {
    	//后面會學習為什么這里的變量定義為靜態變量
    	static int i = 1000;
    	public static void main(String[] args) {
    		System.out.println("k = " + k);
    		int k = 100;
    		System.out.println("k = " + k);
    		int i = 2000;
    		System.out.println("i = " + i);
    	}
    	//后面會學習方法怎么定義
    	public static void m1(){
    		System.out.println("k = " + k);
    	}
    	public static void m2(){
    		System.out.println("i = " + i);
    	}
    }

     

    編譯報錯了:

     

    圖3-6:變量的作用域

     

     

    通過以上的測試我們發現:

     

    ● 方法體當中的代碼是有執行順序的,遵循自上而下的順序依次逐行執行,變量在沒有聲明的時候是不能訪問的,需要先聲明,接下來才能訪問。

     

    ● 另外在main方法中聲明的變量k有效范圍是main方法,只能在main方法中使用,出了大括號就不認識了,在m1方法中是無法訪問的。

     

    ● 在類體當中聲明的變量i作用域是整個類體,所以在m2方法中是可以使用的。

     

     

    修改以上代碼并運行:

     

    public class VarTest05 {
    	//后面會學習為什么這里的變量這個時候定義為靜態變量
    	static int i = 1000;
    	public static void main(String[] args) {
    		//System.out.println("k = " + k);
    		int k = 100;
    		System.out.println("k = " + k);
    		int i = 2000;
    		System.out.println("i = " + i);
    	}
    	//后面會學習方法怎么定義
    	public static void m1(){
    		//System.out.println("k = " + k);
    	}
    	public static void m2(){
    		System.out.println("i = " + i);
    	}
    }

     

    運行結果如下圖所示:

     

    圖3-7:變量作用域

     

    通過以上程序的運行結果得知,java是遵循就近原則的,在類體當中有i變量,在main方法中聲明了i變量,那么在main方法中一定訪問離自己最近的變量,也就是就近取材,這就是就近原則,幾乎所有的編程語言都是這樣的。

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏