Java知识系统回顾整理01基础03变量06变量的作用域
一、变量根据所处的位置对应不同的名称
- 变量处于不同的位置,有不同的名称
- 名称分别是
- 字段,属性
- 参数
- 局部变量
- 不同名称的变量,其作用域是不一样的
二、字段,属性,Field
- 当一个变量被声明在类下面,该变量就叫做字段 或者属性、成员变量、Field
- 比如如下代码中的变量i,就是一个属性。
- 那么从第2行这个变量声明的位置开始,整个类都可以访问的到该变量
- 所以其(字段、属性、成员变量、Field)作用域就是从其声明的位置开始的整个类
public class HelloWorld { int i = 1; int j = i; //其他的属性可以访问I public System.out.println(i); //方法1里可以访问i } public System.out.println(i); //方法2里可以访问i } } |
三、参数
- 如果一个变量,是声明在一个方法上的,就叫做参数
- 参数的作用域即为该方法内的所有代码
- 其他方法不能访问该参数
- 类里面也不能访问该参数
public class HelloWorld { public System.out.println(i); } public System.out.println(i); //method2 不能访问参数i } int j = i; //类里面也不能访问参数i } |
四、局部变量
- 声明在方法内的变量,叫做局部变量
- 其作用域在声明开始的位置,到其所处于的块结束位置
public class HelloWorld { public int i = 5; //其作用域是从该行开始,到method1方法的右括号结束 System.out.println(i); { //子块 System.out.println(i); //可以访问i int j = 6;//j的作用域在子块内部 System.out.println(j); //可以访问j } System.out.println(j); //不能访问j,因为其作用域在子块内,子块外无效 } } |
五、练习及答案
题目:
属性的作用域在方法中,参数的作用域也在方法中,如果属性和参数命名相同了的话? 那么到底取哪个值?
public class HelloWorld { int i = 1; //属性名是i public System.out.println(i); } public static new HelloWorld().method1(5); //结果打印出来是 1还是5? } } |
官方答案:
输出是5,当访问的变量被多个作用域影响的时候,按照就近原则取
个人整理答案:
最新文章
- C#冒泡排序法
- Qt窗口添加鼠标移动拖拽事件
- Windows Phone App的dump文件实例分析- System.ExecutionEngineException
- (视频)《快速创建网站》 3.3 国际化高大上 - WordPress多语言支持
- HDU 4923 Room and Moor
- YII2 blockui
- c++算法应用 预备
- web发展总结
- windows 下svn 创建分支 合并分支 冲突
- 小知识点 LINQ中延时求值和主动求值的区别
- H.264中NALU、RBSP、SODB的关系 (弄清码流结构)
- spring事物的传播行为
- Getting Started with OWIN and Katana(Console 代替iis 制作 web服务的简单方案)
- C# 展开和折叠代码的快捷键
- C蛮的全栈之路-node篇(一) 环境布置
- java初学者必看经典
- shell查看并修复网络连接
- 【剑指offer】面试题28:弦乐
- MVC中使用Echart后台加载数据 实现饼图、折线图、全国地图数据,单击双击事件等
- 使用go reflect实现一套简易的rpc框架