何靜芳 廊坊師範學院資訊科技提高班十三期
阿新 • • 發佈:2018-12-12
變數分為區域性變數和全域性變數
區域性變數又可稱之為內部變數,由某物件或某個函式所建立的變數通常都是區域性變數,只能被內部引用,而無法被其他物件或函式引用。
全域性變數既可以是某物件函式建立,也可以是在本程式任何地方建立。全域性變數可以被本程式所有物件或函式引用。
在現代的面嚮物件語言如Java,C++,C#,Ruby中,由於變數都是封裝在類裡面的,對別的類不可見,所以已經幾乎完全拋棄了全域性變數的概念。然而,可以通過把一個類定義為public static,把類成員變數也定義為public static,使該變數在記憶體中佔用固定、唯一的一塊空間,來實現全域性變數的功能。
對比:
存在:區域性變數是相對於全域性變數而言的。
定義:在子程式中定義的變數稱為區域性變數,在程式一開始定義的變數稱為全域性變數。
作用域:區域性變數作用域是定義該變數的子程式,全域性變數作用域是整個程式。
關於重名問題:
在C語言等面向過程的語言中,區域性變數和全域性變數重名,但是區域性變數會遮蔽全域性變數。在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。
在Java等面嚮物件語言中,也可能出現多個區域性變數重名的情況。當一個方法的形式引數與類成員名字相同,,這是,形式引數會把成員遮蔽,如果訪問類成員,應該用this關鍵字。