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

    public class 初始化顺序 {

        private String kkk="kkk";

        private static String abc="abc";

        {

           System.out.println(非静态快1”);

        }

        {

           System.out.println(非静态快2”);

        }

        static{

           System.out.println(静态快1”);

        }

        static{

           System.out.println(“静态快2”);

        }

        public 初始化顺序()

        {

           System.out.println("构造方法");

        }

        public static void main(String[] args) {

           new 初始化顺序();

        }

    }

     

    输出结果为 静态快1 , 静态快2, 非静态快1, 非静态快2, 构造方法

     

    由上面这个类分析结果如下

     

        1 一个类中可以存在多个静态块与非静态块

        2 多个静态块 一起执行 按照上下顺序

        2类的初始化顺序为   静态属性》非静态属性-》静态块-》非静态块-》构造方法

     

     

    假如还存在父类的话 那么加载顺序是怎样了 例子:

    package com.test;

    class parent{

        private String kkk="kkk";

        private static String abc="abc";

        {

           System.out.println("父非静态块1");

        }

        {

           System.out.println("父非静态块2");

        }

     

        static{

           System.out.println("父静态块1");

        }

        static{

           System.out.println("父静态块2");

        }

        public parent()

        {

           System.out.println("父构造方法");

        }

    }

    public class 初始化顺序 extends parent{

        private String kkk="kkk";

        private static String abc="abc";

        {

           System.out.println("非静态块1");

        }

        {

           System.out.println("非静态块2");

        }

     

        static{

           System.out.println("静态块1");

        }

        static{

           System.out.println("静态块2");

        }

        public 初始化顺序()

        {

           System.out.println("子构造方法"+kkk);

        }

       

        public static void main(String[] args) {

           new 初始化顺序();

        }

    }

     

    显示结果

    父静态块1

    父静态块2

    静态块1

    静态块2

    父非静态块1

    父非静态块2

    父构造方法

    非静态块1

    非静态块2

    子构造方法kkk

     

    类的初始化顺序为   父类静态属性-》子类静态属性-》父类非静态属性-》子类的非静态属性-》父类静态块-》子类静态块》父类非静态属块-》父类的构造方法-》子类非静态属块-》子类的构造方法-

  • 相关阅读:
    总结Cnblogs支持的常用Markdown语法
    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
    我的博客今天开通了,请多指教!
    技术分析:Femtocell家庭基站通信截获、伪造任意短信
    数据库防火墙如何防范SQL注入行为
    Pjax.js防刷新技术
    【写给新人】做开发几年的个人经历
    WebRTC之PeerConnection的建立过程
    基于Licode demo的屏幕共享功能的实现
    基于WebRTC的MCU开源项目Licode的环境搭建
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9332111.html
Copyright © 2011-2022 走看看