问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中构造函数之间的调用是什么意思

发布网友 发布时间:2022-05-25 21:05

我来回答

4个回答

热心网友 时间:2024-03-26 12:18

来自新浪微博,给你详细的说明一下this
的用法。
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。

package test;
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对象!
}
}

运行结果:

Int constructor i——this.i: 10——11
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14

细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。
3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

说明在什么情况下需要用到this:
第一、通过this调用另一个构造方法,用发是this(参数列表),这个仅仅在类的构造方法中,别的地方不能这么用。
第二、函数参数或者函数中的局部变量和成员变量同名的情况下,成员变量被屏蔽,此时要访问成员变量则需要用“this.成员变量名”的方式来引用成员变量。当然,在没有同名的情况下,可以直接用成员变量的名字,而不用this,用了也不为错,呵呵。
第三、在函数中,需要引用该函所属类的当前对象时候,直接用this。
其实这些用法总结都是从对“this是指向对象本身的一个指针”这句话的更深入的理解而来的,死记不然容易忘记而且容易搞错,要理解!

热心网友 时间:2024-03-26 12:18

构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用sjava中构造函数之间的调用是什么意思

热心网友 时间:2024-03-26 12:19

这就是JAVA实现多态性的一种方式,叫做方法重载,即同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可,this表示引用本类,而Employee(Stringn,inta,float s){}是本类的构造方法,所以this即调用Employee(Stringn,inta,float s){}方法。

热心网友 时间:2024-03-26 12:19

构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。
代码如下:
package test;
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构造函数在什么时候被调用

构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时,系统将不会再提供的无参构造函数。构造函数特点:没有函数返回值,构造函数名与类名相同;当创建类对象的时候调用其对应的...

java构造函数什么时候被调用执行?

Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。拓展:1、构造函数是一种特殊的函数。其主要功能是用来在创建对象时初始化对象, 即为对象成员...

JAVA一个类有两个构造函数,当在一个构造函数中调用另外一个构造函数时...

this()这个能表示是当前对象的构造方法,不会弄两个对象出来。this有个作用就是表示自己类的对象。所以除非想弄两个对象,否则构造掉构造就要加this。操作方法如下:1、首先,先写一个完整数据,这是一个最原始的构造方法,如图。2、访问修饰符,访问权限修饰符对构造方法的重载不影响。所以不是构成不...

java中,子类调用父类函数构造函数中被重写的方法,输出语句为什么是默 ...

1,Java的函数调用是虚拟调用,对象名.方法名,调用的都是其真实类型的函数,就是说,对象实际上是一个dog,那么调用的就是dog的重写方法。父类构造器之所以被调用,是因为子类的构造器会调用父类的构造器,整个过程实际上是dog的构造。2,这个和初始化顺序有关,new对象时,会先初始化成员变量再调用...

Java中构造函数是什么?它应该具体怎么用呢?

Java中构造函数是没有返回值类型的跟类名同名的方法,该方法在对象创建时调用。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 nirenfu 2007-08-01 · TA获得超过1979个赞 知道小有建树答主 回答量:368 采纳率:0% 帮助的人:485万 我也去答题访问个人页 关注 展开全部 构造函数就是在...

关于java编程的问题:一个类调用另一个类中构造方法中所定义的参数。

静态构造函数不允许携带参数,即一个类中只允许有一个静态构造函数。它在第一次访问静态成员或者第一次实例化动态该类的对象之前调用。关于Java中构造方法的问题 可以,一般都用,单例用private java中一个类想调用另一个类中定义的面板怎么调用 将主面板传递给一个类,在这个类中将主面板上的将你想要...

Java在执行子类的构造函数之前,会先调用父类中没有参数的构造函数,其...

这是继承的一种规则,如果你在子类中调用父类的方法而父类又没有初始化你怎么调用,所以在初始化子类时java会自动创建一个父类

java构造函数有什么用,怎么用

类可以定义0个、1个或多个参数的构造器,用于初始化对象的属性。 构造器是无返回值的方法,其主要目的是初始化对象,而不是返回值。 构造器在对象实例化时执行,即与new操作一起调用。例如,A.java中的类A定义了无参和有参的构造函数,Test.java的main方法中通过new A()和new A("Hello")调用...

java构造函数有什么用,怎么用

Java构造函数的作用和用法 一、构造函数的作用 Java中的构造函数主要用于初始化对象的状态。当我们创建一个对象时,构造函数会被自动调用,以设置对象的初始状态。每个类都可以有一个或多个构造函数,根据参数的不同,构造函数的职责也有所不同。其主要作用包括:1. 初始化对象的属性。2. 为对象的行为...

Java 子类调用父类的构造函数

3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的...

java构造函数调用构造函数 java中构造函数何时被调用 Java调用其他类的构造函数 java中构造方法的调用 java继承构造函数调用顺序 java构造方法的调用顺序 java构造方法有什么用 java怎么定义构造函数 java构造函数的八种方法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长途跨省救护车护送选哪家公司好 you'd better not wake up the什么baby? 1.___so much noise? It may wake up the baby. (答案为A,跪求详解... 西安哪些健身教练培训机构比较好呢? ...引语互换1.The teacher told Tom to be careful with his pronunciat... 怀孕汗毛重怎么回事 怀孕后体毛变多是男孩吗 如果你发微信给一女孩子她不回你怎么办? 汽车离合器压盘动平衡? ...放入一杯饱和的硫酸铜溶液,用细线吊住一块有缺口的硫酸铜晶体浸在... 20℃的饱和硫酸铜溶液100克等分成两份,将一份升温到30℃,另一份加入... linux系统的手机能刷Android吗? 青海湖 离天津有多远 青海旅离天津有多少公里 天津到呼伦贝尔经过哪几个城市? 请问 天津 到青海的省会西宁 走高速有多少公里 高速费用是多少??谢谢... 青海西宁到天津塘沽多少公里 天津-青海曲麻菜多少公里 急求天津到青海的火车线 天津到格尔木有多少公里 天津至青海化隆公里数多少 天津港至青海省西宁市德令哈路多少公里 从天津出发去青海省巴洛多少公里 从天津到青海高速公路有多少公里 天津到银川经过青海吗? 从天津到青海湖自驾12天怎么样安排 pvc板材工厂废弃物是不是危废? 从天津到青海的高速路线会不会经过山西 AutoCAD 2007 如何画紫砂壶求解,谢谢 我是一名大二的学生,想请问一下怎么自考教师资格证啊?请知道的回答一下... 在深圳PVC板属于什么垃圾? java构造函数可以调用构造函数吗 Java中构造函数调用父类构造函数可以同时调用其他构造函数吗?麻烦举 ... java在一个类中如何同时调用另一个类中有参的构造函数和成员函数 java怎么调用带参数构造函数 JAVA构造函数可以调用本类的其他方法吗 java中,构造函数间相互调用是否必须使用this关键字? 在java语言里如何在子类中调用父类的有参构造函数 java构造函数怎么调用 java构造方法调用问题 读身份证的读卡器不用身份证还可以用什么代替 Java 构造函数的调用问题 Java这里为什么同时调用了一个类中两个构造函数? 在Java中如何在主函数中调用一个类的构造函数 手机锁屏后,会自动开启飞行模式,这个怎么处理? 手机总是自动进入飞行模式怎么办 网店的前景如何 为什么手机总是自己进入飞行模式 计算机二级是不是可以查了 计算机等级考试成绩能查询了吗 经理说要使用EXCEL版本的购销合同模版,请问能否给发一个到我的邮箱里...