官术网_书友最值得收藏!

3.3 變量

前面的代碼使用了很多變量,那么究竟變量是什么呢?本節將介紹變量的基本概念,以及如何操作變量。

3.3.1 變量的聲明

變量就是在程序的運行中可以變化的量,變量是程序設計中一個非常重要和關鍵的概念。在Java程序設計中,每個聲明的變量都必須分配一個類型。聲明一個變量時,應該先聲明變量的類型,隨后再聲明變量的名字。下面演示了變量的聲明方式。

01   ///這里salary,age,op都是變量名字
02   ///double,int,boolean是變量的類型
03   double salary;
04   int age;
05   boolean op;

每一行的第一項是變量類型,第二項是變量名。行尾的分號是必需的,這是Java語句的結束符號。如果沒有這個分號,程序不會認為這是一句完整的Java語句。

同一類型的不同變量,可以聲明在一行,也可以聲明在不同行,如果要聲明在同一行中,不同的變量之間用逗號分隔,例如下面的例子。

int studentNumber,people;

3.3.2 變量的含義

在程序設計中,經常會聽到變量這個名詞,到底什么是變量呢?它又有什么意義呢?

在程序運行過程中,空間內的值是變化的,這個內存空間就稱為變量。為了操作方便,給這個空間取名,稱為變量名,內存空間內的值就是變量值。所以,申請了內存空間,變量不一定有值,要想變量有值,就必須要放入值。

例如:“int x”,定義了變量但沒有賦值,即申請了內存空間,但沒有放入值。如果int x=5;說明不但申請了內存空間而且還放入了值,值為5。

3.3.3 變量的分類

變量的分類方式有多種多樣,不可能單純地將變量劃分為幾類,下面將以不同的分類方式來討論變量的分類問題。

1. 從作用范圍來分

根據作用范圍來分,一般將變量分為全局變量和局部變量。從字面上理解很簡單,全局變量就是在程序范圍之內都有效的變量,而局部變量就是在程序中的一部分內有效的變量。

【實例3.9】從專業的角度來解釋,全局變量就是在類的整個范圍之內都有效的變量。而局部變量就是在類中某個方法函數內或某個子類內有效的變量,下面將從實際程序代碼中慢慢地體會。

01   ///a,b都是全局變量
02   ///c是局部變量
03   public class var
04   {
05       int a=10;
06       int b=21;
07       public static void main(String[] args)
08       {
09            var v=new var();
10            System.out.println("這個是全局變量a="+ v.a);
11            v.print();
12       }
13       void print()
14       {
15            int c=20;
16            System.out.println("這個是局部變量c="+ c);
17       }
18   }

【代碼說明】第5~6行定義了兩個變量,它們在main()方法外,第10行調用這個變量。第15行在print()方法內定義了變量c,第16行在當前方法內輸出此變量。

【運行效果】

這個是全局變量a=10
這個是局部變量c=20

【實例3.10】如果在main()中同樣輸出“c”的值,會出現什么樣的結果呢?下面從實際代碼段中仔細體會。

01   public class Math1
02   {
03       public static void main(String[] args)
04       {
05            Math1 v=new Math1();
06            System.out.println("這個是局部變量c="+ v.c);
07       }
08       void print()
09       {
10            int c=20;
11       }
12   }

【運行效果】以上代碼在編譯時,會出現錯誤,就是找不到變量“c”。這說明變量“c”只在方法“print()”中起作用,在方法外就無法再調用。

【代碼說明】從上述代碼中可以看出,如果一個變量在類中定義,那么這個變量就是全局變量,例如下面的代碼段。

01   public class var
02   {
03       int a=10;
04       int b=21;
05   }

這里的變量“a”、“b”都是全局變量,而在類的方法、函數中定義的變量就是局部變量,例如下面的代碼段。

01   public class var
02   {
03       void print()
04       {
05            int c=20;
06       }
07   }

這里的變量“c”就是局部變量。因為它不是在類中直接定義的,而是在類的方法中定義的。

2. 從類型來分

如果從類型來分,可以將變量分成基本類型變量和對象類型變量,而基本類型變量就是前面說的那8種基本數據類型的變量,如整型、浮點型、字符型、布爾型等。

說明

對象類型將在后面的章節中介紹,這里暫時不做具體的說明。

3. 以所屬范圍分

如果按所屬范圍來分,可以將變量分成類變量和成員變量,類變量就是用關鍵字“static”聲明的全局變量,它是屬于類的。而成員變量就是不用“static”聲明的其他實例變量,它是隨對象本身的。

其實類變量就是在類中直接定義的,并且不隨類產生的對象變化而變化。當在一個類中聲明了一個類變量時,無論創造出多少個對象,使用對象引用這個變量,都不會發生變化。成員變量就不同了,它隨著對象不同而變化。即針對同一個類,新創建一個對象,使用此對象引用這個變量,每次引用的值都不一樣。

主站蜘蛛池模板: 汕尾市| 泰安市| 昭觉县| 都江堰市| 临安市| 大竹县| 清苑县| 永康市| 施秉县| 彰化市| 芦溪县| 博白县| 武强县| 望奎县| 炎陵县| 皮山县| 普兰店市| 昔阳县| 星子县| 茌平县| 中山市| 安岳县| 洛扎县| 开阳县| 梅州市| 崇义县| 长兴县| 大名县| 岚皋县| 南雄市| 呼玛县| 静宁县| 静乐县| 华坪县| 金寨县| 宁蒗| 始兴县| 环江| 越西县| 鄂尔多斯市| 南通市|