java变量作用域Scope

一、变量Scope

作用域同时决定了它的“可见性”以及“存在时间”。在C,C++和Java里,作用域是由花括号的位置决定的。变量的作用域分为四个级别:类级、对象实例级、方法级、块级。

 

二、类级Scope

类级变量又称全局级变量或静态变量,需要使用static关键字修饰。类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化。

package testdemo;
/**** @author MK*/
public class TestDemo {//类变量public static int classVariable;}

 

三、对象实例级Scope

对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。

package testdemo;
/**** @author MK*/
public class TestDemo {//实例变量public int instanceVariable;}

 

四、方法级Scope

方法级变量就是在方法内部定义的变量,就是局部变量。

package testdemo;
/**** @author MK*/
public class TestDemo {/*** 静态方法*/public static void staticMethod() {int localVariable=0;}/*** 实例方法*/public  void instanceMethod() {int localVariable=0;}
}

 

五、块级Scope

块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for、while 语句的块。块是指由大括号包围的代码。

package testdemo;/**** @author MK*/
public class TestDemo {/*** 实例代码块*/{int localVariable = 0;}/*** 静态代码块*/static {int localVariable = 0;}/*** 静态方法*/public static void staticMethod() {{int localVariable = 0;}}/*** 实例方法*/public void instanceMethod() {if (12 > 0) {int localVariable = 0;}}
}

 

注意:

1、正确

package testdemo;/**** @author MK*/
public class TestDemo {int variable=0;/*** 实例方法*/public void instanceMethod() {int variable = 0;}
}

 

2、正确

package testdemo;/**** @author MK*/
public class TestDemo {int variable=0;/*** 实例方法*/public void instanceMethod() {{int variable = 0;}}
}

 

3、错误,两个局部变量作用域相交,这与c/c++的局部变量隐藏不一样

package testdemo;/**** @author MK*/
public class TestDemo {int variable=0;/*** 实例方法*/public void instanceMethod() {int variable = 0;{int variable = 0;//错误
      }  }
}

 

4、正确

package testdemo;/**** @author MK*/
public class TestDemo {int variable=0;/*** 实例方法*/public void instanceMethod() {{int variable = 0;} int variable = 0;}
}

 

总结:

(1)在同一作用域范围的包裹下成员变量名和局部变量名是可以变量名相同的。

(2)在同一个作用域范围的包裹下局部变量和局部变量不可以变量名相同(作用域内不能重复命名)。

(3)在方法中使用变量的时候如果不指明使用成员变量还是局部变量,那么默认的就是使用局部的那个变量,但是如果局部变量超出了它本身的作用域范围则会失效,被JVM垃圾回收,那么则可以重复命名此变量,并使用最新定义的这个局部变量。

 

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

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

相关文章

XML——解析XML文档

【0】README 0.1)本文描述 转自 core java volume 2, 旨在理解 XML——解析XML文档 的基础知识; 0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/chapter2…

计算机维修与维护入门,计算机组装与维护基础知识

《计算机组装与维护基础知识》由会员分享,可在线阅读,更多相关《计算机组装与维护基础知识(5页珍藏版)》请在人人文库网上搜索。1、计算机组装与维护基础知识关键考点:CPU主板内存硬盘显卡CMOS硬件组装操作系统学生姓名:总分&…

java oauth2.0_OAuth 2.0 Java指南:5分钟保护您的应用程序安全

java oauth2.0使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 现代应用程序依赖于用户身份验证,但是它可能给Java开发人员带来困难的挑战,以及…

Java编程规范

一、常见命名规则 (1)匈牙利命名法 比 较著名的命名规则是匈牙利命名法,但这种命名法对于跨平台移植简直是灾难。这种命名方法是由Microsoft程序员查尔斯西蒙尼(Charles Simonyi) 提出的。其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。匈牙利…

XML—— 验证XML文档

【0】README 0.0)本文文字描述转自 core java volume 2 , 旨在理解 XML—— 验证XML文档 的基础知识 0.1)problemsolution (干货——不推荐使用DOM 技术解析XML) 0.1.1)problem:如果仅仅按照…

计算机数据链路层教案,第三章 数据链路层(2) 新.ppt

文档介绍:计算机通信网20112011年教案年教案作者:段景山作者:段景山杨宁杨宁毛玉明毛玉明2第三章数据链路层??链路层功能链路层功能??成帧成帧??差错检测和纠正差错检测和纠正??差控与流控协议差控与流控协议??协议描述与验证协议描述与验证??示例示例?…

