一、成员变量和局部变量的区别
成员变量(俗称全局变量):
1.成员变量定义在类中,在整个类中都可以访问。
2.成员变量随着对象的建立而建立,随着对象的消失而消失,存在对象的堆内存中。
3.成员变量有默认初始化值,各种类型默认初始值如下:
Boolean false
Char '\u0000'(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d
局部变量:
1.局部变量只定义在局部范围内,如类的某个方法函数,语句块中,只在所在的方法函数语句块中起作用。
2.局部变量存在于栈内存中,作用的范围结束,变量空间就会自动释放。
3.局部变量没有默认初始值。
(注意:如果一个局部变量只负责接收一个表达式的值可以不初始化,但参与运算和直接输出等其他情况的局部变量需要初始化,如果不初始化直接使用会报错
)
在使用变量的时候需要遵循的原则为:就近原则
首先在局部变量中找,有就使用;接着在成员变量中找
二、成员变量包括:
1.类变量(又称静态变量):独立于方法之外的变量,用static修饰。
2.实例变量:独立于方法之外的变量,不过没有static修饰。
实例,如下图:
输出的结果为:
局部变量local的值:4
实例变量instance:0
当前类变量variable:0
其他类变量variable:0