变量
变量分类
实例变量
定义:在类中定义的,任何方法、构造方法、块之外的变量都是实例变量。
实例变量是独立于对象的,每个对象都有自己的一份实例变量。
实例变量存储在对象的内存之中,并且可以被该类的所有方法共享和访问。
定义规则
- 可以用四种访问修饰符进行修饰
- 可以用transient、final的特殊修饰符进行修饰,不可以使用abstract、synconized、static等特殊修饰符进行修饰。
特点
- 与对象强相关。
- 当使用
new
关键字创建对象的时候,实例变量同时也被创建;当垃圾回收器回收对象的时候,实例变量也会被销毁。 - 实例变量是属于类的,需要通过创建一个对象,然后利用对象的引用修改和处理对象的实例变量。
- 当使用
- 独立性。每个对象中的实例变量都是独立存储的,修改不会造成影响。
- 可以通过访问修饰符进行修饰。
- 实例变量不用强制初始化,它有自己的默认值。
- 与对象强相关。
全局变量
⭐Java中并不存在全局变量,常通过静态变量来起到全局访问的目的。
静态变量(类变量)
- 定义:定义在类的内部、方法的外部的属于类的变量。
- 特点
- 属于类
- 不能在方法(静态方法 or 非静态方法)中进行声明
- 只初始化一次,为静态变量的所有实例所共享
- 可以直接通过类名.变量名访问
- 属于类
局部变量
定义:定义在方法、构造器或者代码块中
特点(与实例变量存在一定的对应关系)
- 属于方法、构造器或者代码块
- 局部变量的生命周期随着方法、构造器、代码块的执行完毕而销毁
- 局部变量只能在调用这些方法、构造函数或者块的内部使用。
没有默认值(注意局部变量的初始化)
不能使用访问修饰符
- 属于方法、构造器或者代码块
成员变量
实例变量和类变量都称为成员变量。