从定义位置、生命周期、作用域、访问修饰符的使用、默认值、访问方式,这六个方面比较java中的局部变量、实例变量、类变量。
局部变量
定义位置:在方法、构造函数、代码块中声明的变量,即是局部变量;
生命周期:程序进入方法、构造函数、代码块中,局部变量创建,程序退出,局部变量销毁;
作用域:仅限于当前方法、构造函数、代码块中;
访问修饰符:局部变量不能使用访问修饰符;
默认值:局部变量没有默认值,在第一次使用前必须初始化。
全局变量
定义位置:在类中声明,但要放在方法、构造函数、代码块之外;
生命周期:通过new关键字创建对象时,实例变量随之创建,对象销毁时,实例变量随着销毁;
作用域:在当前类中都是可见的(也叫成员变量);
访问修饰符:可以使用访问修饰符;
默认值:数值型是0、布尔型是false、引用类型是null;
访问方式:通过对象访问。
类变量
定义位置:在类中声明,并用static修改(也叫静态变量),但要放在方法、构造函数、代码块之外;
生命周期:程序启动时,类变量创建,程序结束时,类变量销毁;
作用域:在当前类中都是可见的
访问修饰符:可以使用访问修饰符,建议声明成public;
默认值:数值型是0、布尔型是false、引用类型是null;
访问方式:可以通过对象访问,也可以通过类名访问。
注意:
在实际开发中,除了声明常量,很少用到静态变量。常量的声明方式:public static final VARIABLE_NAME。常量的名字要全部大写。
补充
- 全局变量分为实例变量和类变量;
- 类变量也可以称为静态的成员变量;非静态的成员变量是实例变量,也叫对象变量;
- 类变量是该类的实例化对象共有资源,一个对象改变了它的值,其他对象获得是改变后的值,所以类变量通常用public修饰;
- 实例变量则属于一个对象私有,某一个对象改变了它所包含的实例变量的值,不会影响其他对象中实例变量的值;