Java变量的作用域:静态变量、全局变量和局部变量

news2024/11/28 14:50:24

变量的作用域规定了变量所能使用的范围,只有在作用域范围内变量才能被使用。根据变量声明地点的不同,变量的作用域也不同。

根据作用域的不同,一般将变量分为不同的类型:成员变量和局部变量。下面对这几种变量进行详细说明。

成员变量

Java 的成员变量有两种,分别是全局变量和静态变量(类变量)。定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。

名称

修饰

访问

生命周期

全局变量(实例变量)

无 static 修饰

对象名.变量名

只要对象被当作引用,实例变量就将存在

静态变量(类变量)

用 static 修饰

类名.变量名或对象名.变量名

其生命周期取决于类的生命周期。类被垃圾回收机制彻底回收时才会被销毁

假设在一个类中声明了 4 个变量,下面编写一个测试类输出引起变量的值改变的示例代码。

变量声明代码如下所示:测试类代码如下所示:

运行效果如下图 1 所示:

图 1 运行结果

在本例的第一段代码中定义了 4 个成员变量,由输出结果可以看出,name 和 age 显示系统默认初始化的值,website 和 URL 显示初始化的值。且用 static final 修饰的变量必须赋予初始值。

局部变量

局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。可分为以下三种:

  • 方法参数变量(形参):在整个方法内有效。

  • 方法局部变量(方法内定义): 从定义这个变量开始到方法结束这一段时间内有效。

  • 代码块局部变量(代码块内定义):从定义这个变量开始到代码块结束这一段时间内有效。

局部变量在使用前必须被程序员主动初始化值。

1)方法局部变量

声明两个局部变量并输出其值,其实现代码如下:上述实例中定义了 a 和 s 两个局部变星,其中 int 类型的 a 的作用域是整个 main() 方法,而 int 类型的变量 s 的作用域是 if 语句的代码块内,其执行结果如图 2 所示:

图 2 运行结果

如果在 if 方法外调用变量 s,则会报无法解析该变量的错误。

2)方法参数变量

作为方法参数声明的变量的作用域是整个方法。

声明一个方法参数变量,实现代码如下:在上述实例中定义了一个 testFun() 方法,该方法中包含一个 int 类型的参数变量 n,其作用域是 testFun() 方法体内。当调用方法时传递进了一个参数 3,因此其输出控制台的 n 值是 3。

3)代码块局部变量

代码块局部变量常用于 try catch 代码块中,成为异常处理参数变量。

异常处理参数变量的作用域是在异常处理块中,该变量是将异常处理参数传递给异常处理块,与方法参数变量类似。

声明一个异常处理语句,实现代码如下:在上述实例中定义了异常处理语句,异常处理块 catch 的参数为 Exception 类型的变量 e,作用域是整个 catch 块。

https://www.bilibili.com/video/BV1k44y1Z7fB/?spm_id_from=333.999.0.0

需要源码资料库的评论区扣“416”免费领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录训练营第四十二天

1.背包问题 1.1 01背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 1.1.1 用动态规划的方法解决------二维dp数组01背包 ①确定dp…

学一下这个60秒的男人

程序员求职简历,项目经验怎么写?免费修改简历、提供模板并内部推荐今天想跟大家聊一下这个“60秒”的男人。10月21日,罗辑思维发文:《罗胖60秒:10年期满,今日告别》。10年前,罗振宇开始干一件事…

智能防雷,智能防雷系统的应用研究方案

“智慧智能防雷”是近年来防雷界提出的一个全新的防雷理念,是防雷业发展的趋势。所谓“智慧智能防雷”,是将大数据分析、云存储、人工智能、移动互联网和物联网技术融入到传统防雷措施中,并通过软、硬件系统的集成,实现对特定的区…

企业微信收款后可以进行退款吗?如何操作?

很多企业使用企业微信运营,就是看中了企业微信对外收款的功能,它不仅简化了转账步骤,而且可以在必要时直接完成退款,操作简单方便。前言随着企业微信的普及度,越来越多的企业认识到企业微信运营功能的强大,…

带你了解2023新版本Internet Download Manager有哪些新功能优势

作为一款体积只有10M的下载软件,IDM却常年霸占着各软件评测榜的前列。它的界面简洁清爽,使用过程中无弹窗、无广告,小小的体积竟能将下载速度提升5倍!该软件一进入中国市场,便受到了广大用户的追捧,被大家亲…

