《Oracle Java SE编程指南》13-03:this关键

2020-04-24  本文已影响0人  AT阿宝哥
课程封面-JavaSE-AT阿宝哥

内容导航


前言

this关键字其实与继承没有关系,之所以放在这里学习,是因为this和super很容易让初学者感到迷茫。

1、this关键字

this和super的都有两大作用,即调用属性和方法,调用构造方法。区别是,this调用的都是本类的,super调用的都是父类的。

2、this关键字用途

this关键字既可以代表类自身,也可以代表自身类的当前对象。

2.1、this关键字代表类自身

使用this关键字在自身构造方法内部引用其它构造方法。

在一个类的构造方法内部,也可以使用this关键字引用其它的构造方法,这样可以降低代码的重复,也可以使所有的构造方法保持统一,这样方便以后的代码修改和维护,也方便代码的阅读。

例:

public class Demo {

    private int a;

    private int b;

    public Demo() {

        // this引用构造方法
        this(1, 2);

    }

    public Demo(int a, int b) {
        super();
        this.a = a;
        this.b = b;
    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

}

2.2、代表自身类的当前对象

this关键字可以代表自身类的对象。

注意:this关键字必须放在非静态方法里面

this代表自身对象

在一个类的内部,也可以使用this代表自身类的对象,或者换句话说,每个类内部都有一个隐含的成员变量,该成员变量的类型是该类的类型,该成员变量的名称是this

public class Demo {

    private Demo instance;

    public Demo() {

        instance = this;

    }

}

this引用成员变量

在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,常常用来区分同名的成员变量和局部变量。

public class Demo {

    private int a;

    private int b;

    public Demo() {

    }

    public int getA() {
        return a;
    }

    public void setA(int a) {
        // this引用成员变量
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        // this引用成员变量
        this.b = b;
    }

}

this引用成员方法

在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用。

public class Demo {

    public Demo() {

    }

    public void method1() {

        //this引用成员方法
        this.method2();

    }

    public void method2() {

    }

}

持续更新,欢迎留言提议!
码字很累,多点赞多赞赏!


扫描二维码,关注AT阿宝哥
上一篇 下一篇

猜你喜欢

热点阅读