Java中变量的分类分为:成员变量和局部变量。如图:
- 成员变量
成员变量是类里定义的变量,但在方法、构造方法和语句块之外。
其包括实例变量和类变量:
- 实例变量:作用域与对应实例的生存范围相同,访问修饰符可以修饰实例变量。
- 类变量:作用域与这个类的生存范围相同,静态变量可以通过:ClassName.VariableName的方式访问。
代码示例:
- 局部变量
局部变量是方法、构造方法或语句块里定义的变量。
其包括形参、方法局部变量、代码块局部变量:
- 形参:定义方法签名时定义的局部变量,作用域在整个方法内有效。
- 方法局部变量:方法体内定义的局部变量,作用域是从定义该变量的地方生效,到该方法结束时失效。
- 代码块局部变量:代码块中定义的局部变量,作用域从定义该变量的地方生效,到该代码块结束时失效。
示例代码:
- 成员变量与局部变量的区别
成员变量:
- 成员变量定义在类中,在整个类中都可以被访问。
- 成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
- 成员变量有默认初始化值,如:数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。
局部变量:
- 局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
- 局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
- 局部变量没有默认初始化值。