2023年留学基金委(CSC)联合培养博士研究生项目解读及建议

近日,国家留学基金委(CSC)公布了2023年国家建设高水平大学公派研究生项目,该项目分为两部分,1.申请攻读博士学位研究生;2.申请联合培养博士研究生。本文知识人网小编仅就联合培养博士研究生部分进行解读&am…

【生信】R语言进行id转换的方法(附可直接使用代码)

本文我都默认已经下载好了表达矩阵exp了哦 代码都是直接给出来了,需要修改的地方我进行了标记 一般只要修改一下都能直接用了 方法一:下载平台数据以得到对应信息 然后进入官网https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi,在这里我以G…

【数据结构】4.4 数组

4.4.1 数组的定义 数组: 按照一定格式排列起来的,具有相同类型的数据元素的集合。 一维数组: 若线性表中的数据元素为非结构的简单元素,则称为一维数组。逻辑结构:线性结构,固定长度的线性表。声明格式…

如何学习微服务架构?(项目学习)

哪些项目适合使用微服务架构?对于一般的公司来说,微服务的实践有着很大的技术挑战,所以并不是所有的公司都适合将整体架构拆分成微服务架构。一般来说,微服务架构更适合于未来具有一定扩展复杂度、具有大量增量用户期望的应用&…

最新综述:基于语言模型提示学习的推理

©PaperWeekly 原创 作者 | OE-Heart引言推理能力是人类智能的核心能力之一。随着预训练技术的不断发展,大模型辅之以提示学习(如 Chain-of-Thought Prompting [1])涌现出一系列的惊人的推理能力,引起了学术界、工业界学者的…

动态规划——数位dp

数位dp 文章目录数位dp概述题目特征基本原理计数技巧模板例题度的数量思路代码数字游戏思路代码不要62思路代码概述 数位是指把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 0~9&#xf…

unity 前向渲染 渲染阴影原理

下面情况默认是 前向渲染路径,场景中平行光开启了阴影方式原理备注ShadowMap把相机放到光源的位置,那么场景中该光源的阴影区域就是那些相机看不到的位置得到的是:场景中距离光源最近的表面位置(深度信息)unity中专门的…

一个基于SpringBoot+vue的学生信息管理系统详细设计

一个基于SpringBootvue的学生信息管理系统详细设计 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

【docker08】本地镜像发布到阿里云

本地镜像发布到阿里云流程 1.流程 2.镜像的生成方法 基于当前容器创建一个新的镜像,新功能增强命令: docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]] 3.将本地镜像推送到阿里云 3.1本地镜像素材原型 3.2阿里云开发者平台 进入阿里云找到控制台进…

Word控件Spire.Doc 【Table】教程(2):如何设置Word表格列宽

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

CV中一些常见的特征点

Harris、SIFT、SURF、ORB特征点总结本篇博客介绍一些常见的特征点。Brief描述子:编辑切换为居中添加图片注释,不超过 140 字(可选)编辑切换为居中添加图片注释,不超过 140 字(可选)编辑切换为居…

基于JavaSpringboot+Vue实现前后端分离房屋租赁系统

基于JavaSpringbootVue实现前后端分离房屋租赁系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码…

已解决Python pandas.read_excel读取Excel文件报错

已解决(Python pandas.read_excel读取Excel文件报错)io ExcelFile(io,storage_optionsstorage.options, engineengine) 文章目录报错代码报错原因解决方法帮忙解决报错代码 粉丝群一个小伙伴想用pandas.read_excel读取Excel文件&#xff…

Linux文件管理---磁盘上文件如何管理(inode)

文章目录磁盘与文件的关系磁盘的逻辑结构与操作系统关系真实的磁盘逻辑结构一台计算机磁盘上的文件是非常多的,这些文件该如何进行管理?我们想打开某个磁盘上的文件究竟是如何找到该文件的?磁盘与文件的关系 这就是磁盘的物理模型和存储结构 …

Ubuntu20.04安装Mysql5.7

目录 1、下载安装包 2、解压 3、删除测试安装包 4、开始安装Mysql 4.1、如果碰到缺少依赖处理方法,没有碰到忽略即可 5、配置MySQL 5.1、查看mysql状态 5.2、设置root密码 1、下载安装包 wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.3…