您的位置 首页 java

漫谈JAVA——关键字this

this的用法

1、表示类的成员变量,而非函数参数(注意在函数参数和成员变量同名是进行区分)

例:

public class Demo{

public int age = 18;

public void print(int age){

System .out.println(“打印类成员变量age=” + this.age);

System.out.println(“打印函数参数变量age=” + age);

}

public static void main(String []args){

Demo Myage = new Demo();

Myage.print(28);

}

}

运行结果:

D:> JAVA c Demo.java

D:>java Demo

打印类成员变量age=18

打印函数参数变量age=28

可见,打印出来的类成员变量为18,为在开始定义的,打印出的函数参数变量为28,为后来传参的。

2.表示返回自身这个对象。

例:

public class Demo{

public int age;

Demo Myageadd(){

age++;

return this;

}

public void print(){

System.out.println(“age=” + age);

}

public static void main(String []args){

Demo Myage = new Demo();

Myage.Myageadd().Myageadd().Myageadd().print();

}

}

运行结果:

D:>java Demo.java

D:>java Demo

age=3

可见返回值为3,年龄自增三次。

3.一个类中定义两个 构造函数 ,在一个构造函数中通过 this 这个引用来调用另一个构造函数。

public class ThisDemo {

运行结果:

D:>java ThisDemo.java

D:>java ThisDemo

最终的名字=Mick

最终的年龄=21

总结一下,this主要要三种用法:

1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在 构造方法 中引用满足指定参数类型的 构造器 (其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

还有就是注意:this不能用在 static 方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

说明在什么情况下需要用到this:

第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。

第二、函数参数或者函数中的 局部变量 和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错。

第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。

文章来源:智云一二三科技

文章标题:漫谈JAVA——关键字this

文章地址:https://www.zhihuclub.com/190303.shtml

关于作者: 智云科技

热门文章

网站地图