美文网首页
No.3变量

No.3变量

作者: 醒着的码者 | 来源:发表于2016-03-28 19:42 被阅读27次

java中变量的分类:

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。局部变量在被定义的时候必须被初始化,局部变量没有默认初始值;
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

局部变量

  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;即不能被public private protected 修饰
  • 局部变量是在栈上分配的
  • 局部变量没有默认值在被声明的同时必须初始化;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;

实例变量(成员变量)

  • 声明在类中,但在方法和构造方法,代码块之外。
    什么是代码块:

http://www.cnblogs.com/chenssy/p/3413229.html

  • 在对象被实例化之后,每个实例变量的值也就确定。注:对象实例化过程:当一个对象被创建之后,虚拟机会为其分配内存,主要用来存放对象的实例变量及其从超类继承过来的实例变量,在为这些实例变量分配内存的同时,这些实例变量也会被赋予默认值。 即使我们没通过构造函数传递参数,或者set指令传递参数,那么实例变量也会被赋予默认初始值。
  • 实例变量可以声明在使用前或者使用后;因为它伴随对象创建而实例化,所以总是在第一部执行,无所谓写在前后。
  • 访问修饰符可以修饰实例变量;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。比如在main函数中必须通过' 对象.成员 '变量名来访问。
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;

类变量(被static修饰的实例变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。

静态变量跟实例变量的区别:http://www.cnblogs.com/chenssy/p/3386721.html

  • 静态变量会在对象实例化的时候堆内存中单独创建一片固定的内存控件,即所有对象实例的该静态变量值都指向这片区域。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
    静态变量在程序开始时创建,在程序结束时销毁。
  • 静态变量通过"类名.变量名" ClassName.VariableName访问,区别于实例变量对象名.变量名。但是静态变量也可以通过该方式访问,比如用于对该变量修改时。
  • 不过static修饰变量的的时候一般和final连用这样就不能被修改了。

相关文章

网友评论

      本文标题:No.3变量

      本文链接:https://www.haomeiwen.com/subject/iogjlttx.html