java类中的this是什么意思,java的this是什么意思

  java类中的this是什么意思,java的this是什么意思

  这在类内部用来表示类实例本身。

  这个关键字是类中对自身的引用,它可以方便类中的方法访问它们自己的属性。

  java中this用法

  1、当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分。

  课程演示{

  String=“这是一个成员变量”;

  void fun(字符串)

  system . out . println(str);

  system . out . println(this . str);

  this.str=str

  system . out . println(this . str);

  }

  }

  公共类This{

  公共静态void main(String args[]){

  Demo Demo=new Demo();

  Demo.fun(这是一个局部变量);

  }

  }分析:上面的类Demo中有一个成员变量str和一个局部变量str(类方法中的形参)。显然,局部变量和成员变量同名。此时,一般在方法中直接使用str,实际上使用的是局部变量str,对成员变量str没有影响。这时,如果你需要对成员变量做一些事情,你必须使用这个关键字。

  有一个问题。如果方法中没有str,在方法中使用成员变量str会怎么样?实际上,方法中的所有操作都指向成员变量str。《java编程思想》第84页中间有一句话:如果在一个方法内部调用同一个类的另一个方法,可以不用这个。同样,如果在一个方法中没有与成员变量同名的局部变量,那么在这个方法中使用成员变量时就没有必要使用这个。您可以运行以下代码来查看。

  课程演示{

  String=“这是一个成员变量”;

  void fun(String str1){

  system . out . println(str 1);

  system . out . println(str);

  }

  }

  公共类This{

  公共静态void main(String args[]){

  Demo Demo=new Demo();

  Demo.fun(这是一个局部变量);

  }

  }2、this关键字把当前对象传递给其他方法

  这里有一个经典的例子,是85页的java编程思想的例子。我们拿出来仔细研究一下。

  类别人员{

  公共void吃(苹果苹果){

  apple peeled=apple . get peeled();

  system . out . println( Yummy );

  }

  }

  类别削皮器{

  静态苹果皮(苹果苹果){

  //.去除果皮

  退回苹果;

  }

  }

  苹果类{

  苹果去皮(){

  返回peeler . peel(this);

  }

  }

  公共类This{

  公共静态void main(String args[]){

  新人()。吃(新苹果());

  }

  }

  如何解决写爬虫IP受阻的问题?立即使用。

  这是我自己的理解,不一定正确。看看书上是怎么说的:苹果需要调用Peeler.peel()方法,这是一个外部工具方法,它会执行由于某种原因必须放在苹果之外的操作(可能是因为外部方法会应用到很多不同的类,但是你不想重复这些代码)。为了将自身传递给外部方法,必须使用这个关键字。

  分析:想象一个场景。如果各种水果都是这样削的,只要给我,我也会这样削。然后,结合上面的例子,传入一个水果。在我们吃它之前,我们必须得到peel(),我们必须把这个水果作为参数传递给外部的peel(),用这个来表示我们自己,传递给外部的方法。

  3、当需要返回当前对象的引用时,就常常在方法写return this;

  这种方法的优点是,当您使用对象调用方法时,方法返回修改后的对象,您可以使用该对象执行其他操作。因此,很容易对一个对象执行多个操作。

  公共类This{

  int I=0;

  此增量(){

  I=2;

  还这个;

  }

  作废打印(){

  system . out . println( I= I);

  }

  公共静态void main(String args[]){

  This x=new This();

  x.increment()。增量()。print();

  }

  }结果是:

  44、在构造器中调用构造器需要使用this

  一个类有许多构造函数。有时您希望在一个构造函数中调用其他构造函数,以避免代码重复。可以使用这个关键字。java编程思想中有一段话:通常写这个的时候,指的是“这个对象”或者“当前对象”,它本身就表示对当前对象的引用。在构造函数中,如果为此添加了参数列表,它就有不同的含义。这将导致显式调用与此参数列表匹配的构造函数;所以有一个直接调用其他构造函数的方法。

  仔细分析:

  从主函数开始,new Flower()将在内存中分配空间并初始化对象。初始化的对象是调用构造函数,这里没有写参数。当然是调用默认构造函数,也就是不带参数的构造函数。

  这个无参数构造函数的第一行代码是这样的( hi ,122);这意味着无参数构造函数调用带两个参数的构造函数,带两个参数来构造函数。第一行代码是这样的:这行代码自动将构造函数与一个参数进行匹配,发现Flower(String ss)的比较是一个字符串类型的参数。

  然后调用带字符串参数的构造函数,打印:constructor s=hi只有一个字符串参数;然后回到上一级调用函数,也就是带两个参数的构造函数,打印出来:带String和int类型参数的构造函数;回到上一级,就是无参数构造函数。Print:默认的构造函数。

  此时,构造函数已经初始化了新创建的对象,最后在主函数的最后一行代码中打印出来:petalCount=122 s=hi。

  画个图更好看。

  有几点需要注意:

  1,这个只能调用一个构造函数,一个构造函数中不能同时调用两个构造函数;

  2.必须把调用的构造函数放在第一个位置,这也解释了为什么一个构造函数不能调用两个构造函数,第二个必然在第一个位置之外。

  3.在本例中,在带有两个参数的构造函数中,您可以使用它来调用任何其他只有一个参数的构造函数。你看着办,喜欢哪个就调哪个。

  4.在构造函数以外的方法中,不能使用此调用构造函数。代码中的注释都无法正确编译。

  this总结

  1.它表示对当前对象的引用!

  2.这意味着使用类的成员变量而不是函数参数。

  3.用来指代构造函数中满足指定参数类型的构造函数(实际上就是构造函数)。但是这里一定要注意:只能引用一种构造方法,而且必须在开头!

  4.显然,这不能用在static方法中,因为这指的是当前对象,而static没有对象。

  我们,大量免费的Java入门教程,欢迎在线学习!这在java里就是这个意思。更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: