作业

本文通过编写示例代码展示了在类继承关系中,子类对象的创建导致父类初始化块的执行过程。包括静态初始化块与普通初始化块的执行顺序,以及如何在静态方法中访问实例成员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此时输出结果为100 300.

 

将field200放在int field之后结果变为200 300.

执行类成员时,要看类定义时的值哪个排在前边,就执行那一个值。

静态方法要想访问同一类中的非静态成员,需要将实例成员的值赋给静态成员,再用静态方法访问静态成员,进而访问实例成员。

 

课后作业:

 

当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论:

实验代码:

package demo;

 

public class Test {

 

    public static void main(String[] args) {

        // TODO 自动生成的方法存根  

        Grandson kd=new Grandson();

    }

 

}

class Dad

{

    String post="dad";

    Dad()

    {

        System.out.println("dad="+post);

    }

   

}

class Son extends  Dad

{

    String post="son";

    Son()

    {

        System.out.println("son="+post);

    }

   

}

class Grandson extends  Son

{

    String post="grandson";

     Grandson()

    {

        System.out.println("son="+post);

    }

   

}

实验结果dad=dad;

son=son;

grandson=grandson;

动手动脑:

如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。

因此静态初始化块总是比普通初始化块先执行。

.

此时输出结果为100 300.

 

将field200放在int field之后结果变为200 300.

执行类成员时,要看类定义时的值哪个排在前边,就执行那一个值。

静态方法要想访问同一类中的非静态成员,需要将实例成员的值赋给静态成员,再用静态方法访问静态成员,进而访问实例成员。

 

课后作业:

 

当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论:

实验代码:

package demo;

 

public class Test {

 

    public static void main(String[] args) {

        // TODO 自动生成的方法存根  

        Grandson kd=new Grandson();

    }

 

}

class Dad

{

    String post="dad";

    Dad()

    {

        System.out.println("dad="+post);

    }

   

}

class Son extends  Dad

{

    String post="son";

    Son()

    {

        System.out.println("son="+post);

    }

   

}

class Grandson extends  Son

{

    String post="grandson";

     Grandson()

    {

        System.out.println("son="+post);

    }

   

}

实验结果dad=dad;

son=son;

grandson=grandson;

动手动脑:

如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。

因此静态初始化块总是比普通初始化块先执行。

.

转载于:https://www.cnblogs.com/my1204/p/4887687.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值