android 代码执行顺序,Android代码块执行顺序分析总结

本文介绍了Android代码块执行顺序分析总结,分享给大家,具体如下:

子类、父类变量,代码块,以及构造方法的加载顺序,是我们在程序开发中时不时遇到的一个问题,也是比较容易混淆的。

基础准备:

变量: 成员变量(叫类变量、实例变量)和局部变量

方法: 成员方法和构造方法

代码块:普通代码块、构造代码块、静态代码块、同步代码块

测试的父类:

public class ParentClass {

public static String name = "爸爸";

public int age = 40;

public ParentClass(){

System.out.println("父类构造函数");

}

//非静态代码块

{

System.out.println("父类非静态代码块" + "---" + age);

}

//静态代码块

static{

System.out.println("父类静态代码块" + "---" + name);

}

}

测试的子类:

public class ChildrenClass extends ParentClass{

public static String name = "儿子";

public int age = 15;

public ChildrenClass(){

System.out.println("子类构造函数");

}

{

System.out.println("子类非静态代码块" + "---" + age);

}

static {

System.out.println("子类静态代码块" + "---" + name);

}

}

执行new ChildrenClass()结果:

bcd6a4c7dc1e34228525c15f06929e3e.png

结果分析:

父类静态代码块执行前,父类静态变量就已经执行了。

父类非静态代码块执行前,父类非静态变量就已经执行了。

上面结论子类同理。

代码块执行顺序总结:

父类的静态成员变量—->父类静态代码块—->子类静态成员变量—->子类静态代码块—>父类非静态变量—->父类非静态代码块—->父类构造方法—->子类非静态变量—->子类非静态代码块—->子类构造方法。

另外关于代码块的总结:

在类第一次调用时,静态代码块只执行这一次。

静态代码块和静态方法只能调用静态变量;

非静态代码块和非静态方法可以调用任何(静态+非静态)变量。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值