Java学习笔记1:在 Java 中,super关键字和this关键字的区别

在 Java 中,super关键字和this关键字的区别如下:

一、指代对象不同

  • this

    • 代表当前对象的引用。即正在调用成员方法或构造方法的那个对象实例。
    • 例如,在一个类的方法中,this可以用来引用当前对象的成员变量和方法。
  • super

    • 代表父类对象的引用。可以通过它来访问父类的成员变量、方法和构造方法。

二、用法不同

2.1 访问成员变量

  • this:用于区分局部变量和成员变量,当方法中的局部变量与成员变量同名时,可以使用this.成员变量名来访问成员变量。例如:
   public class MyClass {private int num;public MyClass(int num) {this.num = num;}}
  • super:当子类和父类有同名成员变量时,可以使用super.成员变量名来访问父类的成员变量。例如:
   class Parent {int num = 10;}class Child extends Parent {int num = 20;void print() {System.out.println("Child's num: " + this.num);System.out.println("Parent's num: " + super.num);}}

2.2 调用方法:

  • this:可以使用this.方法名()来调用当前类的其他方法。例如:
   public class MyClass {public void method1() {System.out.println("Method 1");this.method2();}public void method2() {System.out.println("Method 2");}}
  • super:可以使用super.方法名()来调用父类被重写的方法。例如:
   class Parent {void show() {System.out.println("Parent's show method");}}class Child extends Parent {@Overridevoid show() {System.out.println("Child's show method");super.show();}}

2.3 调用构造方法:

  • this:在构造方法中,this()用于调用同一类中的其他构造方法,且必须放在构造方法的第一行。例如: 
   public class MyClass {private int num;public MyClass() {this(10);}public MyClass(int num) {this.num = num;}}
  • super:在子类的构造方法中,super()用于调用父类的构造方法,且也必须放在构造方法的第一行。例如:
   class Parent {public Parent() {System.out.println("Parent constructor");}}class Child extends Parent {public Child() {super();System.out.println("Child constructor");}}

三、使用场景不同

  • this

    • 通常用于解决成员变量的命名冲突、在一个类的内部方法之间进行调用等场景。
    • 在构造方法中,用于区分参数名和成员变量名,并调用同一类的其他构造方法以实现代码复用。
  • super

    • 主要用于访问父类的成员变量和方法,尤其是在子类中需要调用父类被重写的方法或访问被隐藏的成员变量时。
    • 在子类的构造方法中调用父类的构造方法,以确保父类的初始化工作先完成。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaSE】八种基本数据类型及包装类

数据类型字节数位数值范围包装类默认值整型byte18-128,127Byte0short216,Short0int432,Integer0long864,Long0L浮点型float432Float0.0fdouble864Double0.0d布尔型boolean18true falseBooleanfalse字符型char2160,Char…

C++编程语言:基础设施:异常处理(Bjarne Stroustrup)

第 13 章 异常处理(Exception Handling) 目录 13.1 错误处理(Error Handling) 13.1.1 异常(Exceptions) 13.1.2 传统错误处理(Traditional Error Handling) 13.1.3 探索(Muddling Through) 13.1.4 异常的替代观点(Alternative Views of Exceptions) 13.1.4.1 异步…

DAY78服务攻防-数据库安全RedisCouchDBH2database未授权访问CVE 漏洞

知识点: 1、数据库-Redis-未授权RCE&CVE 2、数据库-Couchdb-未授权RCE&CVE 3、数据库-H2database-未授权RCE&CVE 前置知识 1、复现环境:Vulfocus(官方在线的无法使用,需要自己本地搭建) 官方手册:https://fofapr…

老牛码看JAVA行业现状

一、坏消息深化与反思: 1、技术瓶颈与框架局限:尽管低代码平台崭露头角,为开发效率带来新气象,但其全面普及尚需时日,Java技术栈的进化似乎陷入了暂时的停滞。开发者们渴望突破,却发现传统框架与模式已难以…

博图V16升级V19前后内存对比

升级V19后固件版本更新到4.6 存储存储空间拓展50% 下图是官方解释 打开博图查看前后对比

[笔记]某变频器,功能列表及参数表

