成员变量、类变量、局部变量的区别
一:成员变量和局部变量的区别
1、范围:
员变量定义在类中,在整个类中都可以被访问。
局部变量定义在局部范围内,如:函数内,语句内等。
2、存储:
成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、默认值:
成员变量有默认初始化值; 局部变量没有默认初始化值 。
二:成员变量和静态变量的区别:
1、成员变量存在于堆内存中。
静态变量存在于方法区中。
2、成员变量所属于对象。所以也称为实例变量。
静态变量所属于类。所以也称为类变量。
3、成员变量随着对象创建而存在。随着对象被回收而消失。
静态变量随着类的加载而存在。随着类的消失而消失。
4、成员变量只能被对象所调用 。
静态变量可以被对象调用,也可以被类名调用。
注意:
1、 如果局部变量的名字和成员变量的名字相同, 要想在该方法中
2、 静态方法只能访问静态成员,不可以访问非静态成员。
因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。
3、静态方法中不能使用this,super关键字。
因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。