第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Java 變量

本小節(jié)我們將介紹 Java 語言中也是編程語言中的一個基本概念:變量。

通過本小節(jié)的學習,你將了解到變量是什么,如何創(chuàng)建變量,如何操作變量,變量的命名規(guī)范,這些是我們本小節(jié)學習的重點。我們也會介紹常量的概念和使用。

1. 什么是變量

在程序設計中,變量是指一個包含值的存儲地址以及對應的符號名稱。

從定義上來看,變量大概可分為兩部分:變量的名字和變量的值,可通過變量名來訪問變量值。簡單來說,變量就是存儲數(shù)據(jù)的載體。

對于 Java 語言來講,Java 是一種強類型的語言,因此變量都必須有一個類型。在 Java 代碼中,變量是長這個樣子的:

// =左側的age是變量名,右側的22是變量值
int age = 22;

2. 創(chuàng)建變量

我們已經(jīng)在上面看到了變量在代碼中的樣子,現(xiàn)在我們來動手創(chuàng)建變量。

Java語言中,我們需要做兩件事才能創(chuàng)建一個變量:

  1. 給變量起一個名字
  2. 定義變量的數(shù)據(jù)類型

創(chuàng)建變量的過程也叫聲明變量,聲明變量的語法如下:

DataType 變量名;

Tips:關于數(shù)據(jù)類型,我們將在下一小節(jié)介紹。此處只需知道變量有類型之分即可。

聲明一個變量,實例如下:

int a;

上述代碼,聲明了一個名字為a,類型為整型的變量。

我們可以再聲明一個名字為b,類型為字符型的變量,實例如下:

char b;

再聲明兩個整型的變量age、number,實例如下:

int age;
int number;

3. 給變量賦值

變量聲明操作已經(jīng)告訴了編譯器變量的數(shù)據(jù)類型。數(shù)據(jù)類型決定了變量中可以存放什么,不能存放什么,上述的變量aint類型(整型),因此只能存放整數(shù)。

一旦聲明了一個變量,我們就可以使用賦值語句為其賦值,實例如下:

// 變量聲明語句
int a;
// 賦值語句
a = 1;

為變量分配值的語句,就稱為賦值語句。需要特別提醒的是,語句中=的意義不同于數(shù)學中的等號,在 Java 中,=是賦值符號。

對于變量的聲明和賦值操作,我們也可以將這兩條語句合并成一條語句,實例如下:

int a = 1;

另外,如果要創(chuàng)建多個類型相同的變量,我們可以在一條語句中將多個變量的聲明進行分組:

int a, b;
a = 1;
b = 2;

為了精簡語法,還可以將變量的聲明和賦值同時分組:

int a = 1, b = 2;

在作用域范圍內(nèi),變量的值能夠隨時訪問或重新賦值,比如:

