根据定义变量的位置的不同,可以将变量分成成员变量和局部变量:
1.成员变量定义在类中方法外(所以在类中都可以访问),局部变量定义在方法中(所以在方法中可以访问)。
2.成员变量随着对象的建立而建立,随着对象的消失而消失,存在与对象所在的堆内存中;局部变量存在与栈内存中,作用范围结束,变量空间会自动释放。
3.成员变量有默认初始化值;局部变量没有默认初始化值。
使用变量需要遵循就近原则:首先在方法中找,有就使用则在类中找。
成员变量(俗称全局变量,不区分static)。又分为两种
- 实例变量(非静态)
- 类变量(static静态变量)
代码识别静态变量(类变量),实例变量和局部变量
class jubu{
/*
成员变量(俗称全局变量):有缺省值为0
(1)类变量(静态变量)
(2)实例变量(非静态变量)
局部变量:无缺省值,需要初始化
*/
static int x;//类变量,有缺省值为0
int y;//实例变量,有缺省值为0
public static void main(String[] args){
int z=5;//局部变量,必须初始化
System.out.println(z);//访问局部变量,值为5
System.out.println(x);//访问类变量,值为0
jubu shili=new jubu();//创建实例
System.out.println(shili.y);//通过创建实例访问实例变量,值为0
}
}