Java进阶学习笔记2——static修饰成员变量

static:

叫静态,可以修饰成员变量、成员方法。

成员变量按照有无static修饰,分为两种:

类变量:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。静态成员变量。

实例变量(对象的变量):无static修饰,属于每个对象。

类名.类变量(推荐)

对象.类变量(不推荐)

Student类:

package cn.ensource.d1_staticdemo;

public class Student {
    // 类变量
    static String name;
    // 实例变量(对象变量)
    int age;
}

Test类: 

package cn.ensource.d1_staticdemo;

public class Test {
    public static void main(String[] args) {
        // 目标:掌握有无static修饰成员变量的用法、特点
        // 1. 类变量的用法
        Student.name = "袁华";

        Student s1 = new Student();
        s1.name = "马东梅";

        Student s2 = new Student();
        s2.name = "秋雅";

        System.out.println(s1.name); // 秋雅
        System.out.println(Student.name);

        s1.age = 23;
        s2.age = 18;
        System.out.println(s1.age);
        System.out.println(s2.age);
    }
}

成员变量执行原理:

 类变量直接放在堆内存中。

类变量:属于类,与类一起加载一次,在堆内存中只有一份,可以被类和类的所有对象共享。

实例变量:属于对象,每个对象都有一份,只能用对象访问。

类变量的应用场景:

在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义类变量来记住。

案例导学:

系统启动后,要求用户类可以记住自己创建了多少个用户对象了。

package cn.ensource.d1_staticdemo;

public class User {
    public static int number;  // 类变量对外公开,方便别人访问

    public User() {
//        User.number++;
        // 注意:在同一个类中,访问自己的类变量
        number++;
    }
}
package cn.ensource.d1_staticdemo;

public class Test2 {
    public static void main(String[] args) {
        // 目标:通过案例理解类变量的应用场景
        User user1 = new User();
        User user2 = new User();
        User user3 = new User();

        System.out.println(User.number);
        User user4 = new User();
        System.out.println(User.number);
    }
}

访问自己类中的类变量,是否可以省略类变量不写呢?

可以的。

注意:在某个类中访问其他类里的类变量,必须带类名访问。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/640215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio2025新功能大揭秘,你准备好了吗?

FL Studio,常被音乐制作者亲切地称为“水果”编曲软件,是比利时的Image-Line公司研发的一款完整的软件音乐生产环境或数字音频工作站(DAW)。自从1997年推出以来,它已经成为全世界众多电子音乐制作者和DJ的首选工具&…

信息学奥赛初赛天天练-10-组合数学-排列组合-一次彻底搞懂分组分配问题

