属性(成员变量) vs 局部变量
1.相同点:
* 定义变量的格式: 数据类型 变量名 = 变量值
* 先声明,后使用
* 都有其对应的作用域
2.不同点:
2.1在类中声明的位置不同
属性:直接定义在一对{}内
局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部变量
2.2关于权限修饰符的不同
属性:可以在声明属性时,指明其权限,使用权限修饰符
常用权限修饰符:private、public、缺省、protected ---->封装性
目前,大家声明属性时,都使用缺省就可以了。
局部变量:不可以使用权限修饰符
2.3默认初始化值的情况
属性:
整型(byte short int long):0
浮点型(float double):0.0
字符型(char):0 (或'\u0000')
布尔型(boolean):false
局部变量:没有默认初始化值,调用前需要显式赋值
特别的,形参在调用时,我们赋值即可
2.4在内存中加载的位置
属性:加载到堆空间中(非static)
局部变量:加载到栈空间
'''java'''
public class UserTest {
public static void main(String[] args) {
}
}
class User{
//属性(成员变量)
private String name;
public int age;
boolean isMale;
public void talk(String language){
System.out.println("我们使用" + language +"进行交流");
}
public void eat( ){
String food = "米饭";
System.out.println("喜欢吃" + food);
}
}