【java学习】this关键字(27)

news/2025/2/14 8:17:09/

文章目录

  • 1. this是什么?
  • 2. this的作用


1. this是什么?

  1. 在 java 中,this关键字比较难理解,它的作用和其词义很接近。
    ①它在方法内部使用,即这个方法所属对象的引用;
    ②它在构造器内部使用,表示该构造器正在初始化的对象。

  2. this 表示当前对象,可以调用类的属性、方法和构造器

  3. 什么时候使用this关键字呢?
    当在方法内需要用到调用该方法的对象时,就用this

2. this的作用

先举例说明:

  1. 案例一
    错误写法:
package day06;public class Person7 {public Person7(int age, String name) {age = age;     //像这种情况编译器分不清哪个age是形参,哪个age是类的成员变量name = name;   //同上}int age;String name;}

正确写法:

package day06;public class Person7 {public Person7(int age, String name) {this.age = age;    //通过this关键字表明this.age是Person7的成员变量,age是构造器的形参this.name = name;  //同上}int age;String name;}
  1. 案例二
    更复杂的用法:
package day06;public class Person7 {public Person7(int age, String name) {this.age = age;this.name = name;}int age;String name;public void setName(String name) {this.name = name;}public void setName1(String name) {this.setName(name);   //name是setName1里传递过来的形参,然后传递给setName的形参// this指类Person7(this.setName() = Person7.setName())}public void showInfo() {System.out.println("姓名:" + this.name);System.out.println("年龄:" + this.age);}
}
  1. 案例三
    this 可以作为一个类中,构造器相互调用的特殊格式
    代码如下:
package day06;public class Person7 {public Person7() {}public Person7(int age) {this.age = age;}public Person7(String name) {this();   // 等同于调用 无参构造器:public Person7()this.name = name;}public Person7(int age, String name) {this(1);   // 等同于调用 有参构造器:public Person7(int age)this.age = age;this.name = name;}int age;String name;public void setName(String name) {this.name = name;}public void setName1(String name) {this.setName(name);}public void showInfo() {System.out.println("姓名:" + this.name);System.out.println("年龄:" + this.age);}
}

总结:
1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员
2.在任意方法内,如果使用当前类的成员变量或成员方法可以在其前面添加this ,增强程序的阅读性
3.this 可以作为一个类中,构造器相互调用的特殊格式

注意:
(1) 使用 this() 必须放在构造器的首行!
(2) 使用 this 调用本类中其他的构造器,保证至少有一个构造器是不用 this 的。(实际上就是不能出现构造器自己调用自己


http://www.ppmy.cn/news/1149300.html

相关文章

LeetCode416 分割等和子集

题目: 、 分析: 因为分割的子数组,不连续;所以双指针、栈,一般不适用,分析起来很像是DP问题。 思路: https://www.imooc.com/article/300277 代码: //TODO 这题有难度

分布式数据库HBase(林子雨慕课课程)

文章目录 4. 分布式数据库HBase4.1 HBase简介4.2 HBase数据模型4.3 HBase的实现原理4.4 HBase运行机制4.5 HBase的应用方案4.6 HBase安装和编程实战 4. 分布式数据库HBase 4.1 HBase简介 HBase是BigTable的开源实现 对于网页搜索主要分为两个阶段 1.建立整个网页索引&#xf…

【Debian】报错:su: Authentication failure

项目场景: 今天我重新刷了一个debian系统。 系统版本: # 查看系统版本 lsb_release -a 我的系统版本: No LSB modules are available. Distributor ID:Debian Description: Debian GNU/Linux 12 (bookworm&#xff…

房产中介租房小程序系统开发搭建

随着移动互联网的发展,租房小程序已经成为许多房产中介公司转型线上的重要工具。通过租房小程序,房产中介公司可以方便地展示房源信息、吸引租户、达成交易。那么,如何通过乔拓云网开发租房小程序呢?下面是详细的开发指南。 1.进入…

Linux 用户层、内核层和MMU

一、Linux 用户层、内核层 在 Linux 中,所有设备都以文件的形式存放在/dev 目录下,都是通过文件的方式进行访问,设备节点是Linux 内核对设备的抽象,一个设备节点就是一个文件。应用程序通过一组标准化的调用执行访问设备&#xff…

【深入了解操作系统进程:它们的角色、管理和重要性】

在计算机科学和操作系统中,进程是一个核心概念,负责管理和执行程序。本文将深入探讨操作系统进程,包括它们的角色、管理方式以及在计算机系统中的重要性。 什么是进程? 进程是操作系统中的一个基本概念,它代表正在运…

2024届通信工程保研经验分享(预推免入营即offer)

2024届通信工程保研经验分享(预推免入营即offer) BackGround夏令营情况:预推免情况: BackGround 本科院校:末九 专业:通信工程 rank:3/123(预推免绩点排名)&#xff0…

【FreeRTOS】【STM32】04.0 FreeRTOS的使用1(创建单任务—SRAM静态内存)

我打算学习FreeRTOS时先学习如何使用它,然后再逐步展开。 RTOS 系统的核心就是任务管理 初步上手 RTOS 系统首先必须掌握任务的创建、删除、挂起和恢复等操作 任务三要素 任务主体函数,任务栈,任务控制块是一个任务的三要素 定义任务函数…