java的成员变量和局部变量
1. 定义
在java中,成员变量是指在类内方法外定义的变量;
而局部变量是指在方法中定义的变量,作用范围是其所在的方法。
如:
public class Student {//这是一个类
//name和age是成员变量,作用范围是整个类
private String name;
private int age;
public void do(int age) {//这个age是方法的形式参数,是局部变量
//task是定义在方法do内部的变量,作用范围是do方法内,所以是局部变量
String task;
}
}
2. 不同
1、在类中位置不同:局部变量在方法中,成员变量在方法外。
2、在内存中位置不同:局部变量在栈内存中,成员变量在堆内存中。
3、生命周期不同:
局部变量随方法的调用而存在,当方法被执行时局部变量被创建,当方法执行完毕出栈,局部变量跟随方法消失。
成员变量随对象的存在而存在,当对象被创建之后,成员变量作为对象的属性,会与对象一同被存储在堆内存中,一直到对象消失才跟着消失。
4、初始化值不同:
局部变量定义之后,必须主动赋值初始化才能被使用。
成员变量作为对象的一部分,当对象被创建后,成员变量会被自动赋默认值(一般基本数据类型赋0,引用数据类型赋null)。
5、作用范围不同:局部变量只在其所在的方法内部生效,成员变量在其所在的整个类中生效。
3. 思维导图总结