成员变量与局部变量

2023-11-14

一、成员变量

在类中定义,用来描述对象将要有什么。

二、局部变量

在类的方法中定义,在方法中临时保存数据。

三、成员变量和局部变量的区别

1)作用域不同
        局部变量的作用域仅限于定义它的方法.
        成员变量的作用域在整个类内部都是可见的.
2)初始值不同
        成员变量有默认的初始值.
        局部变量没有默认的初始值,必须自行设定初始值.
3)存储位置不同
        成员变量是在对象创建以后存在于堆中,对象回收时,成员变量消失.
        局部变量是在方法被调用时存在于栈中,方法调执行结束,从栈中清除.
4)生命周期不同
        对象的创建而创建,对象回收时,成员变量消失.
        随着方法的调用被创建,方法执行结束,从栈中清除.

代码示例如下:

public class Variable {
    /**
     * 成员变量
     */
    public int count;
    public int x;
    public static int y;

    public void fun01() {
        int a = 10;
        System.out.println("fun01()中a的值 >>> " + a);
    }

    public void fun02() {
        int a = 20;
        System.out.println("fun02()中a的值 >>> " + a);
    }

    public void fun03() {
        int a = 30;
        int b;
        System.out.println("fun03()中a的值 >>> " + a);
        // The local variable b may not have been initialized
        // java: 可能尚未初始化变量b
        // 局部变量 如果被调用初始化
        // System.out.println("fun03()中b的值 >>> " + b);
    }

    public void fun04() {
        System.out.println("成员变量count的值 >>> " + count);
    }

    public void fun05() {
        System.out.println("成员变量count的值 >>> " + count++);
    }

    public void fun06() {
        System.out.println("成员变量count的值 >>> " + ++count);
    }

    public void fun07(){
        System.out.println("非静态成员变量x的值 >>> " + ++x);
        System.out.println("静态成员变量y的值 >>> " + ++y);
    }
}
public class VariableTest {
    @Test
    public void test01(){
        Variable variable = new Variable();
        // fun01()中a的值 >>> 10
        variable.fun01();
        // fun02()中a的值 >>> 20
        variable.fun02();
        // fun03()中a的值 >>> 30
        variable.fun03();
        // 成员变量count的值 >>> 0
        variable.fun04();
        // 成员变量count的值 >>> 0
        variable.fun05();
        // 成员变量count的值 >>> 2
        variable.fun06();
    }
    @Test
    public void test02(){
        Variable variable = new Variable();
        // 成员变量count的值 >>> 1
        variable.fun06();
        // 成员变量count的值 >>> 2
        variable.fun06();
    }

    @Test
    public void test03(){
        Variable variable01 = new Variable();
        Variable variable02 = new Variable();
        // 成员变量count的值 >>> 1
        variable01.fun06();
        // 成员变量count的值 >>> 2
        variable01.fun06();
        // 成员变量count的值 >>> 1
        variable02.fun06();
    }
    @Test
    public void test04(){
        Variable variable01 = new Variable();
        Variable variable02 = new Variable();
        // 非静态成员变量x的值 >>> 1
        // 静态成员变量y的值 >>> 1
        variable01.fun07();
        // 非静态成员变量x的值 >>> 1
        // 静态成员变量y的值 >>> 2
        variable02.fun07();
        // 非静态成员变量x的值 >>> 2
        // 静态成员变量y的值 >>> 3
        variable01.fun07();
        // 非静态成员变量x的值 >>> 2
        // 静态成员变量y的值 >>> 4
        variable02.fun07();
    }


}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成员变量与局部变量 的相关文章

