Java中的this和super

①this

  • 在Java中,this关键字代表当前对象的引用。它可以用于以下几个方面:

    1. 引用当前对象的成员变量:使用this关键字可以引用当前对象的成员变量,以区分成员变量和方法参数或局部变量之间的命名冲突。例如,如果一个方法的参数名与成员变量名相同,可以使用this关键字来引用成员变量。

    2. 调用当前对象的构造方法:在一个类的构造方法中,可以使用this关键字来调用同一个类中的其他构造方法。这种方式可以避免代码的重复,提高代码的复用性。

    3. 返回当前对象的引用:在一个方法中,可以使用this关键字来返回当前对象的引用。这在链式调用或方法嵌套的情况下非常有用。

    4. 作为方法参数传递:this关键字可以作为方法参数传递给其他方法,以便在方法中引用当前对象。

    需要注意的是,this关键字只能在非静态方法和构造方法中使用,因为静态方法和构造方法是与类相关而不是与对象相关的。

    总结:this关键字在Java中代表当前对象的引用,可以用于引用当前对象的成员变量、调用当前对象的构造方法、返回当前对象的引用以及作为方法参数传递。它在解决命名冲突、提高代码复用性和实现链式调用等方面非常有用。

  • Java虚拟机会给每个对象分配this,代表当前对象。

②对象在JVM的存在形式

字符串属于引用数据类型,所以把字符串放在方法区的常量池中,而基本数据类型放在堆中即可;

在new对象的时刻,会把类的信息加载到方法区; 

③this的使用和注意细节;

(1)this关键字可以用来访问本类的属性,方法,构造器;

(2)this用于区分当前类的属性和局部变量;

(3)访问成员方法的语法:this.方法名(参数列表);

(4)访问构造器语法:this(参数列表);注意只能在构造器中使用;

注意:只能放在构造器第一行

(5)this不能在类定义的外部使用,只能在类定义的方法中使用;

③super

  • 在Java中,super是一个关键字,用于引用父类的成员变量、方法和构造方法。

    1. 引用父类的成员变量: 当子类和父类拥有同名的成员变量时,可以使用super关键字来引用父类的成员变量。这样可以避免子类中的成员变量被隐藏。例如,super.x表示引用父类的成员变量x。

    2. 调用父类的方法: 当子类和父类拥有同名的方法时,可以使用super关键字来调用父类的方法。这样可以在子类中重写父类的方法,同时又能调用父类的方法。例如,super.method()表示调用父类的method方法。

    3. 调用父类的构造方法: 当子类的构造方法需要调用父类的构造方法时,可以使用super关键字来调用父类的构造方法。这样可以确保父类的初始化工作得以完成。例如,super()表示调用父类的无参构造方法,super(x)表示调用父类的带有参数x的构造方法。需要注意的是,super关键字在构造方法中只能用于调用父类的构造方法,并且必须是构造方法的第一条语句。

    需要注意的是,super关键字只能在子类中使用,并且只能用于访问父类的成员变量、方法和构造方法。在静态方法中不能使用super关键字,因为静态方法属于类而不是对象,没有this和super的引用。

④super的基本注意

(1)不能访问父类中的私有属性和方法;

只能放在第一句,只能出现一句;

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

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

相关文章

java进阶-jvm精讲及实战

深入了解jvm及实战 1.引言2.jvm概念理解1.1什么是jvm1.2 jvm功能1.3 jvm规范及主流版本1.4 jre jdk jvm的区别和联系1.5 jvm组成 2.jvm-字节码文件class2.1 java和class无关性2.2 字节码应用场景2.4 字节码文件打开方式2.3 字节码文件组成2.3.1 一般信息2.3.2 常量池2.3.3 方法…

Vulnhub-dc4

靶场下载 https://download.vulnhub.com/dc/DC-4.zip 信息收集 判断目标靶机的存活地址: # nmap -sT --min-rate 10000 -p- 192.168.1.91 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-21 16:36 CST Stats: 0:00:03 elapsed; 0 hosts completed (1 up…

68. redis计数与限流中incr+expire的坑以及解决办法(Lua+TTL)

文章目录 一、简介二、代码演进第一版代码(存在bug隐患)第二版代码(几乎无隐患)第三版代码(完美无瑕) 一、简介 在日常工作中,经常会遇到对某种操作进行频次控制或者统计次数的需求,此时常用的…

快速上手的AI工具-文心一言绘画达人

前言 大家好,现在AI技术的发展,它已经渗透到我们生活的各个层面。对于普通人来说,理解并有效利用AI技术不仅能增强个人竞争力,还能在日常生活中带来便利。无论是提高工作效率,还是优化日常任务,AI工具都可…

蓝桥杯---三羊献瑞

