文档章节

子父类不同属性代码执行顺序

o
 osc_y8yehimr
发布于 2019/03/20 18:05
字数 537
阅读 13
收藏 0

执行顺序

1、 父类的静态代码块 父类的静态属性成员(java虚拟机加载类时就会执行该代码,并且只执行一次),两者的执行顺序取决于他们在程序中出现的顺序

 

2、 子类的静态代码块 子类的静态属性成员(java虚拟机加载类时就会执行该代码,并且只执行一次),两者的执行顺序取决于他们在程序中出现的顺序

 

3、 父类的普通属性默认初始化(普通成员变量),就是在类定义时就赋值的语句

4、 父类的普通代码块(每次new,每次执行)

5、 父类的构造函数(每次new,每次执行)

 

6、 子类的普通属性默认初始化(普通成员变量)就是在类定义时就赋值的语句

7、 子类的普通代码块(每次new,每次执行)

8、 子类的构造函数(每次new,每次执行)

 注意:java中成员属性在显式初始化之前会进行自动初始化,这是不同于c、c++的

 

特例:当前类的成员变量就是当前类的对象

如果成员变量在定义时就new对象,那么当前成员必须为静态变量,否则会运行时报错,并且此时new就直接调用了构造函数,不用等类加载完成

public class Store {
    static Store s1 = new Store();
    static Store s2 = new Store();
    Store(){
        System.out.println("执行构造器方法");
    }
    static{
        System.out.println("执行静态代码块");
    }

    public static void main(String[] args) {
        Store store = new Store();
    }

}

输出:执行构造器方法
执行构造器方法
执行静态代码块
执行构造器方法

如果成员变量在定义时只是声明,那么当前成员不必为静态变量,当对它进行赋值时类已经加载完成

public class Store {
    Store s1 ;
    Store s2 ;
    Store(){
        System.out.println("执行构造器方法");
    }
    static{
        System.out.println("执行静态代码块");
    }

    public static void main(String[] args) {
        Store store = new Store();
    }

}
输出:执行静态代码块
执行构造器方法

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

face-api.js 示例

该示例是基于GitHub的一个开源项目:https://github.com/justadudewhohacks/face-api.js 其核心的库是用js写的,所以它可以在web项目或nodejs 中使用。支持的功能有:【人脸识别】,【表情识...

Canaan_
18分钟前
13
0
树莓派4b + Ubuntu20.04 Server 安装Java8

安装环境: 树莓派4b + Ubuntu20.04 Server 32位 1. 下载jdk https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2. 解压 tar -zxvf jdk-8u251-linux-arm32-vf......

SummerGao
51分钟前
9
0
项目实战:Qt+OpenCV图像处理与识别算法平台

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
54分钟前
7
0
北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解 道翰天琼认知智能api机器人接口。

医疗事关人身安全,要求极高,容错率极低,因此,知识壁垒和技术壁垒都很高。过去,AI系统更多的是服务于终端,辅助医生诊断、决策。但是,医疗很复杂,直接切入终端问题很多。未来十年,AI+...

jackli2020
57分钟前
16
0
源于HystrixCommandStartStream和RollingCommandMaxConcurrencyStream 的 RxJava demo

其实,最近在工作之余看Hystrix源代码已经有一个多月了, 除了对 HystrixCommandProperties ,HystrixCommand 和AbstractCommand 几个类比较了解以外,其余看山不是山,比较懵, 主要是因为H...

专业写BUG的程序员
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部