java导出javadoc文档

一、注释 (1)文档注释的格式化 生成的文档是 HTML 格式,而这些 HTML 格式的标识符并不是 javadoc 加的,而是我们在写注释的时候写上去的。比如,需要换行时,不是敲入一个回车符,而是写入 <br>&a…

java内核_测量时间:从Java到内核再到

java内核问题陈述 当您深入研究时,即使是最基本的问题也会变得很有趣。 今天,我想深入研究一下Java时间。 我们将从Java API的最基础知识开始,然后逐步降低堆栈:通过OpenJDK源代码glibc一直到Linux内核。 我们将研究各种环境下的性…

XML——文档类型定义(DTD-Document Type Definition)

【0】README 0.1)本文文字描述转自 core java volume 2 , 旨在理解 XML——文档类型定义(DTD-Document Type Definition) 的基础知识; 0.2) for source code, please visit https://github.com/pacosonTa…

职称计算机考试 数量,职称计算机考试WPS基础考点:自动求和

职称计算机考试WPS基础考点:自动求和导语:随着信息技术的发展,计算机日益走进人们的工作、学习和生活,成为专业技术人员不可或缺的工具。下面我们一起来看看职称计算机考试WPS的内容吧。1. 对不相邻单元格的数据求和假如要将单元格…

java静态导入

一、静态导入 在Java 5中,import语句得到了增强,以便提供甚至更加强大的减少击键次数功能,虽然一些人争议说这是以可读性为代价的。这种新的特性成为静态导入。当你想使用static成员时,可以使用静态导入(在API中的类和…

java流写入数据库_成为Java流大师–第4部分:数据库流

java流写入数据库SQL一直是一种声明性语言,而Java长期以来势在必行。 Java流改变了游戏规则。 通过本动手文章编写您的方式,并学习如何使用Java流对RDBMS数据库执行声明性查询,而无需编写任何SQL代码。 您会发现,Java流和SQL命令的…

XML——XML Schema

【0】README 0.0)本文文字描述转自 core java volume 2 , 旨在理解 XML——XML Schema 的基础知识 ;(本文不涉及源代码, 很遗憾,以后会补充) 【1】XML Schema 相关 1.0)为什么引入…

怎么为pdf文件添加水印?

怎么为pdf文件添加水印?PDF是一种很好用的文件格式,这种格式能够很有效的保护我们的文件,但有时可能还会被破解,这种时候在PDF上添加水印就是比较好的方法。 综上所述,PDF是保密性很强的文件,但添加水印能够…

皖西学院计算机协会组织部,皖西学院

皖西学院关于卢义忠同志兼任安徽省高校后勤协会理事的请示安徽省委组织部:根据《关于进一步规范党政机关和企事业单位领导干部兼任社会组织职务审批管理的通知》(皖组通字〔2016〕40号)等文件精神,经皖西学院党委1月17日研究建议:因校领导分工调整&#…

java 用流创建流_成为Java流大师–第1部分:创建流

java 用流创建流在许多情况下,声明性代码(例如,具有Streams的功能组合)提供了出色的代码指标。 通过该动手实验文章系列进行编码,并成为Java Streams的主教练,从而成为一名更好的Java程序员。 Streams的整…

java的for循环

一、普通for循环(1)for循环语法 for(initialization; condition; update){statements;} (2)语法解释 1、for语句执行时,首先执行初始化操作(initialization)&#xff0c…

XML——使用 XPath来定位信息+使用命名空间

【0】README 0.1)本文文字描述转自 core java volume 2 , 旨在理解 XML——使用 XPath来定位信息使用命名空间 的基础知识 ; 0.2) for detailed XPath info : please visit ( http://www.ruanyifeng.com/blog/2009/…

计算机教室英语怎么读音,网络教室,network classroom,音标,读音,翻译,英文例句,英语词典...

多媒体教室1.多媒体教室基本组成多媒体教室由多媒体计算机、液晶投影机、数字视频展示台、中央控制系统、投影屏幕、音响设备等多种现代教学设备组成。(1)多媒体液晶投影机是整个多媒体演示教室中最重要的也是最昂贵的设备,它连接着计算机系统、所有视频输出系统及数…

算法一之简单选择排序

一、 选择排序的思想 选择排序的基本思想是:每一趟在n-i1(i1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。简单选择排序的基本思想&a…