JAVA(二十一)this关键字

 

在Java编程中,this关键字是一个非常重要且常用的概念。对于初学者来说,理解this关键字的实际用途和工作原理,对于掌握面向对象编程(OOP)的基本概念至关重要。

this ,翻译为:这、这个,在java中应该翻译为 “本对象” 或 “对象本身” ,指向的是对象自己

类似于日常的称呼,比如,别人称呼你的时候应该用姓名,比如称呼“赵云”,赵云很帅、赵云武功很强,但是赵云自己称呼自己应该用“我”,赵云:我很帅、我武功很强。而“我”就相当于this。

this 其实就是一个变量,本质上和普通的引用类型变量一样。

比如上面的称呼,无论称呼“赵云”、“我”、“你”,本质都是称呼,而且称呼的对象都是赵云。

this也是如此, 和其他该类的引用类型变量一样,本质都是变量,指向的也是同一个对象,只不过this是内置的变量而已。 作者:老左讲技术 https://www.bilibili.com/read/cv21678386/ 出处:bilibili

this关键字是Java中的一个特殊引用变量,它持有当前对象的引用。在类的非静态方法和构造函数中,可以使用this关键字访问当前对象的成员变量和方法。简单来说,this关键字可以理解为“当前对象自身”的代称

也就是说this出现在成员方法、构造器中代表当前对象的地址也是指向当前对象的引用,局部变量的名字与成员变量的名字相同时,若想在该方法内使用成员变量,必须使用关键字。this出现在构造器或方法中,哪个对象调用它们,this就代表哪个对象。

this关键字的基本用法

1. 访问当前对象的成员变量

当局部变量和成员变量同名时,可以使用 this 关键字来引用成员变量,以区分局部变量和成员变量。。例如:

public class Student {
    private String name;
 
    public Student(String name) {
        this.name = name; // this.name 表示成员变量,name 表示构造函数参数
    }
 
    public void setName(String name) {
        this.name = name; // this.name 表示成员变量,name 表示方法参数
    }
 
    public String getName() {
        return this.name; // 访问当前对象的成员变量
    }
}

在上述例子中,this.name指的是成员变量name,而不带thisname则是方法或构造函数的参数

91fa8fbd4086465c8f56cde43a2549ba.png

2. 调用当前对象的方法

可以使用this关键字调用当前对象的方法:

public class Student {
    private String name;
 
    public Student(String name) {
        this.name = name;
    }
 
    public void displayInfo() {
        System.out.println("Student name: " + this.name);
    }
 
    public void showInfo() {
        this.displayInfo(); // 调用当前对象的displayInfo方法
    }
 
    public static void main(String[] args) {
        Student student = new Student("Alice");
        student.showInfo(); // Output: Student name: Alice
    }
}

在showInfo方法中,使用this.displayInfo()调用了displayInfo方法,可以清晰地表明这是调用当前对象的displayInfo方法。

3. 调用当前类的构造函数
在类的构造函数中,可以使用this关键字调用另一个构造函数。这种用法称为“构造函数重载”,它可以简化构造函数的编写,减少代码重复。需要注意的是,调用构造函数的语句必须是构造函数中的第一条语句。

public class Student {
    private String name;
    private int age;
 
    public Student(String name) {
        this(name, 18); // 调用另一个构造函数
    }
 
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    public void displayInfo() {
        System.out.println("Student name: " + this.name + ", age: " + this.age);
    }
 
    public static void main(String[] args) {
        Student student1 = new Student("Alice");
        student1.displayInfo(); // Output: Student name: Alice, age: 18
 
        Student student2 = new Student("Bob", 20);
        student2.displayInfo(); // Output: Student name: Bob, age: 20
    }
}

this关键字是Java中的一个重要概念,它指向当前对象的实例。通过this关键字,我们可以引用当前对象的成员变量、调用当前对象的其他方法,甚至在构造方法中调用其他构造方法。这使得代码更加清晰、可读性更高,并提供了对当前对象的灵活访问和操作。

 

练习:

定义一个Car类,一个属性name,一个属性price,一个属性speed  

申明一个构造方法Car(name,price),第二个构造方法Car(name,price,speed)

在第二个构造方法里使用this调用第一个构造方法。之后为speed赋值。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值