Static关键字有什么作用?

static 关键字在 Java 中有多种用途,它主要用来修饰成员变量、成员方法、代码块和内部类。下面是 static 关键字的一些主要作用:

  1. 静态变量(静态成员变量)
    • static 修饰的变量属于类本身,而非类的某个对象。因此,它被称为类的静态变量或类变量。
    • 静态变量只保存一份数据,不管创建多少个对象,都只有这一份数据。
    • 静态变量随着类的加载而加载,优先于对象存在。
    • 可以通过类名直接访问静态变量,也可以通过对象访问静态变量(但不推荐,因为这可能造成混淆)。
  2. 静态方法(静态成员方法)
    • static 修饰的方法属于类本身,而非类的某个对象。因此,它被称为类的静态方法。
    • 静态方法只能访问静态变量或静态方法,不能访问非静态成员(除非创建对象)。
    • 静态方法不能被声明为抽象的(abstract)、严格的(final)或同步的(synchronized),因为静态方法属于类,而非对象,这些特性通常与对象状态和行为有关。
    • 可以通过类名直接调用静态方法,也可以通过对象调用静态方法(同样不推荐)。
  3. 静态代码块
    • static 修饰的代码块称为静态代码块。
    • 静态代码块只执行一次,优先于构造方法执行。
    • 静态代码块主要用于初始化类的静态变量或执行只需要执行一次的操作。
  4. 静态内部类
    • 使用 static 修饰的内部类称为静态内部类。
    • 静态内部类可以独立于外部类存在,也就是说,不需要外部类对象即可创建静态内部类对象。
    • 静态内部类只能访问外部类的静态成员,不能访问非静态成员。
  5. 静态导入
    • 在 Java 5 之后,可以使用 import static 来静态导入类中的静态成员,从而可以直接使用这些静态成员,而无需通过类名来引用。

总的来说,static 关键字的主要作用是定义与类本身相关而非与对象相关的变量、方法或内部类,以及用于初始化类的静态成员或执行只需执行一次的操作。使用 static 可以提高代码的可读性和可维护性,但也需要注意避免过度使用,以免破坏封装性和造成其他潜在问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode热题100.数组中的第k大的元素

作者:晓宜 🌈🌈🌈 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力😊 🌙🌙&…

谷歌浏览器必用AI插件 - elmo,好用,还免费

