成员变量 局部变量

java局部变量和成员变量

在java中,局部变量必须初始化;成员变量可以不用初始化,系统自动初始化。

class A{
  int a; //成员变量
  public static void main (String args){
          int b; //局部变量
  }
}

区别:

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

2)声明成员变量时可以不初始化(被final修饰且没有static的必须显式赋值),而局部变量必须手动初始化

3)成员变量可以被public、protected、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用于常量的声明,规范要求常量的变量名是大写的。

static静态变量:

http://www.cnblogs.com/dongzhiquan/archive/2009/07/21/1994792.html

 静态方法和一般方法的区别:

从使用上来说,主要有3点区别:
1、在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

2、静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。

3、程序的static块只能调用静态方法,不能调用实例的方法。

如果要追溯其区别的根源,可以这样理解:在编译期间静态方法的行为就已经确定,而实例方法只有在运行期间当实例确定之后才能确定
posted @ 2016-09-23 10:39  jingmengxintang  阅读(897)  评论(0编辑  收藏  举报