java关键字this的作用,java类和对象之this关键字
如何解决写爬虫IP受阻的问题?立即使用。
该关键字有三个主要应用:
这会调用该类中的属性,即该类中的成员变量;
这会调用该类中的其他方法;
这会调用该类中的其他构造函数,这些构造函数应该放在构造函数的第一行。
调用成员变量
(推荐课程:java课程)
结合代码,会更具体。请参考以下代码:
公共课学生{
字符串名称;
私有空集合名(字符串名){
this.name=name
}
}在这段代码中,创建了一个类Student,它有一个成员变量名和一个成员方法SetName(字符串名)。由于成员方法接收到的参数名称与成员变量的名称相同,所以它们都是名称,所以这里可以使用这个关键字来调用这个类中的成员变量。它的作用可以简单理解为:这个关键字是调用这个类中的一个成员变量。
但是,这种简单的理解并不准确。这实际上是对当前类对象的引用,通过当前类实例化的对象的引用来访问对象的成员变量。
注意:
该关键字在访问类的成员变量和成员函数时不受访问权限控制,可以访问该类中的所有成员变量和方法,包括私有成员变量和方法。你也可以通过这个访问这个类的静态成员,但是由于静态成员可以通过类名直接访问,所以如果你通过这个访问的话会有一个警告信息“静态字段应该以静态方式访问”。不能在类的静态成员或静态块中使用它。
调用成员方法
请参考以下代码:
包装测试;
公共类ThisTest {
字符串名称;
私有空集合名(字符串名){
this.name=name
system . out . println( setName: this . name );
}
私有void thisTest(字符串名称){
this.setName(名称);
system . out . println( thist: this . name );
}
公共静态void main(String[] args) {
这个测试tt=新的这个测试();
TT . set name( Yida );
TT . thistest( Jenny );
}
}在这段代码中,首先创建测试类,除了增加了一个成员方法thisTest()之外,和前面的没有什么不同。在这个成员方法中,前面的成员函数setName()被这个关键字调用,程序运行结果如下:
集合名称:益达
集合名称:珍妮
这个测试:Jenny调用构造函数
new关键字创建类的对象时会自动调用一个方法,不能像程序中的其他方法一样通过方法名(即类名)调用。但是,如果一个类有多个构造函数,其他的构造函数可以在一个构造函数中被调用。
使用它来调用其他构造函数有以下约束:
其他构造函数只能在构造函数中被this调用,不能在普通方法中使用。
不能通过此递归调用构造函数,也就是说,不能在构造函数中通过此直接或间接调用构造函数本身。
通过此调用其他构造函数必须在构造函数的第一行执行。
因为super调用父类的构造函数也必须在构造函数的第一行执行,所以this和super调用的构造函数不能同时出现在一个构造函数中。不能在一个构造函数中多次调用不同的构造函数。
下面的代码是错误的,因为通过这个关键字,形成了一个递归调用:
//错误示例!
类别测试{
测试(){
这个;
}
测试(内部){
this();
}
tes int b) {
这(1,2);
}
}正确用法如下:
public student {//定义一个类,类的名字是Student。
Public Student() {//定义了与类同名的方法,所以是构造方法。
这个(“你好!”);
}
Public Student(String name) {//定义一个带有形参的构造方法
}
}返回对象的值。
这个关键字不仅可以引用变量或者成员方法,还有一个重要的作用就是返回类的引用。如同在代码中一样,可以使用return this返回对类的引用。此时,该关键字表示类的名称。如果代码在上面的student类中,那么代码所代表的含义就是return student。可以看出,这个关键字不仅可以引用变量或者成员方法,还可以作为类的返回值,这也是这个关键字最有趣的地方。
推荐:java入门。以上是这个关键字在java中如何使用的细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。