一、定义
成员变量:定义在类里方法外的变量,也叫全局变量
局部变量:定义在函数(方法)内部的变量
二、区别
1、在类中的位置不同
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
2、作用范围不一样
成员变量:类中
局部变量:方法中
3、初始化值的不同
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
4、在内存中的位置不同
成员变量:堆内存
局部变量:栈内存
5、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
同时需要注意:
成员变量在定义时可以不赋初始值(会自动赋默认值),而局部变量必须在使用前先赋值。
成员变量可以被类中的所有方法访问,而局部变量只能被定义它的方法访问。
三、实例
public class Test1 {
//成员变量 -- 全局变量 (定义在类中)
String name;
int age;
public void study() {
System.out.println("天天学习");
}
public void eat() {
System.out.println("吃饭");
}
public static void main(String[] args) {
int i=0; //定义在方法中的是局部变量
//创建对象
//类型 变量名 = 关键字 构造方法()
Test1 stu = new Test1(); //在这可以叫 对象
stu.study();
stu.eat();
stu.name = "小明";
stu.age = 20;
System.out.println(stu.name);
System.out.println(stu.age);
System.out.println(stu);//student对象的内存地址
}
}
运行结果: