更新時間:2022-09-29 11:18:48 來源:動力節點 瀏覽1121次
變量為我們提供了程序可以操作的命名存儲。Java中的每個變量都有一個特定的類型,它決定了變量內存的大小和布局;可存儲在該存儲器中的值的范圍;以及可以應用于變量的操作集。
必須先聲明所有變量,然后才能使用它們。以下是變量聲明的基本形式
data type variable [ = value][, variable [ = value] ...] ;
這里的數據類型是Java的數據類型之一,變量是變量的名稱。要聲明指定類型的多個變量,可以使用逗號分隔的列表。
以下是Java中變量聲明和初始化的有效示例
實例
int a, b, c; // Declares three ints, a, b, and c.
int a = 10, b = 10; // Example of initialization
byte B = 22; // initializes a byte type variable B.
double pi = 3.14159; // declares and assigns a value of PI.
char a = 'a'; // the char variable a iis initialized with value 'a'
局部變量
實例變量
類/靜態變量
局部變量在方法、構造函數或塊中聲明。
局部變量是在輸入方法、構造函數或塊時創建的,變量一旦退出方法、構造函數或者塊就會被銷毀。
訪問修飾符不能用于局部變量。
局部變量僅在聲明的方法、構造函數或塊中可見。
局部變量在內部堆棧級別實現。
局部變量沒有默認值,因此應聲明局部變量,并在首次使用前分配初始值。
實例
在這里,年齡是一個局部變量。這是在pupAge()方法中定義的,其范圍僅限于此方法。
public class Test {
public void pupAge() {
int age = 0;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
這將產生以下結果
輸出
Puppy age is: 7
實例
下面的示例使用age而不進行初始化,因此在編譯時會給出錯誤。
public class Test {
public void pupAge() {
int age;
age = age + 7;
System.out.println("Puppy age is : " + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
這將在編譯時產生以下錯誤
輸出
Test.java:4:variable number might not have been initialized
age = age + 7; ^
1 error
實例變量在類中聲明,但在方法、構造函數或任何塊之外。
當為堆中的對象分配空間時,將為每個實例變量值創建一個槽。
使用關鍵字“new”創建對象時創建實例變量,銷毀對象時銷毀實例變量。
實例變量包含必須由多個方法、構造函數或塊引用的值,或者必須在整個類中出現的對象狀態的基本部分。
實例變量可以在使用之前或之后在類級別聲明。
可以為實例變量提供訪問修飾符。
實例變量對于類中的所有方法、構造函數和塊都可見。通常,建議將這些變量設置為私有(訪問級別)。但是,可以使用訪問修飾符為這些變量提供子類的可見性。
實例變量具有默認值。對于數字,默認值為0,對于布爾值為false,對于對象引用為null。值可以在聲明期間或在構造函數內賦值。
通過在類內調用變量名,可以直接訪問實例變量。然而,在靜態方法中(當實例變量被賦予可訪問性時),應該使用完全限定名來調用它們。對象引用.VariableName。
實例
import java.io.*;
public class Employee {
// this instance variable is visible for any child class.
public String name;
// salary variable is visible in Employee class only.
private double salary;
// The name variable is assigned in the constructor.
public Employee (String empName) {
name = empName;
}
// The salary variable is assigned a value.
public void setSalary(double empSal) {
salary = empSal;
}
// This method prints the employee details.
public void printEmp() {
System.out.println("name : " + name );
System.out.println("salary :" + salary);
}
public static void main(String args[]) {
Employee empOne = new Employee("Ransika");
empOne.setSalary(1000);
empOne.printEmp();
}
}
這將產生以下結果
輸出
name : Ransika
salary :1000.0
類變量也稱為靜態變量,在類中用static關鍵字聲明,但在方法、構造函數或塊之外。
每個類只能有一個類變量的副本,而不管從中創建了多少個對象。
除了聲明為常量之外,很少使用靜態變量。常量是聲明為public/private、final和static的變量。常量變量從不改變其初始值。
靜態變量存儲在靜態內存中。很少使用聲明為final以外的靜態變量,并將其用作公共或私有常量。
靜態變量在程序啟動時創建,在程序停止時銷毀。
可見性類似于實例變量。然而,大多數靜態變量被聲明為公共變量,因為它們必須對類的用戶可用。
默認值與實例變量相同。對于數字,默認值為0;對于布爾人來說,這是錯誤的;對于對象引用,它為空。值可以在聲明期間或在構造函數內賦值。此外,可以在特殊的靜態初始值設定項塊中分配值。
可以通過調用類名ClassName.VariableName來訪問靜態變量。
當將類變量聲明為publicstaticfinal時,變量名(常量)都是大寫的。如果靜態變量不是public和final,則命名語法與實例和局部變量相同。
實例
import java.io.*;
public class Employee {
// salary variable is a private static variable
private static double salary;
// DEPARTMENT is a constant
public static final String DEPARTMENT = "Development ";
public static void main(String args[]) {
salary = 1000;
System.out.println(DEPARTMENT + "average salary:" + salary);
}
}
這將產生以下結果
輸出
Development average salary:1000
如果變量是從外部類訪問的,則常量應作為Employee.DEPARTMENT訪問。如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習