【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; // 同上
    }
}
相关推荐
橙露15 分钟前
Java并发编程进阶:线程池原理、参数配置与死锁避免实战
java·开发语言
froginwe1115 分钟前
C 标准库 - `<float.h>`
开发语言
JaydenAI16 分钟前
[拆解LangChain执行引擎] ManagedValue——一种特殊的只读虚拟通道
python·langchain
echoVic17 分钟前
AI Agent 安全权限设计:blade-code 的 5 种权限模式与三级控制
java·javascript
PPPPickup19 分钟前
easymall---图片上传以及图片展示
java
骇城迷影20 分钟前
Makemore 核心面试题大汇总
人工智能·pytorch·python·深度学习·线性回归
历程里程碑22 分钟前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Wpa.wk22 分钟前
接口自动化 - 接口鉴权处理常用方法
java·运维·测试工具·自动化·接口自动化
长安牧笛23 分钟前
反传统学习APP,摒弃固定课程顺序,根据用户做题正确性,学习速度,动态调整课程难度,比如某知识点学不会,自动推荐基础讲解和练习题,学习后再进阶,不搞一刀切。
python·编程语言
Pluchon25 分钟前
硅基计划4.0 简单模拟实现AVL树&红黑树
java·数据结构·算法