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

3.3 變量

在上一節詳細介紹了Java語言中的數據類型及其功能。在具體實例代碼中我們定義了很多變量,那么變量究竟是什么呢?本節將介紹變量的基本概念,以及如何操作變量。

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                                                  //定義一個Var類
04        {
05            int a=10;                                                     //定義全局變量a
06            int b=21;                                                     //定義全局變量b
07            public static void main(String[] args)                        //主方法
08            {
09                var v=new Var();                                          //創建一個V對象
10                System.out.println("這個是全局變量a="+ v.a);               //輸出全局變量a
11                v.print();                                                //調用print方法
12            }
13            void print()                                                  //創建一個print方法
14            {
15                int c=20;                                                 //定義局部變量c
16                System.out.println("這個是局部變量c="+ c);
17            }
18        }

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

【運行效果】

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

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

01        public class Math1                                                 //定義一個Math1類
02        {
03            public static void main(String[] args)                         //主方法
04            {
05                Math1 v=new Math1();                                       //定義一個V對象
06                System.out.println("這個是局部變量c="+ v.c);                //輸出全局變量c
07            }
08            void print()                                                   //定義一個print方法
09            {
10                int c=20;                                                  //定義局部變量c
11            }
12        }

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

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

01        public class Var                                                         //定義一個Var類
02        {
03            int a=10;                                                            //定義全局變量a
04            int b=21;                                                            //定義全局變量b
05        }

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

01        public class Var                                                      //定義一個Var類
02        {
03            void print()                                                      //定義一個print方法
04            {
05                int c=20;                                                     //定義局部變量c
06            }
07        }

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

2.根據類型劃分

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

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

3.根據所屬范圍劃分

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

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

主站蜘蛛池模板: 宁武县| 蓬莱市| 宜宾市| 特克斯县| 昌吉市| 白山市| 武鸣县| 嘉义县| 泽州县| 方正县| 新乡县| 武定县| 运城市| 乐平市| 西充县| 梁河县| 恩施市| 连州市| 定结县| 乃东县| 仁寿县| 炉霍县| 永顺县| 乡宁县| 北碚区| 红原县| 恩施市| 吉林省| 凤阳县| 郸城县| 绥芬河市| 清水县| 巨鹿县| 永康市| 西华县| 健康| 连平县| 莆田市| 宽城| 哈尔滨市| 广安市|