概念

成员变量

成员变量就是属于类的变量,在类中,方法体外定义的变量

成员变量又分为两种:

  • 类变量(静态变量):是被static所修饰的成员变量,是属于类的部分,属于类的范畴。
  • 实例变量(非静态变量):是没有被static修饰的成员变量,是属于类的部分,但是属于对象的范畴。

局部变量:

局部变量就是定义在方法体,代码块内的变量,是局部的变量,属于方法的范畴。

比如:方法的形参,方法内定义的变量等等。

区别

1、定义的位置不一样

局部变量:在方法的内部

成员变量:在方法的外部,直接写在类中

public class Demo {
    //在方法的外部,直接写在类中
    //成员变量
    String name;

    public void test(){
        //在方法的内部
        //局部变量
        int num;
    }
}

2、适用范围不一样

局部变量:只有方法当中才可以使用,方法外不可用

成员变量:整个类都可以用

public class Demo {
    //成员变量
    String name = "kenvie";

    public void testA(){
        //局部变量
        int num = 666;
        //输出的name为成员变量
        //成员变量,整个类都可以用
        System.out.println(name);
    }

    public void testB() {
        //输出的num为局部变量
        //所以这个写法是错误的!!!
        System.out.println(num);;
    }
}

3、默认值不一样

局部变量:没有默认值,如果想使用,必须手动赋值

成员变量:如果没有赋值,会有默认值,规则和数组一样

public class Demo {
    //在方法的外部,直接写在类中
    //成员变量
    String name;
  
    public void test(){
        //在方法的内部
        //局部变量
        int num;
  
        //name是成员变量,没有手动赋值的话本身有默认值
        System.out.println(name);
        //num是局部变量,使用的时候必须手动赋值
        //所以这种是错误写法
        System.out.println(num);
    }
}

4、内存的位置不一样

局部变量:位于栈内存

成员变量:位于堆内存

5、生命周期不一样

局部变量:随着方法进栈而诞生,随着方法出栈而消失

成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

最后修改:2021 年 08 月 06 日
如果觉得我的文章对你有用,请随意赞赏