更多资源请关注纽扣编程微信公众号 平均分组 是指将所有的元素分成所有组元素个数相等或部分组元素个数相等,即m个不同的元素平均分成n个组,有多少种分组方法 由于是平均分组,分组选择元素时会出现重复,因此结果需要除以A(n,n…

C++的数据结构(十八):并查集

并查集(Union-Find)是一种用于处理一些不交集(Disjoint Sets)问题的数据结构。它主要支持两种操作:合并集合(Union)和查找元素所属集合(Find)。在解决诸如连通性问题、网…

【Linux】POSIX线程库——线程控制

目录 1.线程创建方法 例:多线程创建 2.线程终止 2.1 return nulptr; 2.2 pthread_exit(nullptr); 3. 线程等待 3.1 等待原因 3.2 等待方法 线程终止的返回值问题 4.线程取消 5. 线程分离 5.1 分离原因 5.2 分离方法 6.封装线程 用的接口是POSIX线程库…

读人工智能时代与人类未来笔记13_网络57

1. jun背控制 1.1. 威慑的目的是通过威胁发动盒站来防止盒站 1.2. jun背控制的目的是通过限制甚至废除57(或57类别)本身来防止盒站真 1.2.1. 与盒不扩散相配合,以一整套详尽的条约、技术保障措施、监管和其他控制机制为支撑,所…

如何生成Github Badge徽章图标

如何生成徽章Badge 什么是徽章(Badge)生成小徽章shields网站开源项目的徽章lib版本徽章代码测试覆盖度开源协议Github workflow的徽章 开源代码实践效果py-enumjs-enumerate 什么是徽章(Badge) 在开源项目的README中,经常会见到一些徽章(Badge)小图标,如…

ViLT学习

多模态里程碑式的文章,总结了四种多模态方法,根据文字和图像特征特征抽取方式不通。 文章的贡献主要是速度提高了,使用了数据增强,文本的mask 学习自b站朱老师的论文讲解

无线领夹麦克风哪个品牌好?无线麦克风品牌排行榜前十名推荐

​在当今的数字化浪潮中,个人声音的传播和记录变得尤为重要。无论是会议中心、教室讲台还是户外探险,无线领夹麦克风以其卓越的便携性和连接稳定性,成为了人们沟通和表达的首选工具。面对市场上琳琅满目的无线麦克风选择,为了帮助…

小程序多端框架目前所遇问题记录

一、wx.openLocation兼容 1、申请腾讯地图key 2、配置LBS SDK,选择SDK最新版本 3、调用接口,name和address必须输入,不然要报错 uni.openLocation({latitude: Number(this.info.latitude),longitude: Number(this.info.longitude),name:this…

全域外卖是谁创办的公司?

全域外卖是谁创办的公司?这个问题是抽象的。正确的问法应该是全域外卖是谁研发的系统。 在了解全域外卖系统前,我们首先要了解什么是全域外卖,什么是全域团购。全域指的是多平台。当然这个平台是越多越好。实际上也可以理解为聚合外卖、聚合…

Java 解决 古典问题

1 问题 编写一个Java程序,解决以下问题: 2 方法 再导入java.util包下的Scanner类,构建Scanner对象,以便输入。通过对问题的分析,我们可以得到,当位数为1时,其返回值为1;当位数为2时&…

电影推荐|基于SSM+vue的电影推荐系统的设计与实现(源码+数据库+文档)

电影推荐系统 目录 基于SSM+vue的电影推荐系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍&#…

Flutter设计模式全面解析:单例模式

谈到设计模式这个“古老”的话题,大家先别急着划走哈,虽然对它再熟悉不过,几乎是最初开始学习编程到现在伴随着我们整个编程生涯,最早 Java、C 语言实现的各种设计模式到现在还会经常有所接触,面试中也是必问的环节&am…

IntelliJ IDEA集成Baidu Comate,商城系统支付交易功能开发实战

文章目录 Baidu Comate介绍安装配置体验安装插件配置体验注释生成代码技术问答 实战设计表生成代码导入数据 总结 Baidu Comate介绍 在科技互联网飞速发展的今天,百度凭借其深厚的技术积累和创新能力,推出了一款名为Baidu Comate智能代码助手的产品。该…

Linxu 系统中 修改 docker 镜像存放目录 修改docker默认路径。亲测有效。

1、关闭docker 服务 systemctl stop docker 2、创建新的存放路径(-p 父级目录不存在一起创建) mkdir /home/service/docker -p 3、移动默认路径中的镜像文件到新目录 mv /var/lib/docker/* /home/service/docker/ 4、修改docker.service 将新的路…

【C++】继承(二)深入理解继承:派生类默认成员函数与友元、静态成员的奥秘

目录 派生类的默认成员函数①派生类的构造函数②派生类的拷贝构造函数③派生类的赋值构造④派生类的析构函数 继承与友元继承与静态成员 前言 我们在上一章讲解了: 继承三部曲,本篇基于上次的基础继续深入了解继承的相关知识,欢迎大家和我一起学习继承 派…

微信小程序报错:notifyBLECharacteristicValueChange:fail:nodescriptor的解决办法

文章目录 一、发现问题二、分析问题二、解决问题 一、发现问题 微信小程序报错:notifyBLECharacteristicValueChange:fail:nodescriptor 二、分析问题 这个提示有点问题,应该是该Characteristic的Descriptor有问题,而不能说nodescriptor。 …

docker-file 网络

docker挂载 1.绑定挂载(Bind Mounts):绑定挂载是将主机上的文件或目录挂载到容器中。 docker run -v /host/path:/container/path image_name 2.卷挂载(Volume Mounts):卷挂载将 Docker 数据卷挂载到容器中…

Java开发大厂面试第23讲:说一下 JVM 的内存布局和运行原理?

JVM(Java Virtual Machine,Java 虚拟机)顾名思义就是用来执行 Java 程序的“虚拟主机”,实际的工作是将编译的 class 代码(字节码)翻译成底层操作系统可以运行的机器码并且进行调用执行,这也是 …

使用delphi11编写一个基于xls作为数据库的照片展示程序

1、创建xls文档可以参考前一篇博客,并使用wps将文档保存为2003格式xls后缀。 2、在form上面放置adoconnection、adotable、datasource、spinedit、timer、checkbox、image、4个button组件。 image的设置: Image1.Align : alClient; Image1.Center : Tr…