• 学前教育
  • 小学学习
  • 初中学习
  • 高中学习
  • 语文学习
  • 数学学习
  • 英语学习
  • 作文范文
  • 文科资料
  • 理科资料
  • 文档大全
  • 当前位置: 雅意学习网 > 语文学习 > 正文

    【Java中的静态块\初始化块及main方法】 Java静态初始化块

    时间:2019-01-07 03:22:09 来源:雅意学习网 本文已影响 雅意学习网手机站

      摘 要: Java是纯面向对象的程序设计语言,通常我们在类中定义成员变量和方法,但是在类中除了成员变量和方法外,还有静态块和初始化块。本文主要介绍Java程序中静态块、初始化块及main方法的运行顺序。
      关键词: Java程序 静态块 初始化块 main函数
      
      我们在编写Java程序时都知道,Java是由类组成的,类又由成员变量和成员方法组成,Java程序的运行由main方法所在的类开始执行;但是,在Java中除了函数、main函数之外,还包括静态块和初始化块,下面对它们分别进行介绍。
      如下面的程序:
      public class exam {
      static{
       System.out.println("static!");
      }
      public static void main(String[ ] args) {
       System.out.println("main function!");
      }
      }
      以上程序包括静态块和main函数,它们的执行顺序是:先执行静态块,然后执行main方法。
      结果如下:
      static!
      main function!
      再看下面的程序:
      public class exam {
      static{
       System.out.println("test");
      }
      {
       System.out.println("exam");
      }
      public static void main(String args[ ]){
       new Child();
      }
      }
      
      class Father{
      static{
       System.out.println("Father static!");
      }
      {
       System.out.println("Father block!");
      }
      Father()
      {
       System.out.println("Father Constructor!");
      }
      }
      
      class Child extends Father{
      static{
       System.out.println("Child static!");
      }
      {
       System.out.println("Child block!");
      }
      Child(){
       System.out.println("Child Constructor!");
      }
      }
      以上程序的执行结果是:Static静态块―父类的静态块―子类的静态块―父类的初始化块―父类的构造函数―子类的初始化块―子类的构造函数。
      结果如下:
      test
      Father static!
      Child static!
      Father block!
      Father Constructor!
      Child block!
      Child Constructor!
      通过对以上程序的分析,我们可以发现在整个程序的执行过程中,除了函数之外还有一些静态块和初始化块,以及它们的执行顺序。Static静态块的特点是在类加载的时候就执行,而且只执行一次。
      再看如下程序的执行结果,以下程序在上面程序的基础上进行了修改。
      public class exam {
      static{
       System.out.println("test");
       //System.exit(0);
      }
      {
       System.out.println("exam");
      }
      public static void main(String args[ ]){
       new Child( );
       new exam( );
       new Child( );
      }
      }
      
      class Father{
      static{
       System.out.println("Father static!");
      }
      {
       System.out.println("Father block!");
      }
      Father( )
      {
       System.out.println("Father Constructor!");
      }
      }
      
      class Child extends Father{
      static{
       System.out.println("Child static!");
      }
      {
       System.out.println("Child block!");
      }
      Child(){
       System.out.println("Child Constructor!");
      }
      }
      结果如下:
      test
      Father static!
      Child static!
      Father block!
      Father Constructor!
      Child block!
      Child Constructor!
      exam
      Father block!
      Father Constructor!
      Child block!
      Child Constructor!
      由以上程序的执行结果可知,当再次创建某一个类的实例的时候,不会再执行类中的静态块,但是初始化块还是会执行。
    本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

    推荐访问:初始化 静态 方法 Java

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章