Java——成员变量和局部变量

成员变量:在类里定义的变量,作用于整个类。
局部变量:在方法或代码块里定义的变量,作用在方法或语句中。

这里写图片描述

实例变量和类变量的区别:
1、存放位置
类变量随着类的加载而存在方法区中;实例变量随着对象的建立而存在堆内存中
2、生命周期
类变量声明周期最长,随着类的消失而消失;实例变量随着对象的消失而消失。

注意:
1、一个类里不能定义两个同名的成员变量,即使一个是类变量,一个是实例变量也不行。
2、一个方法里不能定义两个同名的方法局部变量,方法局部变量与形参也不能同名。
3、同一个方法中不同代码块内的代码局部变量可以同名。

4、如果先定义代码局部变量,后定义方法局部变量,前面定义的代码局部变量和后面定义的方法局部变量可以同名。
5、Java允许局部变量和成员变量同名,如果方法里的局部变量和成员变量同名,局部变量会覆盖成员变量,如果需要在这个方法里引用被覆盖的成员变量,则可以使用this(对于实例变量)或类名(对于类变量)作为调用者来限定访问成员变量。

局部变量不属于任何类或实例,因此它总是保存在其所在的方法的栈内存中。

使用成员变量的情况:
1、如果需要定义的变量是用于描述某个类或某个对象的固有信息的,如身高体重

2、如果在某个类中需要一个变量来保存该类或实例运行时的状态信息

3、如果某个信息在某个类的多个方法之间共享

猜你喜欢

转载自blog.csdn.net/zqq7525/article/details/82225757