java 构造函数是如何执行的「建议收藏」

java 构造函数是如何执行的「建议收藏」1.构造函数不是方法!!  原因1:方法的话,会直接执行方法体内的代码,但是构造函数首先执行的不是{}里的代码块,而是给对象的成员初始化;      2.方法可以被调用其他方法调用,但是构造函数不能被方法或变量调用。  packagecom.statics.www;publicclassSon{//构造函数执行第二步:privateintnum2=

大家好,又见面了,我是你们的朋友全栈君。

1.构造函数不是方法!!

   原因1:方法的话,会直接执行方法体内的代码,但是构造函数首先执行的不是{}里的代码块,而是给对象的成员初始化;

            2.方法可以被调用其他方法调用,但是构造函数不能被方法或变量调用。

  package com.statics.www;
public class Son {

//构造函数执行第二步:
private int num2=1*cal2();

//构造函数执行第一步:
public static int num1=1*cal1();

//构造函数第0步:
public static int cal1(){

System.out.println(“构造函数第一步:静态变量赋值!”);
return 1;
}

public static int cal2(){

System.out.println(“构造函数第二步:非静态全局变量赋值”);
return 2;

}

{

System.out.println(“构造函数第三步:代码块!”);
}

public Son(){

System.out.println(“构造函数第四步:执行构造函数内部代码块!”);
}

}

执行结果为:

java 构造函数是如何执行的「建议收藏」

2. 从上面测试得出结论:

构造函数初始化对象时,执行的顺序是  

0.方法优先存在于任何变量或者对象,存在于类中,而不是对象中。即构造对象前,方法就存在。

第一步. 静态变量赋值

第二步.代码块或者全局变量,(执行顺序由代码位置决定,如果代码块在前,优先执行代码块;如果变量在前,优先变量赋值)

第三步.执行构造函数内部代码



3.继承中的构造函数执行顺序:

     0.子类重写了父类的方法;

     1.调用父类构造函数();

      2.调用子类构造函数();

父类代码:

package com.statics.www;

public class Father {

private int num=1;
public Father(){

System.out.println(“构造father,接下来调用Test()”);
Test();
}

public void Test(){

System.out.println(“调用Father被重写的方法Test(),现在的Num值是”+num);
}

}

子类代码:

package com.statics.www;

public class Son extends Father {


private int num=1;
public Son(){

System.out.println(“执行Son构造函数内部代码块!”);
}

public void Test(){

System.out.println(“调用Son被重写的方法Test(),现在的Num值是”+num);
}

}

java 构造函数是如何执行的「建议收藏」

可以看出被调用的Test()方法是子类的Test(),另外特别注意Num   =0!!!!!!因为父类的num 是private的不能继承,但是子类的num还没有被赋值(要等到父类构造完成,才能构造子类),所以默认是0

    

   

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156916.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Quartus-II 13 和Modelsim的安装「建议收藏」

    目录一、QuartusII的下载1、下载2、安装三、QuartusII的注册四、安装完成二、ModelsimSE的下载安装与注册一、下载二、安装三、ModelsimSE的注册四、安装完成一、QuartusII的下载1、下载百度网盘下载安装包链接:https://pan.baidu.com/s/1a9d-bq9RZmWrRV542X4IEA提取码:ifte2、安装复制这一串ID三、QuartusII的注册注册器下载:https://pan.baidu.

    2022年4月16日
    61
  • MySQL密码忘了怎么办?MySQL重置root密码方法

    MySQL密码忘了怎么办?MySQL重置root密码方法

    2021年10月8日
    37
  • 解决verycd上不能下载资源的问题

    解决verycd上不能下载资源的问题以下内容为转载:当时在verycd上搜索资料,但是下载不了,忽然看到这一篇文章,试了以下,果然可以下载。顺便记下以便后续使用。唉,我真的挺喜欢verycd的,好多好好的资源哟,尤其是杂志啊、设计素材

    2022年7月2日
    22
  • 鸿蒙系统下的搜狗输入法,搜狗输入法鸿蒙版app下载-搜狗输入法 鸿蒙版v10.28-PC6鸿蒙网…

    鸿蒙系统下的搜狗输入法,搜狗输入法鸿蒙版app下载-搜狗输入法 鸿蒙版v10.28-PC6鸿蒙网…搜狗输入法鸿蒙版app是一款高效手机输入法应用。搜狗输入法鸿蒙版app词库强大、流畅高效,还有表情包、语音变声、花样字等趣味功能。软件介绍搜狗输入法鸿蒙版app是一款打字超準、词库强大、主题美观、表情丰富,用了让您爱不释手的输入法应用。搜狗输入法鸿蒙版app拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用AI表达,斗图,妙语,输入更加有趣。功能介绍【搜狗专属超大词库】搜狗多年积累,超大中文…

    2022年7月13日
    48
  • idea激活码2021.4.21【在线破解激活】

    idea激活码2021.4.21【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    61
  • 矩阵的行列式、秩的意义

    矩阵的行列式、秩的意义线性代数真是一个很抽象的东西,即使我们很多人都学过,但是我相信绝大部分的都不知道这是干嘛用的,找了不少资料,终于发现了这么一篇好文章,于是强烈希望可以和大家分享,帮助大伙进一步理解矩阵的行列式和秩的本质意义。1关于面积:    一种映射 大家会说,面积,不就是长乘以宽么,其实不然。我们首先明确,这里所讨论的面积,是欧几里得空间几何面积的基本单位:平行四边形的面积。平行四边形面积

    2022年5月8日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号