java构造器初始化与清理

java构造器初始化先后顺序:

若此类继承于某基类,则先初始化基类,以此类推,找到最基本的父类,先对基类进行初始化。

  1. 从基类开始依次对类中的static字段进行初始化,

  2. 然后再依次从基类开始对构造方法进行初始化,但是在对构造方法进行初始化的时候,为了保证能够正确的初始化则先要对类中的字段域进行按照代码的先后顺序进行初始化。

a)首先对于类中的基本类型则都会被设置为默认值(若没有赋值则设为null或0)

b)其次然后在进行构造函数的初始化

代码示例
Insect.java类:


class Insect
{
  private int i = 9;
  protected int j;
  Insect()
  {
     print("I = " + i + "j = " + j);
     j = 29;
  }
  private static int x1 = printInit("Insect.static x1 init.");
  static int printInit(String s)
  {
      print(s);
      return 47;
  }
}

Beetle.java 集成Insect.java

public class Beetle extends Insect
{
  private k = printInit("Beetle.k initialized");
  public Beetle()
  {
    print("k = " + k);
    print("j = " + j);
  }
  private static int x2 = printInit("Beetle.static x2 init.");
  public static void main(String[] args)
  {
     print("Beetle constructor.");
     Beetle b = new Beetle();
  }
}

输出结果:

Insect.static x1 init.
Beetle.static x2 init.
I = 9 j = 0
Beetle.k initialized
k = 47
j = 29
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 第一章 对象导论 对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一地...
    niaoge2016阅读 876评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 小艾患者,是我们对HIV感染者的匿称,因为在保护患者隐私的同时还要提醒一起工作的小伙伴注意隔离保护。 第一次接触小...
    笨蛋蛋_1988阅读 499评论 2 2
  • 一个帖子在求职论坛火了 题目是《普通二本大四狗怎么也找不到实习》 火的原因是下面有一排整齐的队列 写着“我是211...
    优实践阅读 1,283评论 0 2