当前位置: 首页 > news >正文

成员变量和for循环里面的变量不冲突原因

今天写项目,发现一个类中有一个成员变量与for循环块中的局部变量重名了,但是也没有报错,功能也是正常的,然后了解了一下原因:

成员变量和 for 循环块中的变量不冲突的原因在于它们的作用域(Scope)不同。在编程中,变量的作用域决定了变量的可见性和生命周期。具体来说:

成员变量的作用域:

  • 成员变量(也称为字段或实例变量)是类的属性,作用域是整个类。它们在类的所有方法中都是可见的,并且在对象的整个生命周期内存在。
    成员变量的声明和初始化通常在类的定义中,方法的外部。
    for 循环块中变量的作用域:

  • for 循环中的变量是局部变量,其作用域仅限于循环块内部。这意味着这些变量只能在 for 循环的代码块中访问。
    一旦 for 循环结束,循环变量就会超出其作用域,无法再访问。
    具体来看一个例子:

public class Example {private int memberVariable = 10;public void method() {for (int i = 0; i < 5; i++) {// 'i' 是 for 循环的局部变量,其作用域仅限于这个 for 循环块内部System.out.println("i: " + i);System.out.println("memberVariable: " + memberVariable);}// 在这里访问 'i' 会导致编译错误,因为 'i' 的作用域已经结束// System.out.println(i); // 编译错误}
}

在这个例子中:

memberVariable 是类的成员变量,它在整个类中都是可见的。

i for循环的局部变量,它的作用域仅限于 for 循环块内部。

因为这两个变量的作用域不同,memberVariablefor 循环中的i不会相互冲突。memberVariable 在整个类中都可以访问,而i仅在 for 循环内部有效。即使变量名相同,它们也不会互相影响,因为它们的作用域完全不重叠。

这种作用域的区分使得在同一个类中可以使用相同的变量名而不会导致冲突,从而提高了代码的可读性和可维护性。

http://www.lryc.cn/news/374815.html

相关文章:

  • 如何使用任意浏览器远程访问本地搭建的Jellyfin影音平台
  • CEM美国培安消解罐内管 CEM40位 55ML 微波消解罐
  • 使用 Selenium 保持登录会话信息
  • 程序员画图工具?那必然是你了!!【送源码】
  • k8s nginx.conf配置文件配置
  • XSKY 在金融行业:新一代分布式核心信创存储解决方案
  • 第9章 类
  • Elasticsearch 第二期:倒排索引,分析,映射
  • 函数的一点点习题
  • 使用Java计算Linux系统中sum命令得到的校验值
  • 鸿蒙开发电话服务:【 @ohos.telephony.sms (短信服务)】
  • 算法02 递归算法及其相关问题【C++实现】
  • Sermant标签路由能力在同城双活场景的应用
  • javascript-obfuscator混淆
  • GitHub项目里的api
  • k8s可练习实验分享
  • 浏览器支持http-flv协议
  • 一千题,No.0077(计算谱半径)
  • 安卓/iOS/Linux系统影音边下边播P2P传输解决方案
  • STORM论文阅读笔记
  • Web前端遇到的难题:挑战与突破之路
  • C#防止多次注册事件
  • 【UML用户指南】-16-对高级结构建模-构件
  • 双Token方案实现Token自动续期(基于springboot+vue前后端分离项目)
  • 别太小看“静态免杀“
  • SQL server 内连接 左连接 右连接 全连接 语句
  • k8s中的pod域名解析失败定位案例
  • jingxiang制作
  • 【数据结构】线性表之《顺序表》超详细实现
  • 开源模型应用落地-音乐生成模型-suno/bark深度使用-AIGC应用探索(六)