實例演示
預覽 復制
復制成功!
class PrintVariable {
    public static void main(String[] args) {
        int a = 20;
    	System.out.println("修改前變量a=" + a);
    	// 將變量a重新賦值為100
    	a = 100;
    	System.out.println("修改后變量a=" + a);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

運行結果:

修改前變量a=20
修改后變量a=100

上述代碼中,聲明了一個整型變量a,且初始化值為20,可以使用a = 100;這種賦值語句,對變量a重新賦值。

注意,在 Java 中,對變量進行重新賦值,這樣的寫法是錯誤的:

int a = 20;
int a = 100;

編譯代碼,將會拋出異常:

Test.java:5: 錯誤: 已在方法 main(String[])中定義了變量 a
	int a = 2;
	    ^
1 個錯誤

編譯報錯的原因很簡單,第二行代碼再次定義了變量a,而變量a已經(jīng)在內(nèi)存中存在了,不能再重復定義。這與對變量重新賦值不同。

4. 變量命名規(guī)范

對于變量的命名,每種編程語言都有自己的規(guī)則和約定,Java 語言也不例外。命名變量的規(guī)則和約定如下:

  • 變量的名稱可以是任何合法的標識符,以字母,美元符號$或下劃線_開頭。但是,按照約定俗成,變量應始終以字母開頭,不推薦使用美元符號和下劃線開頭;
  • 開頭后續(xù)的字符可以是字母、數(shù)字、美元符號或下劃線。為變量選擇名稱時,推薦使用完整的英文單詞,不推薦使用單詞縮寫,更不要使用中文拼音。這樣做有利于代碼的閱讀和理解。另外請牢記,選擇的名稱不能是關鍵字保留字;
  • 變量命名區(qū)分大小寫
  • 變量命名應采用小駝峰命名法。所謂小駝峰命名法,就是如果你選擇的名稱只包含一個單詞,那么用全部小寫字母拼寫該單詞;如果名稱包含多個單詞,請將第二個單詞起的每個單詞的第一個字母都大寫;
  • 如果變量存儲了一個常量值,要將每個字母大寫并用下劃線字符分隔每個單詞。比如static final int MAX_NUM = 100。按照約定俗成,除了常量命名的情況,下劃線字符永遠不會在其他地方使用。

下面我們對照上述規(guī)則和約定來看幾個實例。

實例1:

int $a;
int _b;
int age;

上面3個變量的聲明都是合法的,但是根據(jù)約定俗稱,不推薦$a這種以美元符號開頭、_b這種以下劃線開頭的命名方式。

實例2:

public class VariablesNameing2 {
    public static void main(String[] args) {
        String Name = "Colorful";
        String name = "Colorful1";
        System.out.println("Name=" + Name);
        System.out.println("name=" + name);
    }
}

變量名區(qū)分大小寫,因此上面的Namename是兩個不同的變量。由于只有一個單詞組成,應將單詞使用全部小寫拼寫,不推薦第1行Name這種命名方式。

實例3:

// 聲明姓和名變量
String firstName;
String lastname;

上面聲明了兩個變量 firstNamelastname,由于它們都是由兩個單詞組成,按照小駝峰命名法的約定俗成:第2行lastname 變量名由兩個英文單詞組成,因此推薦改為lastName。

5. 常量

所謂常量,就是恒常不變的量。我們可以將常量理解成一種特殊的變量。

與變量不同的是,一旦它被賦值后,在程序的運行過程中不允許被改變。常量使用final關鍵字修飾:

final DataType 常量名 = 常量值;

Tips:常量的命名規(guī)范與普通變量有所不同,要將每個字母大寫并用下劃線字符分隔每個單詞。

如果我們嘗試在代碼中修改常量的值:

class ConstantTest {
    public static void main(String[] args) {
        // 聲明并初始化常量 TOTAL_NUM
        final int TOTAL_NUM = 200;
        // 對 TOTAL_NUM 重新賦值
        TOTAL_NUM = 20;
    }
}

編譯執(zhí)行代碼,編譯器將會報錯:

ConstantTest.java:6: 錯誤: 無法為最終變量TOTAL_NUM分配值
        TOTAL_NUM = 20;
        ^
1 個錯誤

適當?shù)厥褂贸A靠梢蕴岣叽a的安全性和可維護性。例如,我們可以在程序中聲明一個表示網(wǎng)站名稱的常量: final String SITE_NAME = "慕課網(wǎng)";,這樣在所有需要用到網(wǎng)站名稱的地方,都調用這個常量即可。這樣既保證了其值不可修改,提高了代碼的安全性,又統(tǒng)一了調用方的規(guī)范。

6. 變量的種類

學習變量的種類,需要你對 Java 的類和對象有一定的了解。目前不要求完全理解,等到后面學完面向對象相關知識后再回過頭來回味。

Java 語言定義了以下4 種變量

