Java入门:08.Java中的static关键字

1 static关键字

  • 可以修饰属性变量,方法和代码段

    • static修饰的属性称为静态属性或类属性, 在类加载时就在方法区为属性开辟存储空间,无论创建多少个对象,静态属性在内存中只有一份。

      可以使用 类名.静态属性 的方式引用

    • static修饰的方法称为静态方法或类方法,在类加载时就在方法区中开辟存储空间,存储方法中信息,在调用静态方法时,不会默认传递this参数。

      可以使用 类名.方法() 的方式引用

    • static修饰的代码段称为静态代码段,在类加载时就自动执行,且仅执行一次。

      一般初始化操作可以写在静态代码段中。

1.1 对象属性与静态属性

对象属性:

class A{int i ;    
}
​
class Test{main(){A a= new A();a.i = 10 ;}
}

静态属性

class A{static int i ;
}
​
class Test{main(){ A.j = 20 ;}
}
  • 对象属性:只有创建对象,才能引用。

  • 静态属性:可以通过类名直接引用。不需要创建对象。 通过对象也可以引用。

    类加载时开辟存储空间, 只有一份, 可以数据共享。

1.2 对象方法与静态方法

特点1

无论是静态方法还是对象方法,都是在类加载的时候,就在方法区中分配了存储空间

无论创建多少个对象,方法在内存中只存储一次。

特点2

在使用上, 对象方法的使用,必须先创建对象,才能调用。

而静态方法,可以通过类名直接调用

特点3

尽然对象方法在内存中只有1份,怎么做到不同对象调用,可以访问不同对象的属性呢?

  • 当通过对象调用对象方法时,会默认传递一个参数,这个实参就是当前对象的地址。这个形参就是this

  • 当通过类调用类方法时,就不会传递对象地址(此时没有对象),静态方法也没有this这个默认参数

简单来说,对象方法和静态方法的区别就在于是否需要引用对象自己的属性变量。

扩展1

静态方法中,不能使用this关键字。(压根就没有)

静态方法中只能直接使用静态成员(属性和方法),不能直接使用非静态成员。

在对象方法中,可以使用对象成员,也可以使用静态成员。

扩展2

对象方法中会有一个默认的参数叫this,存储的是调用当前方法的那个对象的地址

所以可以通过this,访问指定对象的属性。

默认情况下,访问对象的属性和其他方法时,jvm会自动的根据this的地址访问,而不需要编码时必须使用this关键字

class A{int i  ;public void t1(){i = 20 ; //等价于 this.i = 20 ;}
}

什么情况下必须写this呢?

  1. 局部变量与属性变量同名时,默认引用的是局部变量

