边学边记——Java中的this关键字的用法

本文介绍了Java中this关键字的用途,包括用于访问成员变量以避免就近匹配原则引起的错误,修饰方法以明确调用当前类的方法,以及在构造方法间的调用来减少代码重复。同时,解释了this作为当前对象引用的概念,并通过实例展示了this在不同场景下的使用。此外,强调了this不能在静态域中使用的限制。
摘要由CSDN通过智能技术生成

目录

1.修饰属性,表示调用类中的成员变量

2.修饰方法

(1).修饰普通方法(可写可不写)

(2).this修饰构造方法

注意


1.修饰属性,表示调用类中的成员变量

首先,我们先来了解一个概念:

程序的就近匹配原则:编译器会从调用代码处的最近位置查找有无匹配的变量或者方法,若找到直接使用最近的变量或方法。

eg:定义一个学生类,使用构造方法时,如果我们这样写,其实是构造函数中的形参在自己调用自己,很明显是错误的。这样并没有将构造函数中传入的值赋给成员变量,也就是由于就近匹配原则导致的。

我们实际上想表达的意思是将构造函数传入的值赋给成员变量,这时我们就可以使用this关键字来解决这个问题,如下:

  

public class Student {
    /*
    定义一个学生类
     */
    public String name;//姓名
    public int sno;//学号

    public Student(String name, int sno) {
        this.name = name;
        this.sno = sno;
    }
}

2.修饰方法

(1).修饰普通方法(可写可不写)

语法格式:this.方法名(参数);

最好写上,使用 this 表示明确表示调用的是当前类的方法。

public void fun(){
    System.out.println("姓名为:"+name+" 学号为:"+sno);
    this.show();//等同于show();
}

public void show(){
    System.out.println("调用show成员方法");
}

(2).this修饰构造方法

语法格式:this(构造方法的参数);

注意:没有 “.” 表示调用的类中的构造方法。

主要可以表示构造方法之间的相互调用。

思考

这样做的目的:主要是减少了代码的重复。 

public Student() {//无参构造函数
    System.out.println("************");
}

public Student(String name) {//有一个参数的构造函数
    this();//调用无参构造函数
    this.name = name;
}

public Student(String name, int sno) {//有两个参数的构造函数
    this(name);//调用有一个参数的构造函数
}

注意:

  • a.this调用构造方法必须放在当前构造方法的首行调用。
  • b.对构造方法的调用不能成 “环” ,必须线性调用。

3.this表示当前对象的引用(就像照镜子)

当前是通过哪个对象调用的属性或者方法,this就指代谁。

public void fun1(){
    System.out.println(this);
}

public static void main(String[] args) {
    Student stu=new Student("生菜虾",1234);
    System.out.println(stu);
    stu.fun1();
    System.out.println("-----------------");
    Student stu1=stu;
    System.out.println(stu1);
    stu1.fun1();
    System.out.println("-----------------");
    Student stu2=new Student("蜜桃兔",2333);
    System.out.println(stu2);
    stu2.fun1();
}

注意:

this不能在静态域中使用 。

如有建议或想法,欢迎一起讨论学习~

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值