- 零基礎學Java(第5版)
- 黃傳祿 常建功 陳浩
- 1740字
- 2020-06-17 18:13:09
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”聲明的其他實例變量,它是屬于對象本身的。
其實類變量就是在類中直接定義的,并且不隨類產生的對象變化而變化。當在一個類中聲明了一個類變量時,無論創造出多少個對象,使用對象引用這個變量,都不會發生變化。成員變量就不同了,它隨著對象不同而變化。即針對同一個類,新創建一個對象,使用此對象引用這個變量,每次引用的值都不一樣。
- Mastering OpenLayers 3
- Boost程序庫完全開發指南:深入C++”準”標準庫(第5版)
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發經典名著)
- 計算機圖形學編程(使用OpenGL和C++)(第2版)
- MongoDB for Java Developers
- Python時間序列預測
- UML 基礎與 Rose 建模案例(第3版)
- 移動界面(Web/App)Photoshop UI設計十全大補
- Building Microservices with .NET Core
- Unity 2018 Shaders and Effects Cookbook
- 時空數據建模及其應用
- Julia數據科學應用
- Node.js從入門到精通
- Software Development on the SAP HANA Platform
- 城市信息模型平臺頂層設計與實踐