  2. 调用重载的构造方法的时候

扩展3

方法到底是如何起作用的,以及有与属性同名的变量和没有同名变量的引用过程

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

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

相关文章

Java Kafka生产者实现

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

MIT6.824 课程-MapReduce

MapReduce:在大型集群上简化数据处理 概要 MapReduce是一种编程模型,它是一种用于处理和生成大型数据集的实现。用户通过指定一个用来处理键值对(Key/Value)的map函数来生成一个中间键值对集合。然后,再指定一个reduce函数, 它用…

Linux环境基础开发工具使用(1)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux环境基础开发工具使用(1) 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 Linux…

IP地址是怎么实现HTTPS访问的?

首先,需要明确的是,IP地址(Internet Protocol Address)是互联网上设备(如服务器、路由器等)的唯一标识符,它允许数据包在网络中正确地路由和传输。然而,IP地址本身并不直接支持HTTPS…

2024年T电梯修理证模拟考试题库及T电梯修理理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年T电梯修理证模拟考试题库及T电梯修理理论考试试题是由安全生产模拟考试一点通提供,T电梯修理证模拟考试题库是根据T电梯修理最新版教材,T电梯修理大纲整理而成(含2024年T电梯…

Mysql基础练习题 1729.求关注者的数量 (力扣)

编写解决方案,对于每一个用户,返回该用户的关注者数量。 #按 user_id 的顺序返回结果表 题目链接: https://leetcode.cn/problems/find-followers-count/description/ 建表插入语句: Create table If Not Exists Followers(us…

【LabVIEW学习篇 - 22】:ActiveX

文章目录 ActiveXActiveX打开Windows颜色选择对话框ActiveX将浏览器嵌入到前面板 ActiveX ActiveX是微软推出的一个开放的技术集的统称,它是很早之前出现的OLE(object linking and Embedding)技术的扩展,它是基于COM(Component Object Model)技术而建立…

基于GPT3打造你的专属的个人知识库

DocsGPT是一个基于GPT3的知识库平台,其支持训练、本地部署,并支持结果导出 https://github.com/arc53/DocsGPT DocsGPT本地部署 前置依赖: pippython3.8版本以上(python3.7不支持langchain 0.0.100以上版本)如使用ma…

uniapp去除顶部标题栏

相信很多同学和我一样,刚学uniapp的时候想去除自带的这个标题栏不知道如何去除🤪 其实很简单,只需两个步骤即可彻底除掉,首先找到项目文件夹下的pages.json路由文件点开,在这个文件里可以看到你创建的所有页面&#x…

宠物空气净化器测评:霍尼韦尔、希喂、米家、有哈、范罗士哪款吸浮毛效果好

作为一个忙碌、精致的搬砖人,我开始是没想过我会养带毛的动物的。自己就很忙了,哪有时间清理宠物弄脏的房间。无奈,三年前某天下班,刚进到小区就被楼下一只小流浪缠上了。买了两根火腿肠喂了还不够,非得跟着我到单元楼…

一篇文章了解Pytest单元测试框架

文章目录 1.Pytest是什么2.Pytest的安装3.Pytest快速入门4.Pytest文件规范5.常用的断言类型 1.Pytest是什么 pytest 是一个功能强大且灵活的 Python 测试框架,主要优点包括简洁易用、自动测试发现、丰富的插件生态系统、参数化测试、详细的断言错误信息、以及强大的 fixtures …

CentOS7虚拟机下安装及使用Docker

文章目录 一,准备工作二、安装Docker三、启动Docker四、验证Docker五、使用Docker六,卸载Docker 有一个Centos7的虚拟机,想要安装个docker测试一些docker用法和熟悉命令 一,准备工作 1,使用uname -r命令检查系统内核…

K8s中如何使用etcd进行集群信息的备份与恢复

这里写目录标题 ETCD是什么?1. **`etcd`(服务)**2. **`etcdctl`(客户端工具)**如何安装etcdctl(客户端工具)查看目前K8s自带etcd中的版本信息安装对应版本的etcdutl工具下载 `etcdutl` 3.5.7 版本配置环境变量创建备份文件验证一下备份的快照文件备份文件恢复的效果演示…

怎么抓住威士忌蓝海市场?

​前些天和朋友吃饭,聊起来威士忌。 朋友说,这个威士忌啊,最近几年增值特别快,甚至超过了黄金、名表、艺术品、红酒这些经典的投资品类。而且存放得越久,升值的幅度就越大。 再加上,中国的威士忌市场现在…

【无标题】乡村研学旅行系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,客服聊天管理,基础数据管理,论坛管理,景点管理,商品管理,研学管理 微信端账号功能包括:系统首页&#xf…

第十九次CCF计算机软件能力认证题目解析(详细题解+代码+个人解读+持续跟新)

第一题 线性分类器 考虑一个简单的二分类问题——将二维平面上的点分为 A A A 和 B B B 两类。 训练数据包含 n n n 个点,其中第 i i i 个点( 1 ≤ i ≤ n 1 ≤i ≤ n 1≤i≤n)可以表示为一个三元组 ( x i , y i , t y p e i ) (x_i,y…

操作系统 --- 线程(Threads)概念 多线程模型 线程控制与组织

零、学习路线 一、线程的引入,什么是线程,为什么要引入线程? 如果说,在OS中引入进程的目的是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程&#xff0c…

Tableau 2024.3 快来了,你期待哪些新功能?

时隔不久,Tableau 再次发力,即将推出 2024.3 新版本! 今年 7 月,Tableau 2024.2 的发布为数据分析领域带来了诸多创新。 时隔不久,Tableau 再次发力,即将推出 2024.3 新版本!届时,将…

掌握动态文档生成的艺术:探索Python的docxtpl库

文章目录 掌握动态文档生成的艺术:探索Python的docxtpl库1. 背景介绍2. 库简介3. 安装指南4. 基础函数介绍5. 实际应用场景6. 常见问题及解决方案7. 总结 掌握动态文档生成的艺术:探索Python的docxtpl库 1. 背景介绍 在数据处理和自动化办公领域&#x…

今天讲点简单的:进制1

啊,哈喽,小伙伴们,大家好。我是#Y清墨,今天呐,我要介绍的是二进制。 导语 好久不见,今天来玩些简单的——二进制。 一.初步认识 十进制是逢十进一,那么,顾名思义,二进制…