Java 局部变量性质

1. 局部变量的定义

根据Java官方文档的定义“There is no special keyword designating a variable as local; that determination comes entirely from the location in which the variable is declared — which is between the opening and closing braces of a method”,我们可以将局部变量理解为在方法的{}中所声明的变量。不过个人理解Java局部变量的概念应该更广:凡是在{}代码块中所声明的变量都是局部变量(解释见后“局部变量的作用域”)。

2. 局部变量的初始化
  1. 基本数据类型的局部变量在声明后如果不进行初始化便使用,会引起编译时的报错。代码如下:
public static void main(String[] args)
    {
        int num;
        System.out.println("num is " + num);
    }

编译时报错:

draft.java:7: error: variable num might not have been initialized
        System.out.println("num is " + num);
                                       ^
1 error

即此时局部变量必须被初始化后才能被使用。
2. 如果局部变量为数组,那么数组元素会自动初始化,因此我们可以直接使用数组元素。如下:

public static void main(String[] args)
{
    int[] arr = new int[5]; 
    // int数组的元素默认初始化为0
    for(int i = 0; i < arr.length; i++) 
    System.out.printf("arr[%d] is %d\n", i, arr[i]);
}

打印结果为:

arr[0] is 0
arr[1] is 0
arr[2] is 0
arr[3] is 0
arr[4] is 0
3. 局部变量的作用域
  1. 对于方法中的局部变量,其只能在此方法内被使用。
  2. 在{}代码块中声明的局部变量只能在该代码块中使用。如下:
int num = 5;
if(num > 3)
{
    int j = 1;
}
System.out.printf("j is %d ", j);

编译时会报错该变量无法找到。

draft.java:26: error: cannot find symbol
        System.out.printf("j is %d ", j);
                                      ^
  symbol:   variable j
  location: class draft
1 error
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值