学习啦 > 知识大全 > 知识百科 > 百科知识 > java中成员变量和局部变量的区别

java中成员变量和局部变量的区别

时间: 映芳735 分享

java中成员变量和局部变量的区别

  成员变量和局部变量都是Java中的两种变量,那么,它们两者具体上有哪些区别呢?

  一、定义

  成员变量:作为类的成员而存在,直接存在于类中。

  局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

  局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

  二、java中成员变量和局部变量的区别

  1.成员变量在类中,局部变量在方法中。

  2.声明成员变量时可以不初始化(被final修饰且没有static的必须显式赋值),而局部变量必须手动初始化。 3.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可 以定义成final型。

  4.成员变量存储在堆,局部变量存储在栈。

  5.存在时间不同。

  三、小编举例

  类变量是类中独立于方法之外的变量,用static 修饰。

  实例变量也是类中独立于方法之外的变量,不过没有static修饰。

  局部变量是类的方法中的变量。

  看下面的伪代码说明:

  public class Variable{

  static int allClicks=0;//类变量

  String str="hello world";//实例变量

  public void method(){

  int i =0;//局部变量

  }

  }

  实例变量也称为:“域”,“成员变量”,在实体类或数据类中被称为“属性”或“字段”。当实例变量可以改变时,被称为对象的状态。

  final用于常量的声明,规范要求常量的变量名是大写的。

  statci 在java 里面用于对类方法和属性进行修饰,其作用是什么呢?

  有两种情况是non-static无法做到的,这时你就要使用statice。

  第一种:你希望不论产生了多少个对象,或不存在 任何对象的情形下,那些特定数据的存储空间都只有一份;

  第二种:你希望某个函数不要和class object绑在一起。即使没有产生任何object,外界还是可以调用其static函数,或是取用其static data。

537296