广告
返回顶部
首页 > 资讯 > 精选 >java构造器的执行顺序是什么
  • 936
分享到

java构造器的执行顺序是什么

2023-06-17 10:06:38 936人浏览 独家记忆
摘要

这篇文章给大家介绍java构造器的执行顺序是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1,在没有静态块的情况下,子类的对象创建时,父类的无参构造器-->子类的构造器(产生对象的构造器,如果是无参则执行的是

这篇文章给大家介绍java构造器的执行顺序是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1,在没有静态块的情况下,子类的对象创建时,父类的无参构造器-->子类的构造器(产生对象的构造器,如果

是无参则执行的是无参构造器,如果执行的是有参则执行的有参构造器)

现在的父类中只有两个构造器:

Father.java   Father {      public Father(){          System.out.println("我是父类的无参构造器");      }             public Father(String username){          System.out.println("我是父类有参构造器,传过来的参数是+"+username);      }  public class SonDemo extends Father{         public SonDemo(){          System.out.println("我是--子类--的无参构造器");      }      public SonDemo(String username){          System.out.println("我是子类的有参构造器,参数是"+username);      }             public void sys(){          System.out.println("我是子类的sys方法");      }             public static void main(String[] args) {          //里面的内容在下面有说明      }                       }

①,子类使用无参构造器创建对象:

在SonDemo 的main方法中加入创建对象的代码:

SonDemo son = new SonDemo();         }

我是父类的无参构造器

我是--子类--的无参构造器

②,子类使用有参构造器创建对象:

SonDemo的main方法中加入

SonDemo son = new SonDemo("than you ma");

那么控制台打印的结果是:

我是父类的无参构造器

我是子类的有参构造器,参数是than you ma

也就是说在子类调用无参构造器创建对象的时候,在执行它自己的有参构造器之前首先执行父类的无参构造器。

③,在子类中创建父类的对象,使用无参,

SonDemo son = new SonDemo("than you ma");  Father ff = new Father();

SonDemo的main方法中加入

我是父类的无参构造器

我是--子类--的无参构造器

我是父类的无参构造器

调用了父类的无参构造器,有参的创建对象调用的是有参构造器。

总结:在创建子类对象的时候,首先会调用父类的构造器,让后在调用子类相应的构造器创建对象,在子类创建父类对象时,就是直接调用父类自己相应的构造器。

如果在子类和父类中存在静态块;执行顺序有会是怎么样的了?

答,静态块会在构造器之前运行。不管是子类还是父类。创建一个对象的时候,会首先加载它的静态块。

Father.java  public class Father {         //静态块      static{          System.out.println("father  static ");      }             public Father(){          System.out.println("我是父类的无参构造器");      }             public Father(String username){          System.out.println("我是父类有参构造器,传过来的参数是+"+username);      }  }     SonDemo.java  public class SonDemo extends Father{      //静态块      static{          System.out.println("sonDemo static ");      }             public SonDemo(){          System.out.println("我是--子类--的无参构造器");      }      public SonDemo(String username){          System.out.println("我是子类的有参构造器,参数是"+username);      }             public void sys(){          System.out.println("我是子类的sys方法");      }             public static void main(String[] args) {          SonDemo son = new SonDemo();      }  }

①程序的结果:

father static sonDemo static 我是父类的无参构造器 我是--子类--的无参构造器

因为在创建子类对象之前:会创建父类的一个对象,而静态块会在main之前被加载,所以两个类的静态块首先执行。

然后执行构造器。

②,如果在子类中的main中只创建父类的对象结果是怎么样的呢?

打印结果:

father static sonDemo static 我是父类的无参构造器

为什么子类的静态块会被加载了?是因为我们是在SonDemo中测试,如果在其他类中测试就不会打印。

总结:我们说了这么多就是重要的一点。静态块会在构造器器之前执行。

关于java构造器的执行顺序是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: java构造器的执行顺序是什么

本文链接: https://www.lsjlt.com/news/288340.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java构造器的执行顺序是什么
    这篇文章给大家介绍java构造器的执行顺序是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1,在没有静态块的情况下,子类的对象创建时,父类的无参构造器-->子类的构造器(产生对象的构造器,如果是无参则执行的是...
    99+
    2023-06-17
  • java过滤器执行顺序是什么
    Java过滤器的执行顺序是根据过滤器的配置顺序来确定的。在web.xml文件中,过滤器的配置顺序决定了它们的执行顺序。当一个请求被发...
    99+
    2023-08-11
    java
  • java静态代码块、构造代码块、构造方法的执行顺序是怎样的
    这篇“java静态代码块、构造代码块、构造方法的执行顺序是怎样的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java静态代...
    99+
    2023-06-28
  • Java监听器MouseListener的执行顺序是什么
    Java监听器MouseListener的执行顺序是按照以下顺序执行的:1. 鼠标按下事件:mousePressed()2. 鼠标释...
    99+
    2023-08-16
    Java
  • Java监听器ActionListener的执行顺序是什么
    Java监听器ActionListener的执行顺序是按照事件的触发顺序来决定的。当事件发生时,监听器会按照注册顺序依次执行。例如,...
    99+
    2023-08-16
    Java
  • C++对象的构造顺序是什么
    今天小编给大家分享一下C++对象的构造顺序是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、局部对象的构造顺序对于局部...
    99+
    2023-06-30
  • java代码块的执行顺序是什么
    Java代码块的执行顺序如下: 静态代码块:静态代码块在类加载时执行,并且只执行一次。它用来初始化静态变量或执行一些只需执行一次...
    99+
    2023-10-24
    java
  • mysql的执行顺序是什么
    mysql的执行顺序是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、执行顺序根据查询指定的表格,from计算笛卡尔积。on根据join_condition过滤数据。...
    99+
    2023-06-14
  • Java监听器ActionListener与MouseListener的执行顺序是什么
    这篇文章主要介绍“Java监听器ActionListener与MouseListener的执行顺序是什么”,在日常操作中,相信很多人在Java监听器ActionListener与MouseListener的执行顺序是什么问题上存在疑惑,小编...
    99+
    2023-06-21
  • Kotlin构造函数、成员变量和init代码块执行顺序是什么
    今天小编给大家分享一下Kotlin构造函数、成员变量和init代码块执行顺序是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-04
  • java中代码块的执行顺序是什么
    java中代码块的执行顺序是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java...
    99+
    2023-06-14
  • Java中try-catch-finally执行顺序是什么
    本文小编为大家详细介绍“Java中try-catch-finally执行顺序是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中try-catch-finally执行顺序是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-02
  • golang defer的执行顺序是什么
    在Go语言中,defer语句用于注册延迟调用,延迟调用会在函数执行完毕后被执行,无论函数是正常返回还是发生异常。 当有多个defer...
    99+
    2023-10-22
    golang
  • C#构造函数在基类和父类中的执行顺序
    一、简介 当我们没有在子类构造函数中写上 base(),默认会先调用父类中无参的构造函数,再调用子类。当在有参构造函数后写上base时,只调用子类构造函数中有参的构造函数,隐藏父类无...
    99+
    2022-11-13
  • ASP.NET MVC过滤器执行顺序是什么
    小编给大家分享一下ASP.NET MVC过滤器执行顺序是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!规则一:不同类型的过滤器有一个先后顺序即执行顺序是:授权过滤器->动作过滤器->结果过滤器-&...
    99+
    2023-06-29
  • SQL查询的执行顺序是什么
    本篇内容主要讲解“SQL查询的执行顺序是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL查询的执行顺序是什么”吧!很多 SQL 查询都是以 SELEC&...
    99+
    2022-10-19
  • JS异步的执行顺序是什么
    这篇文章主要介绍“JS异步的执行顺序是什么”,在日常操作中,相信很多人在JS异步的执行顺序是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS异步的执行顺序是什么”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-02
  • switch语句执行顺序是什么
    switch语句执行顺序是按照case标签的顺序进行判断,从上到下逐个比较。当找到与表达式匹配的case标签时,会执行该case标签...
    99+
    2023-09-16
    switch
  • sql和mysql执行顺序是什么
    这篇文章主要介绍了sql和mysql执行顺序是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。sql和mysql执行顺序,内部机制是一样的,最...
    99+
    2022-10-18
  • where子句的执行顺序是什么
    本篇内容介绍了“where子句的执行顺序是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作