【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; // 同上
    }
}
相关推荐
xrkhy1 天前
多线程,高并发、物联网以及spring架构的面试题-->周
java·spring·架构
jgyzl1 天前
2025.12.21 学习web前必要知识点梳理
java·hash
C_心欲无痕1 天前
js - 双重否定!! 与 空值合并 ??
开发语言·javascript·ecmascript
半夏知半秋1 天前
rust学习-探讨为什么需要标注生命周期
开发语言·笔记·学习·算法·rust
superman超哥1 天前
Rust 生命周期边界:约束系统的精确表达
开发语言·后端·rust·rust生命周期边界·约束系统
a程序小傲1 天前
中国邮政Java面试被问:gRPC的HTTP/2流控制和消息分帧
java·开发语言·后端
forestsea1 天前
Springboot 4.0十字路口:虚拟线程时代,WebFlux与WebMVC的终极选择
java·后端·spring
csbysj20201 天前
Vue3 表单
开发语言
Sylvia-girl1 天前
Java之构造方法
java·开发语言
予枫的编程笔记1 天前
深度解析Kibana:从基础到进阶的全维度数据可视化指南
java·人工智能·elasticsearch·kibana