前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java - 局部变量和成员变量

Java - 局部变量和成员变量

作者头像
kenvie
发布2022-01-20 15:13:12
1.2K0
发布2022-01-20 15:13:12
举报
文章被收录于专栏:kenviekenvie

概念

成员变量

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

成员变量又分为两种:

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

局部变量:

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

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

区别

1、定义的位置不一样

局部变量:在方法的内部

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

代码语言:javascript
复制
public class Demo {
    //在方法的外部,直接写在类中
    //成员变量
    String name;

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

2、适用范围不一样

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

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

代码语言:javascript
复制
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、默认值不一样

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

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

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

4、内存的位置不一样

局部变量:位于栈内存

成员变量:位于堆内存

5、生命周期不一样

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

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

版权属于:kenvie

本文链接:https://cloud.tencent.com/developer/article/1937604

商业转载请联系作者获得授权,非商业转载请注明出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 07 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念
    • 成员变量
      • 局部变量:
      • 区别
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档