大家好,今天小编关注到一个比较有意思的话题,就是关于this java语言的问题,于是小编就整理了2个相关介绍this Java语言的解答,让我们一起看看吧。
JAVA中的this.name=name,this中的name和后面的name有啥么区别和作用?
public class Test{private String name;//成员属性public Test(String name){//参数名字 namethis.name=name;就是上面的成员属性,后面的name是传进来的参数名字 name}}
J***A中的构造方法只能调用一次,为什么this();又可以调用另一个构造方法?
这是一个比较好的问题,在学习J***a的过程中,通过对各种调用方式进行发问,从而能越来越深入的了解J***a的运行机制。
要想解释为什么this()可以再次调用构造方法,我们首先需要看一下这种调用是如何产生的,要产生this()调用构造方法,需要先完成一个构造方法的重载,看一个例子:
通过这个例子,我们可以看到this()完成了对构造方法的多次调用,最终的结果是三个构造方法都执行了。
这里面有一点是需要被重点关注的,那就是this()调用一定是位于构造方法中的第一条可执行语句的位置,这是一个硬性规定。为什么有这个规定呢?下面我们沿着这个思路来探究一下,这些构造器在执行过程中都经历了哪些过程。
首先当调用CTest(int a)这个构造方法时,由于其中的this(a,b)调用从而开始调用CTest(int a,int b),同样由于this(a,b,0)从而调用第一个构造方法,也就是CTest(int a,int b,int c),这是一个非常好理解的流程。但是这个流程中有一个明显的问题,就是构造器被调用了3次,那么是不是会产生三个不同的对象呢?看一个例子:
通过这个例子,我们发现,虽然调用了3次构造器,但是只创建出了一个对象。J***a的学习过程中一定要搞清楚一件事情,那就是构造方法的作用是初始化对象,而不是创建对象,创建对象的动作是new完成的!可以简单的说(不太严谨),调用了几次new就创建了几个对象,和调用多少次构造器没有必然的联系。
在J***a语言中,能完成对构造方法调用的,除了this还有super,其实我们在构造对象的时候,构造方法中往往都会有一个super调用,它的作用是调用父类构造器,那么是不是super调用会导致再创建出一个父类对象呢?当然不是!看一个例子:
通过这个例子,更能说明构造器的作用是初始化。在调用期间涉及到静态绑定和动态绑定,动态绑定发生在创建父类属性期间,而子类在调用父类方法时是静态绑定。
我的主要研究方向是大数据和人工智能,也出版过J***a书籍,目前我在头条会陆续写一些关于软件编程、大数据、人工智能等方面的文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。
到此,以上就是小编对于this J***A语言的问题就介绍到这了,希望介绍关于this J***A语言的2点解答对大家有用。