在Java中,变量可分为成员变量和局部变量两种。
1.局部变量
局部变量一般是指在方法体内部定义的变量,其作用域是在方法块内部有效。局部变量在使用时,必须先初始化然后才能使用,否则程序将不能顺利编译通过。
2.成员变量
成员变量是指在类中定义的变量,也就是指属性,其作用域是在整个类中有效。成员变量在定义时可以不指定初始值,系统可以按默认原则初始化,初始化的原则如下所示:
注:被final修饰并没有被static修饰的成员变量必须显式赋初始值。
3.成员变量与局部变量之间的区别:
- public,protect,private,static等修饰符可用于修饰成员变量,但不能用于修饰局部变量,两者都可以用final修饰;
- 成员变量存储在堆内存中,局部变量存储在栈内存中;
- 成员变量在整个类中有效,局部变量在方法体中有效,在方法体之外不可见;
- 成员变量可以默认初始化,局部变量必须显式初始化。