Java中的 this 关键字是什么意思? this() 又是什么?

目录

    • 问题
      • 问题一:什么是this关键字?
      • 问题二:什么是this()?

问题

问题一:什么是this关键字?

定义:this 代表当前对象。这个定义比较抽象,举例来回答。
思考一个问题:如果没有 this 会怎样? 如图:如果没有 this,那么在通过方法对类成员变量赋值时,左边的变量我们以为是成员变量,但实际上却是局部变量,成员变量并没有发生改变,编译器会根据就近原则,把左边的 year 当成传递进来的参数,“我给我自己赋值”,相当于我给我自己发工资,显然不太合理。在这里插入图片描述

而 this 关键字就表明,你传递进来的参数是给哪个对象里面的成员变量进行赋值的,如图:this 引用其实被编译器隐藏起来了,对象 d1 调用了这个方法,这个this就代表了d1这个对象,指名道姓地给这个 d1 里面的变量赋值,这样编译器就知道你传入的参数是给 d1 的了。
在这里插入图片描述

注:this 只能在成员方法中使用(在其他地方也使用不了)


问题二:什么是this()?

this() 可以在类的构造方法中调用该类的其他的构造方法。

为什么要有 this() ?它有啥用?
打个比方,比如说顺序表这个数据结构,当我们 new ArrayList 的时候,并没有传参,但仔细想一想,我们都没给他顺序表的长度,它怎么能构造出顺序表的呢?
this() 就可以搞定,ArrayList 完全可以在无参构造方法中调用 this(),让它去调用其他有参构造方法,简单来说就是创造者为了让我们傻瓜式使用这些类,他在内部中帮我们自动初始化顺序表大小、自动扩容等等操作,而我们不必费心去了解其内部结构,只需要简单的一步就能够使用顺序表这一数据结构。(虽然实际上 ArrayList 并不是这么实现的,这里只是用最熟悉的数据结构来打个比方,用 this() 也是可以完成的)

注:this() 的优先级是最高的,需要在构造方法中放在第一执行位上。

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

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

相关文章

鸿蒙开发学习笔记2

一、class 类 类是用于 创建对象模版。同时类声明也会引入一个 新类型,可定义其 实例属性、方法 和 构造函数。 // 类名 首字母大写(规范) class 类名 {// 1、实例属性(字段)// 2、构造函数// 3、方法 }1、属性&…

IO练习网络爬虫获取

题目: 具体文字内容如下: 练习:制造假数据 需求:制造假数据是开发中的一项重要能力,从各个网站爬取数据是其中的一种方法。 获取姓氏示例及链接: 赵钱孙李 周吴郑王 链接:百家姓_诗词_百度汉…

如何追踪ping连接中的所有路由器的数量和IP

如何快速判断ping连接经过的路由器个数和IP? 方法一: ping命令会返回一个TTL,TTL(Time To Live)存活时间,一般初始值为64,每经过一个路由器就减一,当TTL为0时丢弃网络包&#xff0…

“Numpy数据分析与挖掘:高效学习重点技能“

目录 # 开篇 # 补充 zeros & ones eye 1. numpy数组的创建 1.1 array 1.2 range 1.3 arange 1.4 常见的数据类型 1.5 astype 1.6 random.random() & round 2. numpy数组计算和数组计算 2.1 reshape 2.2 shape 2.3 将一维数组变成多维数组 2.4 指定一维…

0010基于免疫遗传算法的配送中心选址

免疫优化算法(Immune Optimization Algorithm, IOA)在物流配送中心选址中的应用是通过模拟免疫系统的进化过程来解决选址优化问题。物流配送中心选址问题涉及到如何在给定区域内选择最优的位置,以最大化服务覆盖并最小化运输成本。 免疫优化…

我的FPGA

1.安装quartus 2.更新usb blaster驱动 3.新建工程 1.随便找一个文件夹,里面新建demo文件夹,表示一个个工程 在demo文件夹里面,新建src(源码),prj(项目),doc&#xff…

HTTP代理的用途有哪些-okeyproxy

通過HTTP代理,客戶端可以間接訪問目標伺服器,從而實現多種功能。無論你是普通用戶還是技術大咖,HTTP代理都能帶來諸多便利和安全保障。本文將從多個角度詳細探討HTTP代理的用途。 HTTP代理的重要用途 1. 訪問控制和內容過濾 在企業和教育機…

