Java 语言中若变量按声明的位置分类,可以分为:成员变量、局部变量,而成员变量又分为:实例变量、全局变量。实例变量是指不使用static修饰的变量,全局变量是指使用static修饰的变量。 局部变量包括:方法内声明的变量、方法的形参、构造器的形参、代码块内声明的变量。
接下来我们对比一下成员变量和局部变量:
相同点:
1.声明格式相同
格式: 数据类型 变量名 = 变量值
2.变量,必须先声明后使用
3.变量,都有其作用域
不同点:
1.声明的位置不同:
成员变量:直接声明在类的内部
局部变量:方法内声明的变量
方法的形参、构造器的形参
代码块内声明的变量。
2.权限修饰符的使用:
成员变量:可以在声明的类型前,指明权限修饰符。
权限修饰符有:private、public、protected、缺省
局部变量:不可以声明权限修饰符
3.默认初始化值:
成员变量:在声明时,如果没有显示赋值。则其有默认初始化值。
byte/short/int/long : 0
float/double : 0.0
char : 0 或 '\u0000'
boolean : false
引用类型: null
局部变量:在使用变量前,一定要进行显示初始化。即:局部变量没有初始化值
对于方法的形参(局部变量的一种)而言,是在调用方法时,给形参赋值。
4.在内存中加载的位置不同:
成员变量:声明在堆空间中
局部变量:声明在栈空间中