Java关键字this与super详解用法

Java关键字this与super详解用法

this关键字

介绍

在Java中,this是一个关键字,它可以用来引用当前对象。每个对象都有一个隐式的this引用,它指向对象的本身。使用this关键字可以访问当前对象的成员变量、成员方法、构造方法等。

用法

访问成员变量

使用this关键字可以访问当前对象的成员变量。如果成员变量与方法参数的名字相同,就可以使用this关键字来区分。

public class Person {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}

调用构造方法

在一个构造方法中,可以使用this关键字来调用同一类的另一个构造方法。

public class Person {
    private String name;
    private int age;

    public Person() {
        this("John", 20);
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

在上面的例子中,第一个构造方法调用了同一类的另一个构造方法,这个构造方法接受两个参数:name和age。第一个构造方法调用的是第二个构造方法,并传递了"John"和20作为参数。

super关键字

介绍

在Java中,super是一个关键字,它可以用来引用父类的成员变量、成员方法、构造方法等。使用super关键字可以访问父类的内容。

用法

访问父类成员变量和成员方法

可以使用super关键字来访问父类的成员变量和成员方法。如果子类和父类中有名字相同的成员变量或成员方法,可以使用super关键字来访问父类的成员变量或成员方法。

public class Student extends Person {
    private String school;

    public String getSchool() {
        return this.school;
    }

    public String getName() {
        return super.getName();
    }
}

在上面的例子中,子类Student中有一个成员变量school,没有与父类Person中的成员变量name重名。但是,子类中的getName()方法与父类中的getName()方法重名,因此使用super关键字来访问父类的getName()方法。

调用父类构造方法

可以使用super关键字来调用父类的构造方法。如果子类没有显式的调用父类的构造方法,则编译器会自动调用父类的无参构造方法。如果子类显式的调用了父类的构造方法,则必须放在构造方法的第一行。

public class Student extends Person {
    private String school;

    public Student(String name, int age, String school) {
        super(name, age);
        this.school = school;
    }
}

在上面的例子中,子类Student中显式的调用了父类Person的带参构造方法,通过super关键字调用。子类中的构造方法可以访问子类本身和父类的成员变量和成员方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java关键字this与super详解用法 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • node(规则引擎)

    Node:一个流行的规则引擎 Node是一款JavaScript运行时引擎,该引擎以其出色的性能和灵活性而闻名。其中最显著的特征之一是其能够将JavaScript编译成本地机器码,从而大大提高它的执行效率。 除此之外,Node还是一个非常流行的规则引擎,可用于实现各种不同的规则引擎应用场景。 Node的规则引擎特点 Node的规则引擎具备以下特点: 规则可配…

    其他 2023年3月28日
    00
  • 【X86】—X86处理器大小端的数据存储验证

    X86处理器是一种常见的CPU架构,它支持两种不同的数据存储方式:大端模式和小端模式。本文将介绍如何验证X86处理器的数据存储方式,包括大端模式和小端模式的概念、验证方法和示例说明。 1. 大端模式和小端模式 在计算机中,数据存储方式可以分为两种:大端模式和小端模式。大端模式是指高位字节存储在低地址,低位字节存储在高地址;小端模式是指低位字节存储在低地址,高…

    other 2023年5月5日
    00
  • 怎么把图片转换成ico格式方法大汇总

    当将图片转换为.ico格式时,可以使用多种方法。下面是一个详细的攻略,其中包含两个示例说明: 方法一:使用在线转换工具 打开任意一个在线图片转换网站,例如ConvertICO或ICO Convert。 在网站上找到上传图片的选项,并点击它。 选择要转换的图片文件,并上传到网站。 在转换选项中,选择.ico作为目标格式。 点击“转换”或类似的按钮,开始转换过程…

    other 2023年8月5日
    00
  • centos解压rar文件

    CentOS解压RAR文件 RAR是一种常见的压缩文件格式,它通常用于Windows系统中。然而,在Linux系统中,RAR文件的使用可能会遇到问题。本文将介绍如何在CentOS中解压RAR文件。 安装RAR工具 首先,我们需要安装RAR工具。在CentOS中,可以使用以下命令安装: sudo yum install -y rar 解压RAR文件 如果需要解…

    其他 2023年3月29日
    00
  • 关于c++:如何在mac上找到实际的clang版本?

    关于C++:如何在Mac上找到实际的Clang版本? 在Mac上,Clang是默认的C++编译器。有时候,我们需要知道实际安装的Clang版本,以便进行相关的配置调试。本攻略将详细介绍如何在Mac上找到实际的Clang版本,并提供两个示例说明。 解决方法 以下是在Mac上找实际的Clang版本的方法: 打开终端。 在Mac上,我们可以使用终端来执行命令,以找…

    other 2023年5月8日
    00
  • vue3学习指导教程(附带获取屏幕可视区域宽高)

    Vue3 学习指导教程 简介 Vue3 是 Vue.js 的最新版本,相比于 Vue2,它具有更高的性能、更好的 TypeScript 支持和更加灵活的组合式 API 等诸多优势。本教程将手把手地教你如何学习 Vue3,以及如何在学习过程中获取屏幕可视区域宽高。 学习 Vue3 安装 要开始学习 Vue3,首先需要安装 Vue3。可以通过以下命令安装最新的 …

    other 2023年6月27日
    00
  • FastDFS分布式文件系统环境搭建及安装过程解析

    提交FastDFS的作用 FastDFS是高性能、轻量级的分布式文件系统。它通过将文件存储在多个存储服务器中来实现快速访问和高可用性。FastDFS采用了分布式存储架构,将文件划分为多个块(Block),然后将每个块分别存储在不同的服务器上。 FastDFS的优点: 可靠性高:FastDFS的分布式存储架构,使它能够自动管理数据备份和恢复,保证数据的可靠性,…

    other 2023年6月27日
    00
  • layui之弹出层

    当然,我很乐意为您提供有关“layui之弹出层”的完整攻略。以下是详细的步骤和两个示例: 1. 什么是layui弹出层? layui弹出层是一种基于layui框架的弹出窗口组件,用于在网页中显示弹出窗口。它可以用于显示提示信息、确认对话框、输入框等。 2. layui弹出层的使用 以下是使用layui弹出层的步骤: 2.1 引入layui 在使用layui弹…

    other 2023年5月6日
    00
合作推广
合作推广
分享本页
返回顶部