Java变量类型

变量类型

java变量类型分为三种:

  • 局部变量
  • 实例变量
  • 类变量

局部变量

  • 在方法、构造方法、语句块1 中声明
  • 在声明时,必须初始化才能使用,否则编译器报错
  • 在方法、构造方法、语句块中创建时创建变量,销毁时销毁变量
  • 不能用访问修饰符修饰
  • 只能在方法、构造方法、语句块内访问
  • 局部变量是在栈上面分配的

实例变量

  • 在类中,方法、构造方法、语句块外声明
  • 有默认值,整型初始值为0,浮点数初始值为0.0,布尔初始值为false,引用类型初始值为null
  • 当一个对象实例化后,成员变量跟着确定
  • 实例变量在对象创建时创建,销毁时销毁
  • 实例变量应该至少有一个方法、构造方法、语句块引用,使得外界可以通过这些方式获取成员变量信息
  • 实例变量可用访问修饰符修饰
  • 实例变量可以声明在使用前和使用后2
  • 实例变量对于本类中的方法、构造方法、语句块都是可见的。一般情况应该将实例变量设为私有private3。通过访问修饰符4可以使实例变量对子类可见。
  • 实例变量不是static

类变量

  • 类变量也称为静态变量,用static修饰,在类中,在方法、构造方法、语句块外声明。
  • 无论类创建了多少个实例,类只拥有一份类变量的拷贝。
  • 静态变量除了被声明为常量以外很少使用。常量是public/private,final和static修饰的变量。常量初始化后不能改变。
  • 静态变量储存在静态区。
  • 静态变量在程序开始时创建,结束时销毁。
  • 默认值和实例变量相似。
  • 类变量被声明为public static final 时,变量名称一般都为大写。如果不是public和final时,其命名方式就和实例变量、局部变量一致。

问题总结

  1. 语句块是什么?
  2. 实例变量可以声明在使用前和使用后,这句话是什么意思?
  3. 为什么一般情况将实例变量设为私有?
    很多答案是说出于安全性考虑,不让外部随便修改类中的变量,只能通过方法访问和修改变量。
    http://www.cnblogs.com/cpm320/archive/2012/09/14/2684600.html

    参考之下我的总结:
    实例变量私有,可以改变变量的可控性,外部类访问该对象的私有实例变量必须通过一个方法来访问,为变量包装一层,该层可控制变量的取值。
    有一个留言说的很好:
    它可能让用户在类里面的数据在实例化之后的可控性。
    就是说编程者可以选择只读或者只写 或者读写都行
    但是说到底 通过我现在的理解为;它更能体现安全性上从而来让程序显得更有条理。
  4. 访问修饰符修饰的实例变量的各个可访问域是什么?
    -默认 同包同类可访问
    -public 同类、同包、不同包、子类都可访问
    -private 仅在本类下可访问
    -protected 子类、同一个包的类可访问
访问级别 访问修饰符 同类 同包 子类 不同的包
公有 public
受保护的 protected
默认 无修饰符
私有 private

你可能感兴趣的:(Java基础从头学)