1.定义位置不同。
局部变量定义在方法内部,成员变量定义在方法外部,在某个类内部。
2.作业范围不同。
局部变量只在方法内起作用,成员变量可以在方法外访问到。
3.默认值不同。
成员变量的默认值即为该数据类型的初始值,而局部变量没有默认值,在使用之前一定要先初始化。
class Person{ private String name;//成员变量,在方法外,类内部 private int age; public void show(int i){ //i也是局部变量,不需要初始化,因为调用方法时一定会传入i的具体值 String str="hello";//局部变量,方法内部才有作用,必须初始化 System.out.println(str+"这是第"+i+"个人"); } String str2=str;//报错,因为str是局部变量,方法外不能访问 String str3=name;//不报错,name初始值为null,所以str3的值也为null }