【Java 基础】3 面向对象 - this

- 第 150 篇 -
Date: 2025 - 11- 16
Author: 郑龙浩(仟墨)

文章目录

  • [【Java 基础】](#【Java 基础】)
    • [3 面向对象 - this](#3 面向对象 - this)
      • [3.1 介绍](#3.1 介绍)
      • [3.2 This 核心作用:](#3.2 This 核心作用:)
      • [3.3 示例代码 + 关键说明](#3.3 示例代码 + 关键说明)

【Java 基础】

3 面向对象 - this

3.1 介绍

this 就是一个变量,可以用在方法 中,用于拿到当前类中的对象

  • 哪个对象调用这个方法 ,这个方法中的this就指向(表示)哪个对象
  • 例如:若对象 s1调用 fun()方法,则 fun()中的 this就代表 s1对象

3.2 This 核心作用:

  • 解决成员变量与局部变量同名时的访问冲突

  • 当方法参数或局部变量与类的成员变量同名时,使用 this明确指向当前对象的成员变量,避免歧义

3.3 示例代码 + 关键说明

如下:

  • 若直接写 name = name,编译器无法区分两个 name,赋值无效。
  • this实际指向的是对象实例 (如 s1)的成员变量,而非类的抽象定义
  • 可以理解为类为模板,对象为具体实体,this用于操作当前实体的数据

Test.java 文件

java 复制代码
package zhenglonghao.constructor;

public class Test {
    public static void main(String[] args) {
        Student s1 = new Student("ZLH", 20, "男");

        // 输出信息
        System.out.println("姓名:" s1.name + ",年龄:" + s1.age + ",性别:" + s1.sex);
    }
}

Student.java 文件

java 复制代码
// ====== Student.java 文件======
package zhenglonghao.constructor;

public class Student {
    String name;
    int age;
    String sex;

    // 无参构造器
    public Student() {}

    // 有参构造器(姓名和年龄)
    public Student(String name, int age, String sex) {
        
        this.name = name; // this.name 指向当前对象的成员变量; 右侧 name 为构造器参数
        // 如果直接写name = name,编译器无法区分两个 name,赋值无效,所以这里的this.name就是表示「对象的变量name」,而不是方法中的变量「name」
        this.age = age; // 同上
  	    this.sex = sex; // 同上
    }
}
相关推荐
xuxigifxfh8 小时前
HJ11 数字颠倒
java·开发语言·华为机考
wno7048 小时前
Spring Boot整合Quartz
java·spring boot·后端
一只旭宝8 小时前
数据结构与算法复习手册:从写过,到讲清楚
开发语言·数据结构·c++·算法
百度一下吧8 小时前
断网后 WebView 加载单页面应用:页面跳转 JS 加载失败的处理方案
开发语言·javascript·ecmascript
步行cgn8 小时前
MySQL 报错:Access denied for user ‘root‘@‘localhost‘ 详解
java·数据库·spring
神仙别闹9 小时前
基于C语言开发的捕捉流星小游戏
c语言·开发语言
程序员Sunday9 小时前
Promise.all、allSettled、race、any 怎么选,失败后其他请求会怎样
开发语言·前端·javascript
一个有温度的技术博主9 小时前
深拷贝和浅拷贝:一次“搬家”事故
java·后端
小静AI工程实验室9 小时前
Python 爬虫解析 JSON-LD:多块 script、@graph 与坏数据的 9 个边界
爬虫·python·json
daxiangxm9 小时前
GEO策略:让AI直接引用你的内容
开发语言·团队开发·运维开发·个人开发·数据库开发