Java 非静态初始化的例子

所属分类: 软件编程 / java 阅读数: 155
收藏 0 赞 0 分享

在继承关系中,静态初始化、非静态初始化和构造函数的执行顺序

public class ExA {
  static {
    System.out.println("父类--静态代码块");
  }
 
  public ExA() {
    System.out.println("父类--构造函数");
  }
 
  {
    //非静态代码块
    System.out.println("父类--非静态代码块");
  }
 
  public static void main(String[] args) {
    new ExB();
  }
}
 
class ExB extends ExA {
  static {
    System.out.println("子类--静态代码块");
  }
  {
    //非静态代码块
    System.out.println("子类--非静态代码块");
  }
 
  public ExB() {
    System.out.println("子类--构造函数");
  }
}

执行结果:

父类--静态代码块
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数

从上边的例子我们可以得出非静态代码块的初始化顺序是在静态代码块的初始化之后。
下边我们再来看另一个例子:

class Mug{
  public Mug(int marker) {
    System.out.println("Mug("+marker+")");
  }
  void f(int marker){
    System.out.println("f("+marker+")");
  }
}
public class Mugs {
  Mug mug1;
  Mug mug2;
   
  {
    //非静态代码块
    mug1 = new Mug(1);
    mug2 = new Mug(2);
    System.out.println("mug1 & mug2 initialized");
  }
  Mugs(){
    System.out.println("Mugs()");
  }
   
  Mugs(int i){
    System.out.println("Mugs(int i)");
  }
   
  public static void main(String[] args) {
    System.out.println("Inside main()");
    //首先执行Mugs类中非静态代码块,创建两个对象。然后执行无参构造函数
    new Mugs();
    System.out.println("new Mugs() completed");
    //再执行Mugs类中非静态代码块,这也是和静态代码块只初始化一次的不同之后,其次调用有参构造函数
    new Mugs(1);
    System.out.println("new Mugs(1) completed");
  }
 
}

以上就是Java 非静态初始化的例子的详细内容,更多关于Java 非静态初始化的资料请关注脚本之家其它相关文章!

更多精彩内容其他人还在看

Java输入输出流复制文件所用时间对比

这篇文章主要介绍了Java输入输出流复制文件所用时间对比的相关资料,非常不错,具有参考解决价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java线程中start和run方法全面解析

这篇文章主要介绍了Java线程中start和run方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java的JSON处理器fastjson使用方法详解

下面小编就为大家带来一篇Java的JSON处理器fastjson使用方法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Java 二维码,QR码,J4L-QRCode 的资料整理

本文主要介绍Java 中二维码,QR码,J4L-QRCode,这里整理了详细的资料供大家学习参考关于二维码的知识,有需要的小伙伴可以参考下
收藏 0 赞 0 分享

java哈夫曼树实例代码

这篇文章主要为大家介绍了java哈夫曼树实例代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android读取本地或网络图片并转换为Bitmap

这篇文章主要为大家详细介绍了Android读取本地或网络图片,并转换为Bitmap,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java日期时间操作的方法

这篇文章主要为大家详细介绍了Java日期时间操作的一些方法,获得Calendar,定义日期/时间的格式等,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java 获取路径的各种方法(总结)

下面小编就为大家带来一篇java 获取路径的各种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

java数据结构与算法之奇偶排序算法完整示例

这篇文章主要介绍了java数据结构与算法之奇偶排序算法,较为详细的分析了奇偶算法的原理并结合完整示例形式给出了实现技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

java数据结构与算法之双向循环队列的数组实现方法

这篇文章主要介绍了java数据结构与算法之双向循环队列的数组实现方法,结合实例形式分析了双向循环队列的原理与数组实现技巧,并附带说明了该算法的用途,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多