当前位置: 首页 > news >正文

Java中的this关键字的用法

解释 Java 中 this 关键字的常见用法:

public class ThisKeywordExamples {// 实例变量private String name;private int age;private double salary;// 1. 区分实例变量和局部变量(构造方法中)public ThisKeywordExamples(String name, int age) {// this.name 表示实例变量,name 表示构造方法的参数(局部变量)this.name = name;this.age = age;}// 2. 区分实例变量和局部变量(普通方法中)public void setSalary(double salary) {// this.salary 表示实例变量,salary 表示方法参数this.salary = salary;}// 3. 调用当前类的其他构造方法(必须位于构造方法的第一行)public ThisKeywordExamples(String name, int age, double salary) {// 调用上面的双参数构造方法this(name, age);this.salary = salary;}// 4. 调用当前类的其他方法public void printFullInfo() {System.out.println("完整信息:");// 调用当前类的 printBasicInfo() 方法this.printBasicInfo();System.out.println("薪资:" + this.salary);}public void printBasicInfo() {System.out.println("姓名:" + this.name + ",年龄:" + this.age);}// 5. 作为方法的返回值(返回当前对象)public ThisKeywordExamples updateAge(int newAge) {this.age = newAge;// 返回当前对象的引用,可实现方法链式调用return this;}// 6. 作为参数传递给其他方法public void sendToDatabase() {// 将当前对象作为参数传递给其他方法DatabaseUtil.save(this);}public static void main(String[] args) {// 测试构造方法中的 this 用法ThisKeywordExamples person = new ThisKeywordExamples("张三", 25);person.setSalary(8000.0);// 测试调用当前类方法的 this 用法person.printFullInfo();// 测试作为返回值的 this 用法(链式调用)person.updateAge(26).printBasicInfo();// 测试作为参数的 this 用法person.sendToDatabase();}
}// 辅助类:演示 this 作为参数传递
class DatabaseUtil {// 接收一个对象参数并保存public static void save(ThisKeywordExamples obj) {System.out.println("保存对象到数据库:" + obj);}
}
 
 

this 关键字的主要用法说明:

  1. 区分实例变量和局部变量
    当方法参数或局部变量与类的实例变量同名时,使用 this.变量名 表示实例变量,避免命名冲突。
    例如在构造方法和 setSalary 方法中,this.name 明确指向类的实例变量。

  2. 调用当前类的其他构造方法
    通过 this(参数列表) 可以在一个构造方法中调用另一个构造方法,减少代码重复。
    注意:这种调用必须放在构造方法的第一行。

  3. 调用当前类的其他方法
    使用 this.方法名() 可以调用当前类的其他方法,增强代码可读性(即使省略 this 也能正常工作,但显式写出更清晰)。

  4. 作为方法返回值
    在方法中返回 this 可以返回当前对象的引用,从而实现方法的链式调用(如示例中的 updateAge(26).printBasicInfo())。

  5. 作为参数传递
    this 可以代表当前对象,作为参数传递给其他方法(如示例中传递给 DatabaseUtil.save() 方法)。

http://www.hskmm.com/?act=detail&tid=34223

相关文章:

  • 网络安全威胁狩猎:主动防御的终极指南
  • C#在二合一平板电脑关于旋转模式相关设置
  • 2026 中考游记
  • MinIO 介绍(3)--MinIO 客户端 mc 管理员功能
  • 8.16
  • 2025-10-19
  • 一文读懂隔离见证
  • 12131
  • 关于火柴盒的记忆
  • PWN手的成长之路-19-int_overflow
  • FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播
  • 2025 年闪测仪厂家企业品牌推荐排行榜,一键式闪测仪,卧式闪测仪,影像闪测仪,立式闪测仪,2D3D 混合式闪测仪,高精度闪测仪,大量程闪测仪,复合式闪测仪公司推荐
  • 2025 年耐火砖厂家企业品牌推荐排行榜,绝热,轻质,莫来石,保温,莫来石轻质,氧化铝泡沫,氧化铝空心球,抗渗碳,高温轻质莫来石,高温耐火砖公司推荐
  • 2025 年护栏板厂家企业品牌推荐排行榜,波形,高速,镀锌,二波,三波,喷塑,国标,绳索,公路护栏板,护栏板立柱公司推荐
  • 2025 年船用锅炉厂家企业品牌推荐排行榜,基于市场口碑,评选值得信赖的船用锅炉公司推荐
  • 2025 年反应釜厂家企业品牌推荐排行榜,实验室,高压,加氢,不锈钢,试验室,氢化,聚合,高温,钛材反应釜公司推荐
  • 2025 年铸铁闸门厂家企业品牌推荐排行榜,四川铸铁闸门,镶铜铸铁闸门,渠道铸铁闸门,圆形铸铁闸门,方形铸铁闸门公司推荐
  • 2025 年启闭机厂家企业品牌推荐排行榜,四川启闭机,四川卷扬启闭机,四川螺杆启闭机,固定卷扬启闭机,手电两用螺杆启闭机,电装启闭机公司推荐
  • 2025 年清污机厂家企业品牌推荐排行榜,四川清污机,格栅清污机,回转式清污机,回转式格栅清污机,不锈钢清污机公司推荐公司推荐
  • AI视频换人工具来了!动作表情完美还原,附下载链接
  • java入门代码示例
  • 下一代超级计算的CPU设计之道
  • 10.18 学校模拟赛 T4
  • 元推理框架,自指自洽,人工智能领域的杂交水稻
  • 在AI技术唾手可得的时代,挖掘新需求成为制胜关键——某知名Linux软件资源库需求洞察
  • 极端的利己主义与虚伪的利他主义
  • WinRAR-7.13-Final-x64-烈火汉化版
  • Docker 常用命令整理
  • Windows端口查看查找exe进程名
  • 【GitHub-SSH】Linux 通用生产ssh-key命令