java中成员变量和局部变量

一个类里不能定义两个重名的成员变量
java允许局部变量和成员变量名称相同,如果方法里的局部变量和成员变量相同,局部变量会覆盖成员变量,这时可以通过如下语法访问成员变量

//类Field
类名.变量名
//实例Field
this.变量名

成员变量

系统加载类或者创建该类的实例时会自动为类Field分配内存空间并自动为成员变量指定初始值。
实例Field是在创建实例时分配内存空间并指定初始值的。
成员变量是在堆内存中的
成员变量指的是在类范围内定义的变量,也就是Field;

  • 用static修饰的成员变量属于类,称为类Field
  • 没有用static修饰的成员变量属于实例化该类的实例

类Field

类Field的生命周期和该类相同。
在程序中通过如下语法访问类Field

类名.类Field名

也可以通过实例访问类Field

实例名.类Field名

由于类Field属于类而不属于实例,当其他实例修改类Field值时,所有类实例获取到的类Field的值都会被改变。

实例Field

实例Field的生命周期和该实例的声明周期相同
实例Field的访问语法如下

实例名().实例Field名

局部变量

局部变量定义后必须显式初始化之后才能使用,这意味着定义一个局部变量后系统并没有给这个变量分配内存空间,在显示初始化值之后才会给该变量分配内存空间并将值存入内存。
局部变量总是保存在其所在方法的栈内存中
局部变量根据定义形式不同被分为三类

  • 形参
    在定义方法签名时定义的变量,作用于在整个方法中有效
  • 方法局部变量
    在方法体内部定义的变量,作用域从定义该变量的地方生效,到方法结束时失效
  • 代码块局部变量
    在代码块中定义的变量,作用域从定义变量的地方生效,到代码块结束时失效
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值