Skip to content

4.3 变量的定义与使用

变量的定义

在 Java 中,变量的定义需要指定数据类型和变量名,并且可以选择性地进行初始化。

语法

java
// 声明变量
数据类型 变量名;

// 声明并初始化变量
数据类型 变量名 = 值;

示例

java
// 声明变量
int age;
double salary;
String name;

// 声明并初始化变量
int age = 18;
double salary = 5000.50;
String name = "John";

变量的使用

变量定义后,可以在程序中使用它,包括读取变量的值、修改变量的值、将变量作为参数传递给方法等。

读取变量的值

java
int age = 18;
System.out.println("Age: " + age); // 读取并打印变量的值

修改变量的值

java
int age = 18;
age = 19; // 修改变量的值
System.out.println("Updated age: " + age);

变量的运算

java
int a = 10;
int b = 20;
int sum = a + b; // 变量参与运算
System.out.println("Sum: " + sum);

变量作为参数

java
public class VariableExample {
    public static void main(String[] args) {
        int number = 100;
        printNumber(number); // 将变量作为参数传递
    }
    
    public static void printNumber(int num) {
        System.out.println("Number: " + num);
    }
}

变量的作用域

变量的作用域是指变量可以被访问的范围。在 Java 中,变量的作用域由其声明的位置决定。

局部变量

局部变量是在方法或代码块中声明的变量,只在该方法或代码块中可见。

java
public class LocalVariableExample {
    public static void main(String[] args) {
        // 局部变量,只在 main 方法中可见
        int localVar = 100;
        System.out.println("Local variable: " + localVar);
    }
    
    public void anotherMethod() {
        // 错误:无法访问 main 方法中的局部变量
        // System.out.println("Local variable: " + localVar);
    }
}

成员变量

成员变量是在类中声明的变量,在整个类中可见。

java
public class MemberVariableExample {
    // 成员变量,在整个类中可见
    int memberVar = 100;
    
    public void method1() {
        System.out.println("Member variable: " + memberVar);
    }
    
    public void method2() {
        System.out.println("Member variable: " + memberVar);
    }
}

代码块变量

代码块变量是在代码块(如 if、for、while 等)中声明的变量,只在该代码块中可见。

java
public class BlockVariableExample {
    public static void main(String[] args) {
        if (true) {
            // 代码块变量,只在 if 代码块中可见
            int blockVar = 100;
            System.out.println("Block variable: " + blockVar);
        }
        // 错误:无法访问 if 代码块中的变量
        // System.out.println("Block variable: " + blockVar);
    }
}

变量的命名规范

良好的变量命名规范可以提高代码的可读性和可维护性。

基本规则

  1. 必须以字母、下划线(_)或美元符号($)开头
  2. 后续字符可以是字母、数字、下划线或美元符号
  3. 不能使用 Java 关键字
  4. 区分大小写

命名约定

  1. 驼峰命名法:变量名应该使用驼峰命名法,即第一个单词小写,后续单词首字母大写

    • 例如:firstNamestudentAgetotalScore
  2. 有意义的名称:变量名应该能够清晰地表达变量的用途

    • 好的例子:agenamesalary
    • 不好的例子:abc
  3. 避免使用缩写:除非是广为人知的缩写,否则应该使用完整的单词

    • 好的例子:numberOfStudents
    • 不好的例子:numStud
  4. 常量命名:常量(使用 final 修饰的变量)应该使用全大写,单词之间用下划线分隔

    • 例如:MAX_VALUEPIDEFAULT_TIMEOUT

示例:变量的定义与使用

java
public class VariableUsageExample {
    // 成员变量
    static int classVar = 100;
    
    public static void main(String[] args) {
        // 局部变量
        int localVar = 50;
        String name = "John";
        boolean isStudent = true;
        
        // 使用变量
        System.out.println("Class variable: " + classVar);
        System.out.println("Local variable: " + localVar);
        System.out.println("Name: " + name);
        System.out.println("Is student: " + isStudent);
        
        // 修改变量
        localVar = 60;
        name = "Jane";
        isStudent = false;
        
        // 打印修改后的值
        System.out.println("\nUpdated values:");
        System.out.println("Local variable: " + localVar);
        System.out.println("Name: " + name);
        System.out.println("Is student: " + isStudent);
        
        // 变量运算
        int a = 10;
        int b = 20;
        int sum = a + b;
        int difference = a - b;
        int product = a * b;
        int quotient = b / a;
        
        System.out.println("\nArithmetic operations:");
        System.out.println("a + b = " + sum);
        System.out.println("a - b = " + difference);
        System.out.println("a * b = " + product);
        System.out.println("b / a = " + quotient);
    }
    
    public static void anotherMethod() {
        // 可以访问成员变量
        System.out.println("Class variable in another method: " + classVar);
        
        // 不能访问 main 方法中的局部变量
        // System.out.println("Local variable: " + localVar); // 错误
    }
}

常见问题

1. 变量未初始化

症状:编译错误:error: variable x might not have been initialized

解决方案:在使用变量前确保已经初始化

2. 变量作用域错误

症状:编译错误:error: cannot find symbol

解决方案:确保在变量的作用域内使用变量

3. 变量命名错误

症状:编译错误:error: invalid variable name

解决方案:遵循变量命名规则,使用合法的变量名

4. 类型不匹配

症状:编译错误:error: incompatible types

解决方案:确保变量类型与赋值的类型匹配

总结

变量是 Java 程序中用于存储数据的容器,它的定义和使用遵循以下规则:

  • 变量需要先声明后使用
  • 变量可以在声明时初始化,也可以在稍后初始化
  • 变量有作用域,只在其作用域内可见
  • 变量名应该遵循命名规范,使用有意义的名称
  • 变量可以参与运算、作为参数传递等

理解变量的定义与使用,是学习 Java 编程的基础。

© 2026 编程马·菜鸟教程 版权所有