zoukankan      html  css  js  c++  java
  • Java创建对象的初始化顺序

     

    package com.zhang.test;
    
    class Parent
    {
      private static int j=method();
      private int i=test();
      
      static
      {
         System.out.println(1);
      }
      
      {
         System.out.println(2);
      }
      
      Parent()
      {
         System.out.println(3);
      }
    
      //执行此方法时,因为子类也有,发生了方法重写。所以执行子类的test()方法
      public int test(){
          System.out.println(4);
          return 1;
      }
    
      public static  int method(){
          System.out.println(5);
          return 1;
      }
    
    }
    
    class Child extends Parent
    {
        private static int j=method();
        private int i=test();
          
        static
        {
             System.out.println(6);
        }
          
        {
             System.out.println(7);
        }
          
        Child()
        {
             System.out.println(8);
        }
        public int test(){
            System.out.println(9);
            return 1;
        }
    
        public static  int method(){
            System.out.println(10);
            return 1;
        }
     
    }
    
    /**
     * 只执行一次
     * 初始化父类 静态属性、静态方法、静态代码块按顺序执行
     * 初始化子类 静态属性、静态方法、静态代码块按顺序执行
     *
     * 每new一次执行一次
     * 实例化父类 非静态属性、非静态方法、非静态代码块按顺序执行,执行参构造方法
     * 实例化子类 非静态属性、非静态方法、非静态代码块按顺序执行,执行参构造方法
     */
    public class Test
    {
       public static void main(String[] args)
       {
           new Child();
           new Parent();
           new Child();
       }
    }

  • 相关阅读:
    Python:三元运算
    SaltStack部署服务及配置管理apache+php-第二篇
    SaltStack介绍及简单配置-第一篇
    git基础常用维护命令
    MySQL设置只读模式
    运维杂记-05
    Tomcat的配置,设置内存,获取用户IP
    Linux系统巡检项目
    Redis维护
    nginx配置文件说明
  • 原文地址:https://www.cnblogs.com/zhangjinru123/p/10619194.html
Copyright © 2011-2022 走看看