功能: 1、即时生成网站内容摘要; 2、支持提问并从页面获得直接回答; 3、通过关键词获取相关信息; 4、可以与 PDF 对话,方便理解大型文档、学习或审阅报告; 5、与 YouTube 视频交互问答(测试…

探索前端架构:MVC、MVVM和MVP模式

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言常用语法提要

为读者查阅方便,下面列出C语言语法中常用的一些部分的提要。为便于理解没有采用严格的语法定义形式,只是备忘性质,供参考。 1.标识符 可由字母、数字和下划线组成。标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字…

sky06笔记下

1.边沿检测 检测输入信号din的上升沿&#xff0c;并输出pulse module edge_check ( clk, rstn, din, pulse ); input wire clk,rstn; input wire din; output reg pulse;wire din_dly;always (posedge clk or negedge rstn)beginif(!rstn)din_dly < 1b0;elsedin_dly < d…

307k star, 免费的编程书籍 free-programming-books

307k star, 免费的编程书籍 free-programming-books 分类 开源分享 项目名: free-programming-books -- 各种编程语言免费学习资源 Github 开源地址&#xff1a; https://github.com/EbookFoundation/free-programming-books 查找页面&#xff08;英文&#xff09;&#xff…

补代码随想录算法训练营第43天 |1049. 最后一块石头的重量 II、 494. 目标和、 474.一和零

今天的题目有点抽象&#xff0c;得好好理解 1049. 最后一块石头的重量 II 本题就和 昨天的 416. 分割等和子集 很像了&#xff0c;可以尝试先自己思考做一做。 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个背包最多能装多少&#xff1f;LeetCode&#xff1a;1049…

tigramite教程(七)使用TIGRAMITE 进行条件独立性测试

文章目录 概述1 连续数值变量1.1 ParCorr 偏相关&#xff08;ParCorr类&#xff09;1.2 鲁棒偏相关&#xff08;RobustParCorr&#xff09;非线性检验1.3 GPDC1.4 CMIknn 2a. 分类/符号时间序列2b. 混合分类/连续时间序列多变量X和Y的测试 概述 这个表格概述了 X ⊥ Y ∣ Z X\…

c语言文件操作(超详细)

前言 这次的博客&#xff0c;可以让大家快速掌握文件操作&#xff0c;方便大家快速找到不懂的内容 文件操作的作用以及基础 1. 为什么使用文件&#xff1f; 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&…

计算机笔记(3)续20个

41.WWW浏览器和Web服务器都遵循http协议 42.NTSC制式30帧/s 44.三种制式电视&#xff1a;NTSC&#xff0c;PAL&#xff0c;SECAM 45.IP&#xff0c;子网掩码白话文简述&#xff1a; A类地址&#xff1a;取值范围0-127&#xff08;四段数字&#xff08;127.0.0.0&#xff09…

第十三届蓝桥杯大赛软件赛省赛CC++大学B组

第十三届蓝桥杯大赛软件赛省赛CC 大学 B 组 文章目录 第十三届蓝桥杯大赛软件赛省赛CC 大学 B 组1、九进制转十进制2、顺子日期3、刷题统计4、修建灌木5、x进制减法6、统计子矩阵7、积木画8、扫雷9、李白打酒加强版10、砍竹子 1、九进制转十进制 计算器计算即可。2999292。 2、…

Spoon Taking Problem(c++题解)

题目描述 &#xfffd;N 人が円卓に座っており&#xff0c;各人は反時計回りに順に 1, …, &#xfffd;1, …, N と番号付けられています&#xff0e;各人はそれぞれ左右どちらか一方の利き手を持っています&#xff0e; 円卓上には 1, …, &#xfffd;1, …, N と番号付け…

【蓝桥杯第十一届省赛B】(部分详解)

门牌制作 #include <iostream> using namespace std; int main() { int cnt0;for(int i1;i<2020;i){if(i%102)cnt;if(i/10%102)cnt;if(i/100%102)cnt;if(i/10002)cnt;}cout<<cnt;// 请在此输入您的代码return 0; }蛇形填数 #include<iostream> using …

开机自启动

对win10,给一种开机自启动的设置方法: 1. winr 打开 2. 输入shell:startup打开 开始\程序\启动 3. 把想要自启动的应用的快捷方式放在这里即可 亲测有用

2024年计算机学科夏令营预推免信息最全汇总(包括计算机本学科和交叉学科)

我在看到新的夏令营信息后会及时更新其中这个表格&#xff0c;表格已经存放在百度网盘中了&#xff0c;下面是一张截图&#xff1a; 下面是存放表格的百度网盘地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1damn4jnG8r-XPe0HhvBRbw?pwd9b0h 提取码&#xff1a;9…

【JavaWeb】百度地图API SDK导入

百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 登录注册&#xff0c;创建应用&#xff0c;获取AK 地理编码 | 百度地图API SDK (baidu.com) 需要的接口一&#xff1a;获取店铺/用户 所在地址的经纬度坐标 轻量级路线规划 | 百度地图API SDK (baidu.com) 需要的…

使用 Slurm 配置 Nvidia GPU 集群

记录下使用 slurm 搭建 gpu 集群的过程&#xff0c;以下命令都是用 root 用户执行&#xff0c;切记。 安装 编译 munge wget https://github.com/dun/munge/releases/download/munge-0.5.15/munge-0.5.15.tar.xz tar xvf munge-0.5.15.tar.xz cd munge-0.5.15 ./configure -…

计算机导论Lesson0——认识函数的基本原理

学习资料&#xff1a;https://www.bilibili.com/video/BV1HW4y1A7Yi?p2&vd_sourced6b1de7f052664abab680fc242ef9bc1 为什么计算机里计数从0开始&#xff1f;——0代表位置&#xff0c;而不是个数 我们希望从个位开始计数&#xff0c;即代表的是1&#xff08;从右至左&…

MySQL-SQL编写练习:基本的SELECT语句

基本的SELECT语句 1. SQL的分类 DDL:数据定义语言。CREATE \ ALTER \ DROP \ RENAME \ TRUNCATEDML:数据操作语言。INSERT \ DELETE \ UPDATE \ SELECT &#xff08;重中之重&#xff09;DCL:数据控制语言。COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE 学习技巧&#xf…

【测试篇】测试用例

文章目录 前言具体设计测试用例等价类边界值场景设计法判定表&#xff08;因果图&#xff09;正交排列&#xff08;用的非常少&#xff09;错误猜测法 前言 什么是测试用例&#xff1f;&#xff1f; 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤&#xf…