成员变量和局部变量
注:所有的变量没有赋值是不能使用的!!!
两者的区别:
定义的位置不同:
成员变量:定义在类中成员位置的变量,称为实例变量 / 类变量,在类中方法外
局部变量:定义在类中方法中
作用范围不同:
成员变量:本类中都可以用
局部变量:从定义行开始到所在的最近的代码块结束(作用域)
内存位置不同:
成员变量:位于栈内存的方法中
局部变量:位于堆内存的对象中
生命周期不同:
成员变量:随着对象的创建而诞生,随着对象的消失而消失
局部变量:随着方法进栈而诞生,随着方法出栈而消失
默认值不同:
成员变量:有默认值,和数组元素的默认值一样
引用数据类型: null
基本数据类型:
整数类型: 0
小数类型: 0.0
字符类型:空字符 即 '\u0000'
布尔类型:false
局部变量:没有默认值,不进行手动赋值就没法使用
关于重名问题:
1. 局部变量与局部变量之间,在重合作用于方位内不能重名;
2. 成员变量与成员变量之间不能重名;
3. 成员变量与局部变量之间可以重名,但是调用时优先使用局部变量,
实例使用中,可以用this关键字来区分成员变量和局部变量。