产品代号:INVT GOODDRIVE,这家公司我的产品我似乎在特检院看到过?或者在某个地铁建设工地看到过。是深圳的。 1.产品功能点: 变频锥形电机控制、抱闸转矩验证?抱闸反馈零位检测行程限位超载防护轻载升速(…

【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集

主要内容如下: 1、Visdrone2019数据集介绍 2、下载、制作YOLO格式训练集 3、模型训练及预测 4、Onnxruntime推理 运行环境:Python3.8(要求>3.8),torch1.12.0cu113(要求>1.8)&#xff0c…

8. 防火墙

8. 防火墙 (1) 防火墙的类型和结构 防火墙的类型和结构可以根据其在网络协议栈中的过滤层次和实现方式进行分类。常见的防火墙类型包括: 包过滤防火墙:工作在网络层(OSI模型的第3层),主要检查IP包头的信息,如源地址、目的地址、端口号等。电路级网关防火墙:工作在会话层…

idea2021git从dev分支合并到主分支master

1、新建分支 新建一个名称为dev的分支,切换到该分支下面,输入新内容 提交代码到dev分支的仓库 2、切换分支 切换到主分支,因为刚刚提交的分支在dev环境,所以master是没有 3、合并分支 点击push,将dev里面的代码合并到…

对时间序列SOTA模型Patch TST核心代码逻辑的解读

前言 Patch TST发表于ICLR23,其优势在于保留了局部语义信息;更低的计算和内存使用量;模型可以关注更长的历史信息,Patch TST显著提高了时序预测的准确性,Patch可以说已成为时序模型的基本操作。我在先前的一篇文章对P…

【掘金量化使用技巧】用日线合成长周期k线

掘金API中的接口最长的周期是‘1d’的,因此周线/月线/年线等数据需要自己进行合成。 基本思路 用日线合成长周期的k线只需要确定好合成的周期以及需要的数据即可。 周期: 一般行情软件上提供年k、月k、周k,我也选择年、月、周再加一个季度频率。 数据:…

Linux:终端(terminal)与终端管理器(agetty)

终端的设备文件 打开/dev目录可以发现其中有许多字符设备文件,例如对于我的RedHat操作系统,拥有tty0到tty59,它们是操作系统提供的终端设备。对于tty1-tty12使用ctrlaltF*可以进行快捷切换,下面的命令可以进行通用切换。 sudo ch…

GPU加速时代:如何用CuPy让你的Python代码飞起来?

你是不是也有这样的感受:明明写的Python代码很简洁,用NumPy处理数据也很方便,可是一跑起来就慢得像乌龟?尤其是当你面对庞大的数据集时,光是等结果出来,就已经耗掉大半天了。其实,我以前也是这么干的,直到我发现了CuPy,一个能让NumPy飞速跑起来的GPU加速神器。 你…

10. 排序

一、排序的概念及引用 1. 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录…

基于SpringBoot的医院管理系统【附源码】

基于SpringBoot的医院管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4系统概要设计 4.1概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 医生模块的实现 5.1.…

Mybatis 返回 Map 对象

一、场景介绍 假设有如下一张学生表: CREATE TABLE student (id int NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(100) NOT NULL COMMENT 姓名,gender varchar(10) NOT NULL COMMENT 性别,grade int NOT NULL COMMENT 年级,PRIMARY KEY (id) ) ENGINEInnoD…

【RocketMQ】一、基本概念

文章目录 1、举例2、MQ异步通信3、背景4、Rocket MQ 角色概述4.1 主题4.2 队列4.3 消息4.4 生产者4.5 消费者分组4.6 消费者4.7 订阅关系 5、消息传输模型5.1 点对点模型5.2 发布订阅模型 1、举例 以坐火车类比MQ: 安检大厅就像是一个系统的门面,接受来…

整合多方大佬博客以及视频 一文读懂 servlet

参考文章以及视频 文章: 都2023年了,Servlet还有必要学习吗?一文带你快速了解Servlet_servlet用得多吗-CSDN博客 【计算机网络】HTTP 协议详解_3.简述浏览器请求一个网址的过程中用到的网络协议,以及协议的用途(写关键点即可)-CSDN博客 【…

大数据可视化-三元图

三元图是一种用于表示三种变量之间关系的可视化工具,常用于化学、材料科学和地质学等领域。它的特点是将三个变量的比例关系在一个等边三角形中展示,使得每个点的位置代表三个变量的相对比例。 1. 结构 三个角分别表示三个变量的最大值(通常…

TikTok流量不佳:是网络环境选择不当还是其他原因?

TikTok,作为全球短视频社交平台的佼佼者,每天都有海量的内容被上传和分享。然而,很多用户和内容创作者发现,他们的TikTok视频流量并不理想。这引发了一个问题:TikTok流量不佳,是因为网络环境选择不当&#…