Java中成员变量、构造方法、代码块执行顺序剖析

今天,测试了一下java中成员变量、构造方法、代码块等的执行顺序,代码如下:

package com.carol.entity;

/**
 * @author Carol Tang
 * @version 1.0.0
 * @date 2018-09-13 10:37
 * @description 测试java中各代码的执行顺序
 **/
class G_Member{
    G_Member(){
        System.out.println("[初始化G_Member实例成员变量]");
    }
}

class G_StaticMember{
    G_StaticMember(){
        System.out.println("[初始化G_StaticMember静态成员变量]");
    }
}


class F_Member{
    F_Member(){
        System.out.println("[初始化F_Member实例成员变量]");
    }
}
class F_StaticMember{
    F_StaticMember(){
        System.out.println("[初始化F_StaticMember静态成员变量]");
    }
}

class Grantfather {
    //静态成员变量g_staticMember
    static G_StaticMember g_staticMember = new G_StaticMember();
    //实例成员变量g_member
    G_Member g_member = new G_Member();
    //静态成员变量name
    public static String name = "grantfather";
    //实例成员变量age
    public int age = 18;

    static {
        System.out.println("Grantfather类,static静态代码块");
    }

    {
        System.out.println("Grantfather类,构造代码块");
    }
    Grantfather() {

        System.out.println("Grantfather类,无参构造方法,name = "+ name);
    }

    Grantfather(String name){
        this.name = name; //如果没有将传入的参数赋值给本类的name,则默认输出是传入的参数值,而非本类静态name值
        System.out.println("Grantfather类,有参构造方法,name = "+name);
    }

    Grantfather(int age){
        System.out.println("Grantfather类,有参构造方法,age = "+age);//默认输出是传入的参数值,而非本类age
    }
}
class Father extends Grantfather{
    public String name = "father";
    //静态成员变量 f_staticMember
    static F_StaticMember f_staticMember = new F_StaticMember();
    //实例成员变量f_member
    F_Member f_member = new F_Member();

    static {
        System.out.println("Father类,static静态代码块");
    }

    {
        System.out.println("Father类,构造代码块");
    }
    Father(){
//        super();
//        super.name = "txx";
        super("txx");
        //super(20);
        System.out.println("Father类,无参构造方法,name = "+name);
    }
    Father(int age){
        super();
        super.age = age;//此处将修改Gran
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值