随机推荐

  • Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密

    Kettle中使用JavaScript调用jar包对文件内容进行MD5加密 1 本文主要知识点 JavaScript调用jar包对文件内容进行MD5加密 返回加密md5值 Kettle实现对文件内容的加密 返回加密md5值 2 使用方法 1
  • 多元函数求极值,万能函数——fmincon讲解

    matlab中的函数fmincon可用于求可以求取多元函数的极值 其约束包括五种 1 线性不等式 约束 2 线性等式约束 3 变量约束 4 非线性不等式约束 5 非线性等式约束 其形式如下 x fmincon fun x0 A b Aeq
  • Acrobat里面直接截取部分页面(转存一页或者几页)为独立PDF

    不需要使用foxit福昕reader 在完整版acrobat里面 进入页面缩略图 右键 提取页面 出现如下对话框 1 直接确定 可以得到从214页至219页的独立pdf 2 勾选 提取页面为单独文件 则会有6个pdf
  • 校园网服务器系统需求分析,校园网需求及分析.doc

    校园网需求及分析 校园网络规划与设计 一 毕业设计课题名称 校园网络规划与设计 二 毕业设计任务 1 需求分析 2 系统设计原则和实现目标 1 网络系统设计原则 系统建设目标 2 网络性能分析 3 系统的总体设计 1 网络拓扑结构设计 2
  • 计算机主板上的fan,通用解决方案:计算机主板上的CPU_FAN,SYS_FAN,CHA_FAN,CPU_OPT接口知识...

    在组装计算机的过程中 尽管安装过程很简单 但经常会遇到接线问题 用户经常错误地将CPU散热器的电源线插入SYS FAN 尽管风扇可以旋转 但是在引导时可能会出现F1错误 CPU Fan Error 这也会导致CPU散热器无法智能调节速度 让
  • javafx开发- ImageView标签设置图片不显示

    图片不显示的原因没找到 但是找到了解决办法 嘿嘿 解决问题代码如下
  • flutter之Provider(一)

    网上有不少介绍Provider的文章 但是感觉大部分对于初学者而言不够友好 很多在文章开始就写了大片的代码或者是一通的状态管理的介绍 但是实际上根本不需要那么复杂 本篇文章当然也会简单的介绍Provider的使用 但是我们更多还是通俗的介绍
  • 新手教程!设置PDF文件的页面大小

    设置文档的页面大小是办公一族经常遇到的一种操作 如果是word文档 那简直就是so easy 但在日常工作中 我们偶尔会遇到PDF格式的文件 由于对它不熟悉 想要对PDF文档的页面大小进行修改 又该如何操作呢 这时我们就需要借助一款非常专业
  • 客户价值预测:线性回归模型与诊断(概念)

    客户生命周期可分为四个阶段 潜在客户阶段 响应客户阶段 既得客户阶段 流失客户阶段 本章整体是一个客户价值预测的案例 背景是某信用卡公司在地推活动之后 获取了大量客户的信用卡申请信息 其中一个部分客户顺利开卡 并且有月消费记录 而另外一部分
  • C语言结构体应用-通讯录

    这里写目录标题 总体介绍 一 数据的定义及数据初始化 二 增加联系人 三 删除联系人 四 修改某个联系人 五 显示所有联系人 六 删除所有联系人 七 按名字首字母排序联系人 八 查找联系人 九 代码展示 总体介绍 本文主要介绍一个结构体的应
  • vue 点击事件失效

    点击事件失效的情况 总共有三种 1 没有点到那个元素 比如说div gt span 事件绑定在div上 但是它可能点来点去是在span标签上面 这种情况 把 click点击事件绑定到span上测试一下就好了 如果是被覆盖了 加个这个 sto
  • error while loading shared libraries: libcublasLt.so.11 解决方法

    在运行cuda程序的时候 有时候会遇到此类错误 error while loading shared libraries libcublasLt so 11 问题是两个 确实没有此类库文件 有此库文件 不过没有放在正确的地方 针对第一类 如
  • Java实现将JSON文件导出到Excel

    文章目录 一 运行环境 二 需求描述 三 实现思路 四 实现代码 一 运行环境 windows10 IDEA 2022 JDK 8 Maven 3 8 6 Apache POI 5 fastjson2 二 需求描述 写一个功能 任意json
  • 利用Vulnhub复现漏洞 - Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)

    Adobe ColdFusion 反序列化漏洞 CVE 2017 3066 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 生成POC 发送POC 发送POC内容 检验POC 进入容器 通过DockerID进入容器 查看
  • 软工实践2019——第二次作业评分

    第二次作业评分 第二次作业原文 写在前面的话 看了大家陆续提交的第一次作业 感慨良多 初心 勇气和信心 回顾初心 回想自己当初为什么报这个专业 不知你们是否看过电影 无问西东 其中有一句台词 如果提前了解了你们要面对的人生 不知你们是否还会
  • VirtualBox中安装Android-x86详解

    1 下载安装VirtualBox 官网 http www virtualbox org wiki Downloads 2 下载Android x86 官网 http www android x86 org download 这里我们下载5
  • 19. 第三方库的管理和虚拟环境

    Hi 大家好 我是茶桁 在我们之前的课程中 讲解了数据 函数 类 模块以及包 这些基本上已经构成了Python的全部了 那么 我们在学习Python的包之后 有没有思考过 既然Python有内置模块 我们也可以自己写一些模块来使用 那一定有
  • 3D游戏设计作业10:AR/MR 技术

    AR MR 技术 游戏截图 1 作业要求 1 图片识别与建模 2 虚拟按键小游戏 2 设计思路 1 首先是要安装Vuforia 这里直接在file build settings player settings里勾选Vuforia Augme
  • 【漏洞复现】CVE-2021-32682 elFinder ZIP 参数与任意命令注入

    1 Vulhub启动环境 2 查看端口号 3 输入网址 ip 8080 打开网页 4 先创建一个普通的文本文件1 txt 5 然后右键这个文件 对其进行打包 打包后的文件命名为2 zip 并同时进行抓包 获取1 txt的base64编码 6
  • 成员变量与局部变量

    一 成员变量 在类中定义 用来描述对象将要有什么 二 局部变量 在类的方法中定义 在方法中临时保存数据 三 成员变量和局部变量的区别 1 作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内部都是可见的 2 初始值不同