java中this关键字含义,下列选项中关于java中this关键字
目录
为什么有这个参考?这个引用的属性是什么
00-1010我们先来看一个代码示例。
公开课日期{ public int year公共int月;公共int日;public void setDay(int y,int m,int d){ year=y;月=m;日=d;} public void print date(){ system . out . println(year / month / day);} public static void main(string[]args){//构造三种日期类型的对象Date D1=new Date();日期d2=新日期();日期d3=新日期();//设置D1、D2和D3的日期。D1。设定日(2022年3月25日);d2.setDay(2022,3,26);d3.setDay(2022,3,27);//打印日期d1.printlnDate()的内容;D2 . printldate();D3 . printldate();}}上面的代码定义了一个date类,然后在main方法中创建了三个对象,这些对象由Date类中的成员方法进行设置和打印。代码逻辑没有问题,但是有两个小细节是形参名和成员变量名不小心相同了。
public void setDay(int year,int month,int day){ year=year;月=月;日=日;}在这个方法中,参数的名字和对象的成员变量的名字是重复的,编译器是混乱的。不知道谁把值赋给了谁。这三个对象都调用setDate和printDate方法,但是这两个方法中没有关于对象的描述。setDate和printDate方法如何找到引用自己的对象并调用这个对象的数据?(这一段有点绕弯,大家好好看一下。)然后,这就是背后的操纵者。
为什么要有this引用?
Java编译器给每个“成员方法”增加一个隐藏引用类型参数。引用参数指向当前对象(成员方法运行时调用成员方法的对象),成员方法中所有成员变量的操作都是通过这个引用访问的。但是,所有操作对用户都是透明的,用户在调用方法时不需要特意传入对象或引用变量的地址值。编译器会自动为您完成。
/** *用IntelliJ IDEA创建。* Description:您好,非常感谢您的评论~ * user : * Date :-03-28 * destination : */public class Date { public int year;公共int月;公共int日;public void setDay(int year,int month,int day){ this . year=year;this.month=月;this.day=day} public void print date(){ system . out . println(this . year / this . month / this . day);}}:这是指调用成员方法的对象。这里先把主方法填好再观察。
public static void main(String[]args){ Date d=new Date();d.setDay(2020,9,15);d . print date();}
在我们进入调试之后,首先程序执行代码来创建对象,我们可以看到这里存储了一个地址值。
然后我们继续。
当程序进行到d.setDay行时,我们可以发现引用变量D指向的对象的地址值也是Date@701。这是什么意思,这和D指的是同一个物体?
什么是this引用
this this类型:指对应的类类型,即调用哪个对象的引用类型。这只能在成员方法中使用。这个只能引用当前对象,不能引用其他对象。它有最后一个属性(稍后解释)。这是成员方法的第一个隐藏参数,编译器会自动传递它。当成员方法被执行时,编译器将负责调用它。
感谢阅读,希望能帮到你。
以上就是本文关于Java这个关键字的详细介绍。更多相关Java this内容,请搜索之前关于热门IT的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。