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,当访问的变量被多个作用域影响的时候,按照就近原则取
个人整理答案:

Java知识系统回顾整理01基础03变量06变量的作用域的更多相关文章
- Java知识系统回顾整理01基础03变量03字面值
一.字面值定义 创建一个Hero对象会用到new关键字,但是给一个基本类型变量赋值却不是用new. 因为基本类型是Java语言里的一种内置的特殊数据类型,并不是某个类的对象. 给基本类型的变量赋值的 ...
- Java知识系统回顾整理01基础03变量02基本变量类型
一.变量类型分类 一个变量的类型,决定了该变量可以包含什么样的值. Java中有八种基本类型,都是Java语言预先定义好的,并且是关键字. 这八种基本类型分别是: 整型 (4种) 字符型 (1种) ...
- Java知识系统回顾整理01基础03变量07final关键字
一.final赋值 final 修饰一个变量,有很多种说法,比如不能改变等等 准确的描述是 当一个变量被final修饰的时候,该变量只有一次赋值的机会 二.在声明的时候赋值 i已经被赋值为5,所以这里 ...
- Java知识系统回顾整理01基础03变量05变量命名规则
一.命名规则 变量命名只能使用字母 .数字. $. _ 变量第一个字符 只能使用: 字母. $. _ 变量第一个字符 不能使用数字 注:_ 是下划线,不是-减号或者-- 破折号 int a= 5; i ...
- Java知识系统回顾整理01基础03变量04类型转换
一.不同类型之间的数据可以互相转换,但是要满足一定的规则 二.数据类型转换规则 转换规则如图所示 精度高的数据类型就像容量大的杯子,可以放更大的数据 精度低的数据类型就像容量小的杯子,只能放更小的数 ...
- Java知识系统回顾整理01基础03变量01变量定义
定义: 变量:用来命名一个数据的标识符 一.什么是变量? 用具体实例定义变量 变量的定义是: 用来命名一个数据的标识符 1949 这是一个数字,代表某年 如果要命名这个数字,在java里就会写成: i ...
- Java知识系统回顾整理01基础03变量09块
一.定义 块:从{ 开始 到对应的} 结束,即一个块 public class HelloWorld { //类对应的块 public static void main(String[] args) ...
- Java知识系统回顾整理01基础03变量08表达式
一.以 ; 结尾的一段代码,即为一个表达式 表达式是由变量.操作符以及方法调用所构成的结构.如下所示: int i = 5; System.out.println(5); 都是表达式 public c ...
- Java知识系统回顾整理01基础04操作符06三元运算符
一.三元运算符 表达式?值1:值2 如果表达式为真 返回值1 如果表达式为假 返回值2 if语句学习链接:if语句 public class HelloWorld { public static vo ...
随机推荐
- 安装Apache所踩的的坑
刚开始接触PHP等一些脚本语言,需要建立一个本地的服务器,变进行安装了Apache.在其中碰到了诸多问题,和大家一一分享一下. 一.刚解压完成后使用cmd面板进入解压完成的apache的bin目录下, ...
- Typed Lua
https://the-ravi-programming-language.readthedocs.io/en/latest/ravi-overview.html https://github.com ...
- HOOK SSDK
HOOK SSDT主要代码 #pragma once #include <ntifs.h> /* * * * * * * * * * * * * * * * * * * * * * * * ...
- P1090 合并果子(哈弗曼树)
题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可 ...
- 19_Python算法
1.冒泡算法 list = [1, 5, 2, 6, 9, 3, 4, 0] print(len(list)) # conunt = 1 while conunt < len(list): fo ...
- C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP
C#发送邮件三种方法,Localhost,SMTP,SSL-SMTP 通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送: 1. ...
- 转载:MYSQL数据库三表联查的SQL优化过程
地址:https://database.51cto.com/art/202002/609803.htm 作者用了三张有设计缺陷的表做例子,使得优化效果空前,优化手段仅为拨乱反正和加索引,此行可为一哂.
- Linux系统环境基于Docker搭建Mysql数据库服务实战
开放端口规划: mysql-develop:3407 mysql-test: 3408 mysql-release: 3409 ps: 1.不推荐使用默认端口-3306,建议自定义端口 2.如果采用阿 ...
- 掌控安全sql注入靶场pass-05
1.判断注入点 1 and 1=1 1 and 1=2 考虑存在布尔盲注 布尔盲注解释 当不能像前面那样直接在网页中显示我们要的数据时就需要用到盲注,来得到数据库之类的名字.基于布尔的盲注就是通过判断 ...
- [Leetcode]585. 2016年的投资(MySQL)
题目 写一个查询语句,将 2016 年 (TIV_2016) 所有成功投资的金额加起来,保留 2 位小数. 对于一个投保人,他在 2016 年成功投资的条件是: 他在 2015 年的投保额 (TIV_ ...