观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。 请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。 答案 代码 public class _03三羊献瑞 {public static void main(String[] args) {//c 生 b 瑞 g 献 d 辉…

Excel学习

例子可在文件-新建-模板中找到。 *快速填充 ctrl-e,需要将内容融入一个表格内,插入-表格,然后关掉数据-筛选,就可以填充了。 ctrl-D,选中单元格,然后快捷键向下填充。 *快速分析 ctrl-q,开…

c++:类和对象(5),运算符重载

目录 运算符重载概念&#xff1a; 运算符重载 1.成员函数重载号 2.全局函数重载号 打印结果&#xff1a; <<运算符重载 递增运算符重载 简单例子 输出结果为&#xff1a; 赋值运算符重载 如何重载 输出结果为&#xff1a; 什么时候重载 关系运算符重载 简单例…

【LeetCode: 36. 有效的数独 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Qt 多次绘图

使用Qt 的时候发现&#xff1a; 背景&#xff1a;自己定义一个类&#xff0c;把它和某个ui文件绑定。(类似 Qt creator 默认创建的工程&#xff09;问题&#xff1a;当鼠标在窗口内单击的时候会触发2次绘图。&#xff1f;难道不应该是一次吗&#xff1f; 于是开始了如下的测试…

设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总

智慧安防平台EasyCVR能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的接入与传输&#xff0c;支持的接入协议包括&#xff1…

【立创EDA-PCB设计基础完结】7.DRC设计规则检查+优化与丝印调整+打样与PCB生产进度跟踪

前言&#xff1a;本文为PCB设计基础的最后一讲&#xff0c;在本专栏中【立创EDA-PCB设计基础】前面已经将所有网络布线铺铜好了&#xff0c;接下来进行DRC设计规则检查优化与丝印调整打样与PCB生产进度跟踪 目录 1.DRC设计规则检查 2.优化与丝印调整 1.过孔连接优化 2.泪滴…

C# .NET读取Excel文件并将数据导出到DataTable、数据库及文本

Excel文件是存储表格数据的普遍格式&#xff0c;因此能够高效地读取和提取信息对于我们来说至关重要。C#语言借助.NET Framework和各种库的广泛功能&#xff0c;能够进行高效的数据操作。利用C#读取Excel文件并将数据写入数据库和DataTable&#xff0c;或者将数据用于其他目的&…

大数据开发之SparkSQL

第 1 章&#xff1a;spark sql概述 1.1 什么是spark sql 1、spark sql是spark用于结构化数据处理的spark模块 1&#xff09;半结构化数据&#xff08;日志数据&#xff09; 2&#xff09;结构化数据&#xff08;数据库数据&#xff09; 1.2 为什么要有sparksql hive on s…

Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs

大开眼界&#xff1f;探索多模态模型种视觉编码器的缺陷。 论文中指出&#xff0c;上面这些VQA问题&#xff0c;人类可以瞬间给出正确的答案&#xff0c;但是多模态给出的结果却是错误的。是哪个环节出了问题呢&#xff1f;视觉编码器的问题&#xff1f;大语言模型出现了幻觉&…

计算机网络基础概念解释

​ 1. 什么是网络 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即以多个计算机协同⼯作来完成业务&#xff0c;于是有了网络互连。 网络互连&#xff1a;将多台计算机连接在⼀起&#xff0c;完成数据共享。 数据共享本质是…

GPT科研应用与AI绘图及论文高效写作

详情点击链接&#xff1a;GPT科研应用与AI绘图及论文高效写作 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#xff0c;AI画图&#xff0c;图像识别&#xff0c;文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Claude2二定制自己…

论文阅读笔记AI篇 —— Transformer模型理论+实战 (三)

论文阅读笔记AI篇 —— Transformer模型理论实战 &#xff08;三&#xff09; 第三遍阅读&#xff08;精读&#xff09;3.1 Attention和Self-Attention的区别&#xff1f;3.2 Transformer是如何进行堆叠的&#xff1f;3.3 如何理解Positional Encoding&#xff1f;3.x 文章涉及…

常用电子器件学习——MOS管

MOS管介绍 MOS&#xff0c;是MOSFET的缩写。MOSFET 金属-氧化物半导体场效应晶体管&#xff0c;简称金氧半场效晶体管&#xff08;Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET&#xff09;。 一般是金属(metal)—氧化物(oxide)—半导体(semiconductor)场效应晶…

【Unity学习笔记】Unity TestRunner使用

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/135733479 作者&#xff1a;CSDN|Ringleader| 参考&#xff1a; Input testingGetting started with Unity Test FrameworkHowToRunUnityUnitTest如果对Unity的newInputSystem感…

qnx 上screen + egl + opengles 最简实例

文章目录 前言一、qnx 上的窗口系统——screen二、screen + egl + opengles 最简实例1.使用 addvariant 命令创建工程目录2. 添加源码文件3. common.mk 文件4. 编译与执行总结参考资料前言 本文主要介绍如何在QNX 系统上使用egl和opengles 控制GPU渲染一个三角形并显示到屏幕上…