zoukankan      html  css  js  c++  java
  • java初始化顺序

     1 package com.zhangcy.test.init;
     2 
     3 public class Base {
     4     
     5     int str;
     6     static int val1=1;
     7     final int val2=2;
     8     static final int val3 = 3;
     9     
    10     public Base(final int s){
    11         printStr();
    12         System.out.println("pre-base:"+str);
    13         str = s;
    14         this.printStr();
    15         System.out.println("aft-base:"+str);
    16     }
    17     
    18     public Base(){
    19         printStr();
    20     }
    21     
    22     private void printStr(){
    23         System.out.println("base:"+str);
    24         System.out.println("base-val1:"+val1);
    25         System.out.println("base-val2:"+val2);
    26         System.out.println("base-val3:"+val3);
    27     }
    28 
    29 }
    package com.zhangcy.test.init;
    
    
    public class Derived extends Base {
    
        int str;
        static int val1=4;
        final int val2=5;
        static final int val3=6;
        
        //Base base = new Base(str);
        //static Base base2 = new Base();
        
        public Derived(int s) {
            super();
            System.out.println("pre-derived:"+str);
            str = s;
            System.out.println("aft-derived:"+str);
            printStr();
        }
        
        public void printStr(){
            System.out.println("derived:"+str);
            System.out.println("derived-val1:"+val1);
            System.out.println("derived-val2:"+val2);
            System.out.println("derived-val3:"+val3);
        }
    
    }
    package com.zhangcy.test.init;
    
    
    public class Basetest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            /*float f = (short)10/10.2f*2;
            double d = (short)10/10*2;*/
            
            Derived derived = new Derived(1);
            //derived = new Derived(10);
            //Derived derived1 = new Derived(20);
             Base base = new Derived(3);
             
            
        }
    
    }

    1、父类的static变量,逐个上溯,找到最顶级的父类的static变量,依次往下初始化,直至当前类。

    2、进入当前类的构造方法,构造方法第一句当然是调用父类的构造方法,依次上溯,找到最顶级的父类,先初始化父类的实例变量,再执行父类构造方法里面的语句,这样依次往下进入当前类,初始化当前类的实例变量,再执行当前类构造方法中调用父类构造方法之后的语句。

    (未完待续)

  • 相关阅读:
    火狐浏览器看哪些地方加nofollow
    2017.6.14-网站分析
    2017.6.11-目标关键词优化 三个方面内容
    2017-6-9长尾关键词优化
    2017.6.7seowhy学习笔记---seo知识总纲
    使用 WordPress 自定义字段功能为文章添加下载按钮
    xftp和xshell有什么区别
    决定网站排名的6个干货
    转载:如何在wordpress主题中添加设置页面
    win10+ubuntu双系统安装方案
  • 原文地址:https://www.cnblogs.com/zhangcybb/p/3977781.html
Copyright © 2011-2022 走看看