Java 变量

本文介绍 Java 中的变量,变量类型,展示声明变量的示例以及变量命名约定的最佳实践。

本文介绍 Java 中的变量,变量类型,展示声明变量的示例以及变量命名约定的最佳实践。

Java 编程语言使用“属性”和“变量”作为其术语的一部分。属性引用在方法外部声明的变量,而变量引用在方法内部的声明,包括方法参数。

1. 什么是变量

顾名思义,变量的值在运行时可以变化。在 Java 中,变量是对存储变量值的存储区的命名引用。

Java变量示例
变量如何工作

1.1 变量声明语法

变量声明具有以下语法:

[data_type] [variable_name] = [variable_value]
  • data_type – 指存储在存储区中的信息的类型。
  • variable_name – 引用变量的名称。
  • variable_value – 引用要存储在存储区中的值。

例如,以下语句是 Java 中声明变量的几种方式。

int i = 10;         //Variable of int type
 
String str = "howtodoinjava.com";   //Variable of string type
 
Object obj = new Object();      //Variable of object type
 
int[] scores = [1,2,3,4,5,6,7,8,9];         //Variable of int type

1.2 Java 变量示例

int i = 10;
int j = 10;
 
int sum = i + j;
 
System.out.println( sum );  

程序输出。

20

2. 类型扩大和缩小

2.1 类型扩大

当较小的原始类型值自动容纳在较大/较宽的原始数据类型中时,这称为变量扩展。在下面的示例中,将 int 类型变量分配给 long 类型变量,不会有任何数据丢失或错误。

int i = 10;
long j = i;

System.out.println( i );  
System.out.println( j );  

程序输出。

10
10

2.2 类型缩小

当较大的原始类型值分配给较小的原始数据类型时,这称为变量的变窄。由于可用于存储数据的位数较少,可能会导致某些数据丢失。它需要显式类型转换为所需的数据类型。

在给定的示例中,将int类型变量分配给具有数据丢失的字节类型变量。

int i=198;  
byte j=(byte)i;  

System.out.println( i );  
System.out.println( j );  

程序输出

198
-58

3. 变量类型

在 Java 中,有四种类型的变量。这些变量可以是原始类型,类类型或数组类型。

所有变量均根据可访问变量的范围进行划分。

  1. 实例变量

    在类中声明的没有 static 关键字的变量。非静态字段也称为实例变量,因为它们的值对于类的每个实例都是唯一的。它们也称为_状态变量_。

    public class VariableExample
    {
        int counter = 20;         //1 - Instance variable
    }
    
  2. 静态变量

    也称为_类变量_。它是用 static 修饰符声明的任何字段。这意味着无论实例被实例化多少次,该变量都存在一个副本。

    public class VariableExample
    {
        static float PI = 3.14f;    //2 - Class variable
    }
    

    在 Java 中,可以将声明为 “公共静态” 的变量视为全局变量。

  3. 局部变量

    这些在方法内部使用,因为在方法执行期间存在临时变量。声明局部变量的语法类似于声明字段。局部变量仅对声明它们的方法可见;类上的方法无法访问其他方法中的变量。

    public class VariableExample
    {
        public static void main( String[] args ) {
    
            int age = 30;     //3 - Local variable (inside method body)
        }
    }
    
  4. 方法参数

    参数是在调用方法时传递给方法的变量。尽管在调用方法时会为其分配值,但参数也只能在声明它们的方法内部访问。

    public class VariableExample
    {
        public static void main( String[] args ) {
    
            print( 40 );
        }
    
        public static void print ( int param ) {      //4 - Method Argument
    
            System.out.println ( param );
        }
    }
    

4. 实例变量与类变量

  • 实例变量(非静态字段)对于类的每个实例都是唯一的。

  • 类变量(静态字段)是使用 static 修饰符声明的字段;无论实例已被实例化多少次,类变量都只有一个副本。

  • 要访问实例变量,必须创建一个新的 class 实例。类变量可通过类引用进行访问,并且不需要创建对象实例。

    举个例子,我们有一个具有一个实例变量和一个类变量的 Data 类。

    public class Data 
    {
        int counter = 20;
    
        static float PI = 3.14f;
    }
    

    我们可以以给定的方式访问两个变量。

    public class Main 
    {
        public static void main(String[] args) 
        {
            Data dataInstance = new Data();
    
            //Need new instance
    
            System.out.println( dataInstance.counter );    //20
    
            //Can access using class reference
    
            System.out.println( Data.PI );                 //3.14 
        }
    }
    

5. Java 变量命名约定

关于如何定义变量名,有一些规则和约定。

  1. Java 变量名称区分大小写。变量名称 employeeEmployeeEMPLOYEE 不是相同的变量 。
  2. Java 变量名称必须以字母或 $_ 字符开头。
  3. 在 Java 变量名的第一个字符后,这个名字也可以包含数字,$_ 字符。
  4. 变量名称不能是 Java 中的保留关键字,例如 breakcontinue 是 Java 中的保留字,因此,您不能为它们命名变量。
  5. 变量名应小写。例如 variableapple
  6. 如果变量名由多个单词组成,则遵循驼峰表示法。例如 deptNamefirstName
  7. 静态最终字段(常量)的命名的所有字母都应该大写,通常使用 _ 分隔名称中的单词。例如 LOGGERINTEREST_RATE