public class ThisTest { private int i = 0; // 第一个构造器:有一个int型形参 ThisTest(int i) { this.i = i + 1;// 此时this表示引用成员变量i,而非函数参数i System.out.println("Int constructor i——this.i: " + i + "——" + this.i); System.out.println("i-1:" + (i - 1) + "this.i+1:" + (this.i + 1)); // 从两个输出结果充分证明了i和this.i是不一样的! } // 第二个构造器:有一个String型形参 ThisTest(String s) { System.out.println("String constructor: " + s); } // 第三个构造器:有一个int型形参和一个String型形参 ThisTest(int i, String s) { this(s);// this调用第二个构造器 // this(i); this.i = i++;// this以引用该类的成员变量 System.out.println("Int constructor: " + i + "\n" + "String constructor: " + s); } public ThisTest increment() { this.i++; return this;// 返回的是当前的对象,该对象属于(ThisTest) } public static void main(String[] args) { ThisTest tt0 = new ThisTest(10); ThisTest tt1 = new ThisTest("ok"); ThisTest tt2 = new ThisTest(20, "ok again!"); System.out.println(tt0.increment().increment().increment().i); // tt0.increment()返回一个在tt0基础上i++的ThisTest对象, // 接着又返回在上面返回的对象基础上i++的ThisTest对象! } }
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
运行结果:
Int constructor i——this.i: 10——11
i-1:9this.i+1:12
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!
说明在什么情况下需要用到this:
第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。
相关推荐
java this关键字的使用包括代码及注释,适合初学者
this关键字的使用详细介绍:在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不...
主要介绍了Java this 关键字的使用方法详解的相关资料,希望通过本文能帮助到大家,让大家彻底理解掌握这部分内容,需要的朋友可以参考下
掌握this关键字在实例方法和构造方法中的使用方法。 了解this关键字与静态成员、方法参数和方法重载之间的关系。 熟悉使用this关键字打印和操作实例变量。 阅读建议: 建议读者在阅读前对Java语法有基本的了解,...
主要介绍了java之this关键字用法实例分析,较为详细的讲述了Java中this关键字的用法及适用范围,并附带实例程序加以说明,需要的朋友可以参考下
主要介绍了this关键字的使用,通过调用构造方法,使用this关键字调用当前对象等详细介绍了this的特点和使用,需要的朋友可以参考下
java代码-使用java解决用this关键字方法重载的源代码 ——学习参考资料:仅用于个人学习使用!
Java this用法 概述:Java 中的 this ...Java this 关键字的用法非常广泛,我们可以使用 this 来访问成员变量、调用构造方法、指代对象自己等等。正确地使用 this 关键字可以使我们的代码更加简洁、易读和易维护。
Java使用this关键字调用本类中的重载构造方法.pdf 学习资料 复习资料 教学资源
员,使用方法是this.成员名,而不带this 的那个便是刑参。另外,还可 以用this.方法名来引用当前对象的某个方法,但这时this 就不是必须的 了,你可以直接用方法名来访问那个方法。 2>当父类的方法被重写后可以用 ...
Java关键字之this用法详解.rar
javathis和super用法 this和 super 关键字的区别
Java关键字是Java编程语言中预定义的保留字,用于表示特定...了解和掌握这些关键字的作用和使用方法,有助于提高Java程序的可读性、可维护性和健壮性。因此,作为Java开发人员,应该熟悉并掌握这些关键字的含义和用法。
这里详细探讨一下this关键字的几大使用范畴:(应该也就只有以下几种用法) 首先this关键字只能在非静态方法内部使用。 调用一个对象的方法时,this生成一个对象的引用,我们可以像对待其他引用一样对待这个引用。 ...
主要介绍了Java的this关键字的使用与方法的重载相关知识,是Java入门学习中的基础知识,需要的朋友可以参考下
在面向对象编程语言中,... 下面就来看看,在JavaScript中各种this的使用方法有什么混乱之处? 1、在HTML元素事件属性中inline方式使用this关键字: ”>division element</div> 我们一般比较常用的方法是在此使用:j
主要介绍了Java编程中this关键字与super关键字的用法示例,super是this的父辈,在继承过程中两个关键字经常被用到,需要的朋友可以参考下
java中主要的一些this关键字的用法,你可以学习一下。相互交流下
定义抽象类以及抽象方法,构造方法,将子类1定义为抽象类,子类2继承子类1,子类2重写抽象方法。用以帮助理解多重继承、抽象方法重写调用、super、this关键字使用、构造方法、重载这几个的知识点
java必学必会之this关键字,java中this的用法进行了详细的分析介绍,感兴趣的小伙伴们可以参考一下