解析java作用域

解析java作用域

1.含义

java作用域指的是标识符的有效范围

2.为啥需要这个?

保证变量在合理的范围内进行使用,而不是定义一个变量,哪里都能用的那种。

3.如何使用?

3.1 标识符有效范围的大小

a.若声明在类体中,则整个类是可见的

在类Practice的类体中声明一个number变量,可以发现里面的所有方法都可以使用它

示例代码

public class Practice {
    static int number;
    public static void main(String[] args) {
        System.out.println("main当中输出number的值"+number);
        show();
    }
    public static void show(){
        System.out.println("show当作输出number的值:"+number);
    }
}

示例代码运行截图
在这里插入图片描述

b.声明在方法体中,整个方法是可见的

在方法体中定义一个result,发现main方法是使用不了result变量的,result只有在当前方法体里面才可以进行使用

示例代码

public class Practice {
    static int number;
    public static void main(String[] args) {
//        String rs=result;  main方法里面是拿不到result变量的
        show();
    }
    public static void show(){
        String result="加油!!!坚持就是胜利!!!";
        for (int i = 0; i <5; i++) {
            System.out.println(result+(i+1));
        }
        if(true){
            System.out.println("进入if里面调用result的值为: "+result);
        }
        System.out.println("方法的最后,再次输出result的值为: "+result);
    }
}

示例代码运行截图
在这里插入图片描述

c.声明在分支结构中(if)、循环结构里,只在当前的{}可见

c.1 循环遍历一个数组时候,你发现循环变量i是只能存在于for方法体中

c.2 涉及到两数交换时,if里面定义的temp变量也仅仅只存在于if那个对应的{}中

示例代码

public class Practice {
    static int number;
    public static void main(String[] args) {
        int[] a={1,88,2,4};
        for (int i = 0; i <a.length; i++) {
            System.out.print(a[i]+" ");
        }
        //for循环外面是获取不到i的值的,你可以把注释去掉运行试试
        //System.out.println(i);
        int m=10,n=90;
        //变量交换环节
        System.out.println("\n交换前 m,n的值为: "+m+" "+n);
        if(m<n){
            int temp=m;
            m=n;
            n=temp;
        }
        System.out.println("交换后 m,n的值为: "+m+" "+n);
        //System.out.println(temp);
        //你会发现if外面是不能获取到temp的值的,temp的值只在它定义的那个if里面有效
    }
}

示例代码运行截图
在这里插入图片描述

3.2 java是通过什么来划分作用域的?

作用域查找规则:

​ 内层作用域可以使用外层作用域的标识符

​ 外层作用域不能使用内容作用域的标识符

分析:

内层可以使用外层,是因为外层的作用域是包含了内层部分的,而内层作用域仅存在当前的{},作用域并没有覆盖外层,因此,外层使用不了内层的作用域。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值