首页 > 技术文章 > 成员变量、类变量、局部变量的区别

brant 2017-07-19 23:08 原文

:成员变量和局部变量的区别

1、范围:

员变量定义在类中,在整个类中都可以被访问。

局部变量定义在局部范围内,如:函数内,语句内等。

2、存储:

成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。

3、默认值:

成员变量有默认初始化值; 局部变量没有默认初始化值 。

   

二:成员变量和静态变量的区别:

   1、成员变量存在于堆内存中。

        静态变量存在于方法区中。

2、成员变量所属于对象。所以也称为实例变量。

        静态变量所属于类。所以也称为类变量。

   3、成员变量随着对象创建而存在。随着对象被回收而消失。

        静态变量随着类的加载而存在。随着类的消失而消失。

   4、成员变量只能被对象所调用 。

        静态变量可以被对象调用,也可以被类名调用。

 

注意:

1、 如果局部变量的名字和成员变量的名字相同, 要想在该方法中

2、 静态方法只能访问静态成员,不可以访问非静态成员。

      因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

   3、静态方法中不能使用this,super关键字。

      因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

推荐阅读