Java成员变量和局部变量

成员变量是指在一个类中定义的变量,比如

public class Dog {
    String breed;
    String name;
    String color;
    int age;
}

这些都是成员变量,用于描述类本身所具有的一些属性

局部变量是指在方法中定义的变量,例如:

public void eat(){
    int a=0;
}

用于辅助实现方法中的相关操作。 在一个方法中,不允许有同名的局部变量,而在不同的方法中,允许有同名局部变量。

静态成员变量归类所有,非静态成员变量归每个类的实例所有,在每个实例中均有副本。

局部变量和成员变量的区别:

1)所在位置:

局部变量:在每个方法内部使用,出了方法不可用

成员变量:属于每个类,在方法的外部,描述类的属性

2)作用范围:

局部变量:作用在方法内部

成员变量:作用于每个类

3)默认值:

局部变量:声明之后系统不会赋予默认值,必须自己手动赋值,否则会报错

成员变量:系统会根据该变量的类型赋予其相应的特征值,不手动赋值,也不会报错

4)所在内存位置不一样:
成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失
局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除
5)生命周期不同:
成员变量:随对象的创建而创建,对象回收时,成员变量消失
局部变量:随着方法的调用被创建,方法执行结束后,从栈中清除

你可能感兴趣的:(java)