Java 中的变量


2021年8月23日, Learn eTutorial
1941

Java 变量是计算机内存中保留的一个空间,用于存储数据值。您可以为每个内存位置分配一个特定的名称,但必须遵循命名约定。 

通常,Java 程序从变量声明开始,因为变量存储了 Java 程序执行任务所需的信息。这些信息或数据可以是任何东西,比如简单的文本、代码、数字,甚至是简单的预定义计算。因此,存储数据的变量具有特定的数据类型,您将在下一个教程——Java 中的数据类型中详细学习。

示例:程序中的变量


public class Student {

 public static void main(String[] args) {
 String name;
 int age;

 }

}

在上面的代码中,name 是一个字符串数据类型的变量,而 age 是另一个整数数据类型的变量。 

如何在 Java 中命名变量

尽管 Java 提供了根据您的意愿和方便使用变量名的自由,但您必须遵守某些规则。 

  1. 变量名只能是字母(A, a, B, b)、数字(0, 1, 2)和下划线(_)的组合。 
  2. 变量必须以字母开头,或者一些编译器支持以下划线(_)或美元符号($)开头。但它不能以数字开头。
  3. 由于 Java 是一种区分大小写的语言,大写字母(NUM)和小写字母(num)被视为不同。
  4. 在命名变量时不允许使用特殊字符(/, ;, :)和符号(#, @)。
  5. 变量名必须与保留关键字不同。这意味着像 int、float 等保留关键字不能用于命名变量。
  6.  不允许有空格。 
  7. 最后但同样重要的是,使用简短、简单且有意义(不超过 31 个字符)的变量名更安全。 

下面的表格为您提供了有效和无效变量名的概念。

有效变量名 无效变量名
age, _age, $age 17age
num, NUM int, float, for, while
stud1, stud_2 Stud#, Stud@2, Stud  1

除此之外,Java 还有一些命名约定,虽然不是必须遵守,但许多 Java 开发人员都在实践中遵循,以保持 Java 代码的专业性。遵循这些约定可以提高代码的可读性。下面列出了一些命名约定:

  1. 始终以小写字母书写变量名,如 agename 等。
  2. 如果变量名由多个单词组成,则将每个后续单词的首字母大写,即 studNamestudAgestudFatherName 等。
  3. 存储常量值(静态 final 字段)的变量总是以大写字母命名,每个单词之间用下划线分隔。例如:EXCHANGE_RATE

如何在 Java 中声明变量

与其他编程语言一样,在 Java 中,程序中将要使用的所有变量都必须先声明。这有两个原因:

  1. 编译器必须知道为变量保留多少空间才能正常运行。分配的空间必须足够,并且不能过大,以免造成内存滥用。 
  2. 编译器必须识别数据是数字还是字母,因此必须声明“类型”。除此之外,还应该给它一个有意义的名称(称为标识符),以便于操作。 

变量声明语法包括两个重要部分,如下所示:一个是数据类型,另一个是变量名。变量声明必须始终以分号结尾,否则编译器将引发终止错误。此外,如果多个变量具有相同的数据类型,Java 允许在单行中声明它们。

语法:


datatype variable_name;
 

例如,


int num1; 
int num 2; 
float f1,f2;
 

在这里,int 表示整数,float 表示小数。intfloat 是数据类型,num1num2f1f2 是标识符(变量名)。一旦变量声明了特定的数据类型,它将只接受该特定数据类型的值。在这里,num 只能接受整数值,如果我们尝试将任何其他值(如字符)存储到 num 中,则会引发错误。

如何在 Java 中初始化变量

声明完成后,您可以根据需要自由使用分配的空间(即变量)。这个已声明的变量最初包含垃圾值,即未定义的值。如果您希望初始分配一些值,可以使用赋值运算符“=”来完成。变量初始化可以在声明时进行,也可以稍后赋值。

语法:


datatype variable_name = value;
 

下面是一些变量初始化的示例


int num1 = 4; 
float f1 ;
f1 = 2.5;
 

变量总是在其空间中分配最新的值,除非它用关键字 final 声明。请看下面的例子,


public class Student {

    public static void main(String[] args) {
        String name = "TOM";
        int age = 17;
        age = 20;

        System.out.println("Name:" + name);
        System.out.println("Age:" + age);

    }

}
 

输出


Name:TOM
Age:20

在上面的示例中,变量 age 最初存储值 17,但随着程序的执行,它发现 age 被赋予了一个新值 20。因此,新值 20 覆盖了之前的值 17,因为该变量没有用关键字 final 声明。因此,它将 age 显示为 20

如果您将变量声明为 final 并尝试为其分配另一个值,结果将是错误。

如何显示变量

现在,为了在 Java 中显示变量,我们可以使用 println() 方法。让我们通过一个例子来理解这一点。


public class Sum {

    public static void main(String[] args) {
        int num1 = 4;
        int num2 = 5;
        System.out.println("First number is : " + num1);
        System.out.println("Second number is : " + num2);

        int sum = num1 + num2;
        System.out.println("Sum is " + sum);
    }

}
 

在这里,变量 num1num2 分别存储整数值 4 和 5。变量 sum 包含 num1num2 的相加值。使用 println() 方法,显示存储在变量中的值。要将文本与变量组合,我们可以使用  + 字符。

输出


First number is : 4
Second number is : 5
Sum is 9

Java 中的变量类型

Java 描述了 4 种类型的变量。它们如下所列:

  1. 局部变量
  2. 实例变量(非静态字段变量)
  3. 类变量(静态字段变量)
  4. 参数

局部变量

局部变量是在方法、构造函数或代码块内部定义的变量。该变量的作用域仅限于该方法或代码块。因此,我们可以说这种类型的变量只有局部作用域,这意味着该变量在进入代码块或被方法调用时创建,并在退出该代码块或方法返回时销毁。

示例:说明局部变量


void method()
{
      int num = 5;   // Local Variable 
}
 

在这里,变量 num 绑定到函数 method()

实例变量

实例变量是在类内部但在方法、构造函数或代码块外部定义的变量,并且没有使用关键字 static 作为前缀。这意味着实例变量是非静态字段变量。 

实例变量属于一个对象,而对象又是类的一个实例,因此我们可以换句话说,“实例变量是类的一个实例”。每当使用关键字 new 创建类的对象时,就会创建一个实例变量。这意味着实例变量对其对象是唯一的。

示例:如何创建实例变量


Class Employee{
String employee_Name;
int employee_Id;

 

在上面的示例中,创建了 Employee 类的两个实例(emp1 和 emp2)。

静态变量

如果一个变量以关键字 static 为前缀,则称其为静态变量。Java 中的静态变量定义在类内部,但在方法或代码块外部。静态变量也称为类变量,因为它们属于类而不是对象(实例)。因此,静态变量对于类的所有实例都是共有的,无论实例化了多少次。换句话说,声明为静态的变量在类的所有对象之间共享。下面的代码片段将说明静态变量的工作方式。

示例:静态变量的使用


Class Employee{
String employee_Name;
int employee_Id;
static String company_Name= “ABC”; //Static 
 

参数

参数是与方法关联的变量。当调用方法时,参数用于将信息传递给方法。参数的作用域在声明该参数的方法内部。 

示例:说明参数的使用


public class ParamEx {

    static void MethodDisp(String fname) {
        System.out.println("Hai " + fname + " Welcome to LearneTutorials!!!");
    }

    public static void main(String[] args) {
        MethodDisp("Tom");
        MethodDisp("Jerry");

    }

}
 

本例中,ParamEx 是一个类,其中有一个名为  MethodDisp() 的方法。此方法的目的是显示消息“Hai (name) Welcome to Learnetutorials!!!”。在这里,name 作为字符串参数 fname 在方法调用时传递给 MethodDisp()。 

现在不要为参数烦恼。您肯定会在未来的教程中学到。目前只需记住,变量也可以以参数的形式出现。