博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类的初始化和总结
阅读量:7126 次
发布时间:2019-06-28

本文共 979 字,大约阅读时间需要 3 分钟。

hot3.png

class A { 
    static A a=new A('s',1);
    A(char c, int i) { System.out.println("A(char, int)"+"c"+c+"i"+i);} 
}

public class Ex8 extends A { 

    private char c;
    private static  int i;
    static{
        System.out.println("ssssssssssssss"+"i"+i);
    }
    static A v=new A('v',2);
    A z;  

 {

        System.out.println("ssssssssssssss"+"c"+c+"i"+i);
    }
    Ex8() { 
        super('z', 3);

z=new A ('w',1);

        System.out.println("Ex8()"); 
    } 
    Ex8(char a, int j) {     
        super(a, j); 
        c = a;
        i = j;
        System.out.println("Ex8(char,int)");
        System.out.println("zzzzz"+"c"+c+"i"+i);
    }
    public static void main(String[] args) {
        Ex8 ex1 = new Ex8();
        Ex8 ex2 = new Ex8('b', 2); 
    }
}

类的初始化第一步执行的是main方法,这时候有用main的类的加载了,先去找有没有extends,如果有先执行父类的静态的变量的初始化,再执行子类的静态变量的初始化,如果有静态代码块,也会一并执行 ,然后才是执行new出来的对象,先去找父类的构造函数进行初始化,由于初始化构造函数的时候必须先执行成员变量的初始化,所以先执行,然后是子类的

所以输出结果是

A(char, int)csi1

ssssssssssssssi0
A(char, int)cvi2
A(char, int)czi3

A(char, int)cwi1

Ex8()
A(char, int)cbi2
ssssssssssssssc i0

Ex8(char,int)

zzzzzcbi2

转载于:https://my.oschina.net/u/3234136/blog/897333

你可能感兴趣的文章
约瑟夫环C#解决方法
查看>>
ZeroMQ安装说明
查看>>
Ring3 Hook API
查看>>
size of pointer is not size of int
查看>>
插入排序
查看>>
IE 内存泄露
查看>>
mybatis加入条件
查看>>
java基础:11.1 递归
查看>>
Educational Codeforces Round 27
查看>>
Java根据链接生成二维码
查看>>
前台上传文件小优化,上传文件的文件名放到输入框中展示
查看>>
Python3学习笔记22-文件读写
查看>>
老菜鸟苦战oracle asm
查看>>
SUSE LINUX下文件系统变只读的问题解决
查看>>
awk多维数组案例多角度解决实战
查看>>
《跟菜鸟学Cisco UC部署实战》-第 2 章 部署基本环境(一共12章,免费)
查看>>
DDOS***类型以及iptables防范ddos脚本
查看>>
使用顶层架构方法论进行航母作战模拟
查看>>
HSRP和VRRP基本工作原理
查看>>
SystemCenter2012SP1实践(4)安装SCVMM
查看>>