什么是语音降噪?

当我们使用手机或者电脑进行语音通话时,有时候会听到背景噪音干扰,比如人声、电视声或者风扇声。这些噪音让我们的通话变得不清晰,影响了沟通效果。那么,有没有什么方法可以让我们的语音通话更清晰呢?这就要介绍一下语…

压缩感知2——算法模型

采集原理 其中Y就是压缩后的信号表示(M维),Φ表示采集的测量矩阵,可以是一个随机矩阵,X代表原始的数字信号(N维)。 常见的测量矩阵——随机高斯矩阵 随机伯努利矩阵 稀疏随机矩阵等,矩阵需要满足与信号的稀…

spring xml实现bean对象(仅供自己参考)

对于spring xml来实现bean 具体代码&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL…

修改ES索引名称

1 案例背景 将ES索引【my-index】修改为【my-index-v1】&#xff0c;方便添加索引别名 2 操作步骤 首先通过PUT请求将旧索引my-index设置为可写&#xff08;如果之前设置为不可写&#xff09; PUT /my-index/_settings {"settings": {"index.blocks.write&q…

AWS无服务器 应用程序开发—第十七章 Application Composer

Application Composer 是 AWS 提供的一种可视化工具,用于设计和构建无服务器应用程序。它通过拖放界面简化了无服务器架构的创建过程,使开发者能够更直观地设计和配置应用程序的各个组件。 主要功能 可视化设计 通过拖放界面,开发者可以轻松地添加和配置 AWS 资源,如 L…

2-29 基于matlab的CEEMD

基于matlab的CEEMD&#xff08;Complementary Ensemble Empirical Mode Decomposition&#xff0c;互补集合经验模态分解&#xff09;&#xff0c;先将数据精心ceemd分解&#xff0c;得到imf分量&#xff0c;然后通过相关系数帅选分量&#xff0c;在求出他们的样本熵的特征。用…

昇思训练营打卡第二十一天(DCGAN生成漫画头像)

DCGAN&#xff0c;即深度卷积生成对抗网络&#xff08;Deep Convolutional Generative Adversarial Network&#xff09;&#xff0c;是一种深度学习模型&#xff0c;由Ian Goodfellow等人在2014年提出。DCGAN在生成对抗网络&#xff08;GAN&#xff09;的基础上&#xff0c;引…

【CentOS】Linux命令之docker命令(持续更新)

删除所有容器 该命令将删除所有已停止的容器。你还可以使用其他状态值&#xff0c;例如created、restarting或dead docker container rm $(docker container ls -aqf statusexited)删除所有镜像 该命令将删除所有镜像&#xff0c;包括被使用的镜像。请注意&#xff0c;如果某…

【深度学习】第5章——卷积神经网络(CNN)

一、卷积神经网络 1.定义 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种专门用于处理具有网格状拓扑结构数据的深度学习模型&#xff0c;特别适用于图像和视频处理。CNN 通过局部连接和权重共享机制&#xff0c;有效地减少了参数数量&#x…

使用OpencvSharp实现人脸识别

在网上有很多关于这方面的博客&#xff0c;但是都没有说完整&#xff0c;按照他们的博客做下来代码都不能跑。所以我就自己写个博客补充一下 我这使用的.NET框架版本是 .NetFramework4.7.1 使用Nuget安装这两个程序包就够了&#xff0c;不需要其他的配置 一定要安装OpenCvSha…

大模型日报 2024-07-09

大模型日报 2024-07-09 大模型资讯 大模型最强架构TTT问世&#xff01;斯坦福UCSD等5年磨一剑&#xff0c;一夜推翻Transformer 斯坦福UCSD等机构研究者提出的TTT方法&#xff0c;直接替代了注意力机制&#xff0c;语言模型方法从此或将彻底改变。这个模型通过对输入token进行梯…

在亚马逊云科技AWS上利用SageMaker机器学习模型平台搭建生成式AI应用(附Llama大模型部署和测试代码)

项目简介&#xff1a; 接下来&#xff0c;小李哥将会每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。本次介绍的是如何在Amazon …

802.11漫游流程简单解析与笔记_Part2_05_wpa_supplicant如何通过nl80211控制内核开始关联

最近在进行和802.11漫游有关的工作&#xff0c;需要对wpa_supplicant认证流程和漫游过程有更多的了解&#xff0c;所以通过阅读论文等方式&#xff0c;记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…