  • 實例變量(見代碼中instanceVariable
  • 類變量(見代碼中classVariable
  • 局部變量(見代碼中localVariable
  • 參數(shù)(見代碼中parameterargs
public class KindsOfVariables {
    // 1.實例變量
    public int instanceVariable = 1;
    // 2.類變量
    public static int classVariable;
    
    public void demoMethod(int parameter) { // 3.參數(shù)	    
        // 4.局部變量
        int localVariable;
    }
    
    public static void main(String[] args) {
        // 入口方法
    }
}

6.1 實例變量

實例變量在類范圍內(nèi)聲明。聲明時不使用static關鍵字修飾,因此也稱為非靜態(tài)字段。

實例變量用于存儲對象的狀態(tài),它的值對于類的每個實例都是唯一的,每個對象都擁有自己的變量副本。只要相應的對象存在于內(nèi)存中,它就占用著存儲空間。

下面是一個實例變量的實例,當然,我們還沒有介紹類和對象的概念,如果你了解類和對象,可以閱讀源碼幫助理解:

實例演示
預覽 復制
復制成功!
public class Student {
    // 實例變量 name
    public String name;
    // 實例變量 age
    public int age;

    // 構造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 打印學生基本信息的方法
    public void printInfo() {
        System.out.println("學生姓名為:" + name);
        System.out.println("學生年齡為:" + age);
    }

    public static void  main(String[] args) {
        // 實例化兩個學生對象
        Student student1 = new Student("小慕", 20);
        Student student2 = new Student("小李", 18);
        // 分別調用打印學生基本信息方法,打印兩個對象下的兩個實例變量
        student1.printInfo();
        System.out.println("--------分割線--------");
        student2.printInfo();
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

運行結果:

學生姓名為:小慕
學生年齡為:20
--------分割線--------
學生姓名為:小李
學生年齡為:18

實例變量和實例對象相關,因此需要通過new關鍵字實例化出對象,通過對象才能訪問其實例變量(也稱實例屬性)。 上述代碼中,nameage就是用于存儲其對象的屬性,我們實例化了兩個學生對象,其實例變量nameage,在每個對象實例中是唯一的。

6.2 類變量

類變量在類范圍內(nèi)使用static關鍵字修飾,因此類變量又被稱為靜態(tài)字段、靜態(tài)變量。

static修飾符告訴編譯器,無論類被實例化多少次,類變量始終只有一個變量副本。只要類被加載到內(nèi)存中,它就會存在。

另外,類變量可以被聲明為常量,通過使用final關鍵字以表示變量永遠不會改變。例如:public static final NAME = "慕慕",這里的NAME就是不會改變的常量。再次提醒,在常量的命名規(guī)范中,要將字母全部大寫。

對于類變量,我們再來看一個實例:

實例演示
預覽 復制
復制成功!
public class Course {
  
  	// 類變量 courseType
  	public static String courseType = "文字課程";
  	// 常量 COURSE_NAME
  	public static final String COURSE_NAME = "Java 基礎教程";
  	
	public static void main(String[] args) {
      	// 分別打印類變量和常量
      	System.out.println(Course.courseType);
      	System.out.println(Course.COURSE_NAME);
    }
}
運行案例 點擊 "運行案例" 可查看在線運行效果

運行結果:

文字課程
Java 基礎教程

類變量和類相關,因此不需要使用new關鍵字實例化對象后再調用,可以直接通過類名 + .點運算符 + 類變量名的方式調用。

上述代碼中,courseTypeCOURSE_NAME都使用static關鍵字修飾,它們都可以直接通過Course.變量名的方式調用。

6.3 局部變量

局部變量是在方法范圍內(nèi)被聲明和使用的。它們沒有任何關鍵字修飾,可以根據(jù)變量聲明的位置來認定局部變量(即方法的左花括號和右花括號之間),因此,局部變量只可以對聲明它們的方法可見。方法返回后,它們將被銷毀。

main方法中的局部變量實例:

public static void main(String[] args) {
  	// 局部變量 name
  	String name = "小慕";
  	// 局部變量 age
  	int age = 20;    	
  	System.out.println("姓名:" + name);
  	System.out.println("年齡:" + age);
}

我們再來看一個自定義方法中的局部變量實例:

public class PrintNumber {
  
  	public void printer() {
  	    int num = 10;
  	    for(int i = 1; i <= num; i ++) {
	      	System.out.println(i);
        }
    }
  
}

局部變量和方法相關,因此只能在方法內(nèi)部局部定義和使用,在第二個實例中沒有代碼注釋,請思考printer方法中有哪幾個局部變量。

6.4 參數(shù)

參數(shù)是用于傳遞給方法簽名的變量(例如入口方法main中的args),它們可以在方法中的任何位置被調用。在方法執(zhí)行的期間位于內(nèi)存中,方法返回后被銷毀。

例如,上面實例變量的實例中,Student類的構造方法就接收兩個參數(shù),如下為代碼截?。?/p>

// Student 類構造方法
public Student(String name, int age) {  // name 和 age 就是傳遞給Student構造方法的參數(shù)
    this.name = name;
    this.age = age;
}

注意,方法體中的this.namethis.age指代的是實例變量,而 nameage是參數(shù),它們被用于賦值給實例變量。

7. 小結

在本小節(jié)中,我們知道了變量是存儲數(shù)據(jù)的載體,聲明變量時要注意變量的命名規(guī)范,給變量賦值時要根據(jù)聲明的數(shù)據(jù)類型賦值。

Java 中變量有4個種類,分別是:實例變量、類變量、局部變量、參數(shù)。其中變量如果使用了final關鍵字修飾,就可定義一個不可變的常量。

當然,需要再次強調的是:不要使用中文拼音來命名變量,這是很常見的但非常不好的習慣。英文基礎差的童鞋可以下載一個英文詞典,當你要選擇一個變量的名稱時,多查閱一下單詞,選擇出最符合變量特征的單詞。好的變量命名不僅讓你的代碼易于閱讀理解,也有助于你更好地梳理實際編碼中繁瑣的業(yè)務邏輯。