1、變量(variable)
變量是什么:就是可以變化的量!
我們通過變量來操縱存儲空間中的數據,變量就是指代這個存儲空間!空間位置是確定的,但是里面放
置什么值不確定!
Java是一種強類型語言,每個變量都必須聲明其類型。
Java變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。
變量在使用前必須對其聲明, 只有在變量聲明以后,才能為其分配相應長度的存儲單元,聲明格式為:
1 type varName [=value] [{,varName[=value]}] ; 2 //數據類型 變量名 = 值;可以使用逗號隔開來聲明多個同類型變量。
注意事項:
- 每個變量都有類型,類型可以是基本類型,也可以是引用類型。
- 變量名必須是合法的標識符。
- 變量聲明是一條完整的語句,因此每一個聲明都必須以分號結束
1 int a, b, c; // 聲明三個int型整數:a、 b、c 2 int d = 3, e = 4, f = 5; // 聲明三個整數並賦予初值 3 byte z = 22; // 聲明並初始化 z 4 String s = "runoob"; // 聲明並初始化字符串 s 5 double pi = 3.14159; // 聲明了雙精度浮點型變量 pi 6 char x = 'x'; // 聲明變量 x 的值是字符 'x'。
雖然可以在一行聲明多個變量,但是不提倡這個風格,逐一聲明每一個變量可以提高程序可讀性。
2、變量作用域
變量根據作用域可划分為三種:
- 類變量(靜態變量: static variable):獨立於方法之外的變量,用 static 修飾。
- 實例變量(成員變量:member variable):獨立於方法之外的變量,不過沒有 static 修飾。
- 局部變量(lacal variable):類的方法中的變量
1 public class Variable{ 2 static int allClicks=0; // 類變量 3 String str="hello world"; // 實例變量 4 public void method(){ 5 int i =0; // 局部變量 6 } 7 }
局部變量
方法或語句塊內部定義的變量。生命周期是從聲明位置開始到”}”為止。
在使用前必須先聲明和初始化(賦初值)。
局部變量沒有默認值,所以局部變量被聲明后,必須經過初始化,才可以使用。
1 public static void main(String[] args) { 2 int i; 3 int j = i+5 ; // 編譯出錯,變量i還未被初始化 4 System.out.println(j); 5 }
應改為:
public static void main(String[] args) { int i=10; int j = i+5 ; System.out.println(j); }
從jdk10開始,對於局部變量,如果可以從變量的初始值推斷出它的類型,就可以不聲明類型。只需要使用關鍵字var而無需指定類型。
1 var i=15; 2 var greeting="hello"; 3 System.out.println(i); 4 System.out.println(greeting);
實例變量
方法外部、類的內部定義的變量。
從屬於對象,生命周期伴隨對象始終。
如果不自行初始化,他會自動初始化成該類型的默認初始值
(數值型變量初始化成0或0.0,字符型變量的初始化值是16位的0,布爾型默認是false)
public class Test { // 這個實例變量對子類可見 public String name; // 私有變量,僅在該類可見 private double salary; }
靜態變量
使用static定義。
從屬於類,生命周期伴隨類始終,從類加載到卸載。
如果不自行初始化,他會自動初始化成該類型的默認初始值
(數值型變量初始化成0或0.0,字符型變量的初始化值是16位的0,布爾型默認是false)
public class Employee { //salary是靜態的私有變量 private static double salary; // DEPARTMENT是一個常量 public static final String DEPARTMENT = "開發人員"; public static void main(String[] args){ salary = 10000; System.out.println(DEPARTMENT+"平均工資:"+salary); } }