书接上文
成员变量和局部变量
1、在类中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或方法的参数
2、在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的销毁而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4、初始化值不同
成员变量:有默认初始化值,引用类型默认为null
局部变量:无默认初始化值,必须定义,赋值,然后参能使用
注意:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的就是就近原则
class Person
{
private String name;//这是成员变量
private int age;//这是成员变量
public void setName(String name)//这个name是局部变量
{
this.name = name;//this.name是这个类里面的name,就是上面的name,是成员变量,name是我们要输入的数
}
public void run(int len)
{
int i;//这是局部变量,现在定义后,要在此方法内赋值才能用
int m = len;
System.out.println("我跑了"+m+"米");
System.out.println(i);//此时i没有赋值,所以会出错
}
}