资讯专栏INFORMATION COLUMN

九天学会Java,第六天,变量作用域

Berwin / 1747人阅读

摘要:从函数看局部变量作用域函数内定义的变量被称为局部变量。局部变量的作用范围从声明开始,直到包含它的块结束块就是内的代码。

变量和数据类型,赋值和输出

算术运算

选择结构

循环结构

函数定义,函数调用

变量作用域 <--

栈,程序运行的基石

面向对象

异常处理

语言提供的公用包

经过前面的学习,我们发现变量有时候定义在main函数里,有时候写在循环里,有的时候又写在自定义函数里,那么什么的变量的作用域呢

首先作用域是由花括号的位置决定的。

从函数看局部变量作用域

函数内定义的变量被称为局部变量。

局部变量的作用范围从声明开始,直到包含它的块结束(块就是{}内的代码)。

函数的参数范围涵盖整个方法。参数实际上是一个局部变量。

public class SixthScopeLesson {
    /**
     * a在整个函数内都是可见的
     * b在定义之后,直到 } 号之前都是可见的
     * @param a
     */
    public static void foo(int a) {
        System.out.println(a);
        int b = 10;
        System.out.println(b);
    }

    public static void main(String[] args) {
        foo(10);
        /**
         * 在main函数里,就访问不到foo(int a)里的a
         * 以及foo函数里定义的b
         */
    }
}
从for循环看局部变量作用域

for循环的初始化部分声明的变量,其作用范围在整个循环。

但循环体内声明的变量其适用范围是从它声明到循环体结束。它包含如下所示的变量声明:

for(int i = 0; i < 10; i++ /*这里也能访问i,但是不能访问j*/) {
    int j = i + 1;   /* 从这里到 } 都能访问到j */
    System.out.println(i);
    System.out.println(j);
}
/**
* 出了 } 之后,i和j都不能再访问
*/

嵌套代码块看变量作用域
int i = 3;
if (i >= 3) { /* 进入代码块 */
    int j = 10; /* j从这里到 } 都能访问 */
    System.out.println(i); /* 可以访问到i,因为i在上一级代码块 */
    System.out.println(j);
}
System.out.println(i); /* 可以访问到i,处于同一个代码块 */
/* 访问不到j */

这说明什么,说明子代码块可以访问上层代码块的变量。

上层代码块却不能访问子代码块的变量。

这是为什么,因为程序运行到}符号时,表示离开作用域,
{}内分配的变量将被JVM回收

讲到下一节“程序运行基石,栈”时,大家会有更好的理解。

全局变量

类的全局变量在类内都能访问到

public class SixthScopeLesson2 {
    /**
     * 定义全局静态变量
     * 变量名叫val
     * 把10赋值给val
     */
    public static int val = 10;
    
    public static void foo() {
        /**
         * 由于val是全局变量
         * 所以foo函数能访问到
         */
        System.out.println(val);
    }
    
    public static void main(String[] args) {
        /**
         * 由于val是全局变量
         * 所以main函数能访问到
         */
        System.out.println(val);
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69127.html

相关文章

  • 26天学通前端开发(配资料)

    摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...

    blair 评论0 收藏0
  • 九天学会Java,第四天,循环结构

    摘要:变量和数据类型,赋值和输出算术运算选择结构循环结构函数定义,函数调用变量作用域栈,程序运行的基石面向对象异常处理语言提供的公用包这次我们讲的循环结构。循环结构在编程中广泛使用,所以一定要了解好循环结构是怎么用的。正确的写法,是用循环结构。 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包...

    Youngs 评论0 收藏0
  • 九天学会Java,第一天,变量和数据类型,赋值和输出

    摘要:现在我们开始说编程特性第一条变量和数据类型,赋值和输出。从广为流传的说起,用建立一个新的工程在目录建一个文件变量和数据类型,赋值和输出在中,方法是应用程序的入口方法。变量包含三个知识点,新建变量是字符串类型给变量赋值。 用9天入门三门编程语言,有可能嘛,尤其是对没有基础的同学来说?对于想学好的编程的人来说,无论从哪一门语言开始入手,语言的本身其实并不是我们最应该的关心的,至少不是作为一...

    cangck_X 评论0 收藏0
  • 九天学会Java,第三天,选择结构

    摘要:选择结构变量和数据类型,赋值和输出算术运算选择结构循环结构函数定义,函数调用变量作用域栈,程序运行的基石面向对象异常处理语言提供的公用包上一节介绍了的算术运算,如加减乘除等,的运算规则跟四则运算一样。 选择结构 变量和数据类型,赋值和输出 算术运算 选择结构 = 60) { System.out.println(You have passed the exam...

    Java_oldboy 评论0 收藏0
  • 九天学会Java,第五天,函数定义函数调用

    摘要:那么这种封装的形式就叫做函数函数的格式修饰符返回值类型函数名参数类型形式参数,参数类型形式参数,执行语句返回值有可能有,有可能无函数的定义我们参考函数的格式定义几个函数因为我们要在中调用函数,所以函数也要定义成。 变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 max) { max = b; } ...

    Cheriselalala 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<