成员变量是指在一个类中定义的变量,比如
public class Dog {String breed;String name;String color;int age;}
这些都是成员变量,用于描述类本身所具有的一些属性
局部变量是指在方法中定义的变量,例如:
public void eat(){int a=0;}
用于辅助实现方法中的相关操作。 在一个方法中,不允许有同名的局部变量,而在不同的方法中,允许有同名局部变量。
静态成员变量归类所有,非静态成员变量归每个类的实例所有,在每个实例中均有副本。
局部变量和成员变量的区别:
1)所在位置:
局部变量:在每个方法内部使用,出了方法不可用
成员变量:属于每个类,在方法的外部,描述类的属性
2)作用范围:
局部变量:作用在方法内部
成员变量:作用于每个类
3)默认值:
局部变量:声明之后系统不会赋予默认值,必须自己手动赋值,否则会报错
成员变量:系统会根据该变量的类型赋予其相应的特征值,不手动赋值,也不会报错
4)所在内存位置不一样:
成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失
局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除
5)生命周期不同:
成员变量:随对象的创建而创建,对象回收时,成员变量消失
局部变量:随着方法的调用被创建,方法执行结束后,从栈中清除