博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类于对象
阅读量:4634 次
发布时间:2019-06-09

本文共 1388 字,大约阅读时间需要 4 分钟。

动手动脑

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

程序代码

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());    } }

程序截图

 

转载于:https://www.cnblogs.com/xiaoweixiao/p/4888629.html

你可能感兴趣的文章
【C#公共帮助类】10年代码,最全的系统帮助类
查看>>
JQuery UI
查看>>
张弛有度
查看>>
【ZJOI2008】树的统计(树链剖分)
查看>>
【NOIP校内模拟】T2 华莱士(环套树)
查看>>
lists,tuples and sets of Python
查看>>
Superset配置hive数据源
查看>>
查询Master下的系统表和系统视图获取数据库的信息和简单的渗透测试
查看>>
GET和POST的区别
查看>>
Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
查看>>
jvm 性能调优
查看>>
算法(第四版)C# 习题题解——1.3
查看>>
LTE QCI分类 QoS
查看>>
【Flask】flask+uwsgi+nginx环境部署
查看>>
Get MAC address using POSIX APIs
查看>>
bzoj2120
查看>>
基于uFUN开发板的心率计(一)DMA方式获取传感器数据
查看>>
【dp】船
查看>>
oracle, group by, having, where
查看>>
⑥python模块初识、pyc和PyCodeObject
查看>>