Java关键字之this用法详解

Java关键字之this用法详解

1. 简介

this 是 Java 语言中的一个关键字,表示当前对象,一般情况下指代的是当前实例。在 Java 中大量使用 this 引用。 this 可以用来调用一个类的构造函数,也可以用来调用类成员变量或成员方法。

2. this 用法

2.1. 用于调用类的构造函数

在 Java 中, this 可以用于引用一个类的构造函数。这种用法的主要目的是在构造函数中调用另一个构造函数。

例如,我们定义一个 Student 类,有两个构造函数,一个包含一个参数,另一个包含两个参数。当在实例化这个类的时候,如果传入了两个参数,则调用两个参数的构造函数,否则调用一个参数的构造函数。

public class Student {
    private String name;

    public Student() {
        this("default");
    }

    public Student(String name) {
        this.name = name;
    }
}

在上面的例子中,我们为 Student 类定义了两个构造函数,一个不带参数,另一个带有一个参数。当在实例化 Student 类时不传入参数,则会调用不带参数的构造函数,该构造函数中又会调用带有一个参数的构造函数来完成初始化操作。

2.2. 用于避免命名冲突

Java 中,如果在方法或构造函数中存在类成员变量和局部变量同名的情况下,使用 this 可以区分成员变量和局部变量。

例如,我们定义一个 Person 类,类中有一个成员变量 name,同时在类的构造函数中又定义了一个局部变量 name

public class Person {
    private String name;

    public Person(String name) {
        this.name = name; //成员变量
        String name = "Tom"; //局部变量
        System.out.println("局部变量 name 值为:" + name);
        System.out.println("成员变量 name 值为:" + this.name);
    }
}

在上面的例子中,通过 this.name 可以访问类的成员变量 name,通过 name 可以访问局部变量 name。在这里,通过 this 关键字区分了成员变量和局部变量的名字冲突。

3. 示例

3.1 示例一

我们定义一个 Person 类,并且在其中定义了两个方法,分别为 setNameshowName

public class Person {
    private String name;

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

    public void showName() {
        System.out.println("我的名字是:" + this.name);
    }
}

在上面的例子中,我们在 setName 方法中使用了 this 关键字来访问类的成员变量 name,并且在 showName 方法中也使用了 this 关键字访问类的成员变量 name,从而避免了命名冲突的问题。

public static void main(String[] args) {
    Person p = new Person();
    p.setName("小明");
    p.showName(); //我的名字是:小明
}

当调用 showName 方法时,会输出 我的名字是:小明

3.2 示例二

我们再来定义一个 Family 类,并且在其中调用了 Person 类的构造函数,同时使用了 this 关键字来代表当前实例。

public class Family {
    private Person father;
    private Person mother;

    public Family() {
        this.father = new Person("父亲");
        this.mother = new Person("母亲");
    }

    public void showFamily() {
        System.out.println("我们的家庭成员有:");
        this.father.showName();
        this.mother.showName();
    }
}

在上面的例子中,我们在 Family 类的构造函数中实例化了 fathermother 两个实例,并且在 showFamily 方法中使用了 this 关键字来访问 fathermother 实例。

public static void main(String[] args) {
    Family f = new Family();
    f.showFamily(); 
    //我们的家庭成员有:
    //我的名字是:父亲
    //我的名字是:母亲
}

当调用 showFamily 方法时,会输出 我们的家庭成员有:我的名字是:父亲 我的名字是:母亲

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

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • input禁止键盘及中文输入,但可以点击

    要实现input禁止键盘及中文输入,但可以点击的效果,需要使用HTML标签和JavaScript语言。下面是具体的实现步骤: HTML标签部分 在HTML标签中,需要给input标签添加readonly和onfocus两个属性。readonly属性可以让input禁止键盘输入,onfocus属性可以在输入框被点击时触发相应的JavaScript函数。具体代码…

    JavaScript 2023年6月11日
    00
  • JS求解两数之和算法详解

    JS求解两数之和算法详解 什么是两数之和算法? 两个整数的和就是将这两个数加起来得到的数。而两数之和算法是指在给定一组整数的情况下,找到其中两个数之和等于给定目标值的两个数。 算法的实现步骤 循环遍历整个数列,固定一个数,得到另一个数。 在剩下的数列中循环查找另一个数(目标值减去当前数),如果查找到,则说明找到了答案。 返回两个数的下标。 代码示例1 下面是…

    JavaScript 2023年5月28日
    00
  • 微信小程序获取当前位置的详细步骤

    为了在微信小程序中获取当前位置,可以通过以下详细步骤来实现: 1.在小程序的 app.json 文件中添加地理位置权限,包括 scope.userLocation。示例代码如下: { "pages": [ "pages/index/index" ], "window": { "naviga…

    JavaScript 2023年6月10日
    00
  • JavaScript实现网页跨年倒计时

    下面是JavaScript实现网页跨年倒计时的完整攻略,包括实现原理、代码实现和示例说明。 实现原理 获取当前时间和跨年的时间,计算相差的时间。 每个一秒钟更新一次剩余时间并打印在网页上。 当倒计时结束时,停止更新并显示倒计时已结束的文本。 代码实现 <!DOCTYPE html> <html> <head> <me…

    JavaScript 2023年5月27日
    00
  • javascript 基础简介 适合新手学习

    JavaScript 基础简介 适合新手学习 JavaScript 是一种广泛应用于编写网页脚本的编程语言。学习 JavaScript 对于新手来说是一项基础工作,本文章为新手介绍 JavaScript 的基础语法、数据类型、流程控制以及实例应用。 JavaScript 基础语法 JavaScript 代码可嵌入 HTML 页面的 \ 标签中。有两种方式,一…

    JavaScript 2023年5月18日
    00
  • Js md5加密网页版MD5转换代码

    让我来详细讲解一下“Js md5加密网页版MD5转换代码”的完整攻略。 什么是MD5加密 MD5是一种常用的加密算法,可以将任意长度的输入(字节流)转化为固定长度的输出(通常是128位)。这种转换是一种压缩算法,很难从输出中的散列值中反推出输入数据。因此,MD5被广泛应用于计算机安全领域。在网页开发中,常用MD5加密来保证用户的密码等敏感信息的传输安全。 J…

    JavaScript 2023年5月19日
    00
  • NodeJS多种创建WebSocket监听的方式(三种)

    下面是NodeJS多种创建WebSocket监听的方式的完整攻略。 标准 WebSocket 创建方式 在 Node.js 中使用 WebSocket 的第一步是将其作为依赖项添加到您的项目中。您可以使用以下命令执行此操作: npm install –save websocket 在您的项目代码中,您需要加载 WebSocket 模块。这可以通过以下代码行…

    JavaScript 2023年5月28日
    00
  • 理解javascript中DOM事件

    理解JavaScript中DOM事件的完整攻略 DOM处理事件的机制是基于事件传播(Event propagation)的,事件传播是指从页面最外层开始逐级向内层传递事件的过程。而JavaScript为开发者提供了两种方式来实现事件处理:事件监听器和事件委托。 事件监听器 事件监听器是在事件触发时执行的代码块,可以使用addEventListener方法添加…

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