成员变量 局部变量
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块只能调用静态方法,不能调用实例的方法。
如果要追溯其区别的根源,可以这样理解:在编译期间静态方法的行为就已经确定,而实例方法只有在运行期间当实例确定之后才能确定