zoukankan      html  css  js  c++  java
  • 类于对象

    动手动脑

    当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行

    程序代码

    Class Root

    {

    Static{

    System.out.println(“Root的静态初始化块”)

    }

    {

    System.out.println(“Root的普通初始化块”);

    }

    Public Root()

    {

    System.out.println(“Root的无参数的构造器”);

    }

    }

    class Mid extends Root

    {

    Static{

    System.out.println(“Mid的静态初始化块”)

    }

    {

    System.out.println(“Mid的普通初始化块”);

    }

    Public Mid()

    {

    System.out.println(“Mid的无参数的构造器”);

    }

    Public Mid(string msg)

    {

    //通过this调用同一类中重载的构造器

    this();

    System.out.println(“Mid的带参数构造器,其参数值:”+msg);

    }

    }

    Class Leaf extends Mid

    {

    static{

    System.out.println(“Leaf的静态初始化块”)

    }

    {

    System.out.println(“Leaf的普通初始化块”)

    }

    public Leaf()

    {

    }

    }

    Public class TestStaticInitializeBlock

    {

    Public static void main (String[] args)

    {

    New Leaf();

    }

    }

    原因分析是因为当多个类之间有继承关系时,创建的子类对象会导致父类初始化块的执行。具体的执行顺序是先初始化父类的静态初始化块,父类的无参构造器,在进行子类的静态初始化块,子类的无参构造器;然后是父类的普通初始化块,子类的普通初始化块;父类的带参构造器;子类的带参构造器。

    动手动脑2

    程序截图

     

    静态初始化块具体的执行顺序是先初始化父类的静态初始化块,父类的无参构造器,在进行子类的静态初始化块,子类的无参构造器;然后是父类的普通初始化块,子类的普通初始化块;父类的带参构造器;子类的带参构造器。

    试验

    程序截图

    课后作业

    使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

    public class Count {    private static int n;    public Count()    {        n++;//次new一个对象的时候都可以给n加1    }    public static int getNum()    {        return n;//返回n值    }    public static void main(String[] args) {        // TODO 自动生成的方法存根        Count t1=new Tongji();        Count t2=new Tongji();        Count t3=new Tongji();//创建对象        System.out.println("共有对象个数为:"+Count.getNum());    } }

    程序截图

     

  • 相关阅读:
    JUnit中的设计模式:组合模式 Composite
    Activity在屏幕显示的方向切换
    Jenkins插件之有用
    Jenkins插件之Dashboard和wall display
    python技巧32[常用技巧集]
    Jenkins插件之构建与MSBuild
    Jenkins插件之Publish Over SSH/CIFS/FTP
    使用devenv/MSBuild在命令行编译单个project
    Jenkins中执行batch和Python
    python翻译[排序高级]
  • 原文地址:https://www.cnblogs.com/xiaoweixiao/p/4888629.html
Copyright © 2011-2022 走看看