Java小白求救

owen1190 2016-03-07 06:27:48
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
{
super();
static{
System.out.println("Leaf的静态初始化块");
}
{
System.out.println("Leaf的普通初始化块");
}
public Leaf()
{
// 通过super调用父类中有一个字符串参数的构造器
super("疯狂Java讲义");
System.out.println("执行Leaf的构造器");
}
}
public class Test
{
public static void main(String[] args)
{
new Leaf();
new Leaf();
}
}


求教大神如何执行的,还有this那行,为什么不是两个“Mid的无参数的构造器”
...全文
312 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 2016-03-09
  • 打赏
  • 举报
回复
引用 7 楼 owen1190 的回复:
[quote=引用 4 楼 qq457163027 的回复:] 静态块在第一个对象创建时运行 初始化块在每个对象创建时运行 区别是静态块只执行一次,操作的内存在静态区 初始化块每个对象构造时都需要执行一次,操作的内存在用户区。 你好,可以帮忙粘贴一下你的运行截图吗?
5楼有截图, 那能讲解一下如何运行的吗,[/quote] 说实话啊,其实这些都没太多道理可讲的,你就记着这个顺序就行了。 (硬要说的话,可能和虚拟机加载类的顺序有关,但是这个顺序,又是人为设计的,又是不讲道理的。)
大石斑Grouper 2016-03-08
  • 打赏
  • 举报
回复
静态块在第一个对象创建时运行 初始化块在每个对象创建时运行 区别是静态块只执行一次,操作的内存在静态区 初始化块每个对象构造时都需要执行一次,操作的内存在用户区。 你好,可以帮忙粘贴一下你的运行截图吗?
owen1190 2016-03-08
  • 打赏
  • 举报
回复
引用 5 楼 oh_Maxy 的回复:
[quote=引用 3 楼 owen1190 的回复:] [quote=引用 1 楼 oh_Maxy 的回复:] Mid的无参数的构造器 我这边执行是两次啊。你控制台向上翻一下应该能看到 另外,36行多余了吧。
答案是只执行一次, 36行是多余,因为那时候分析,所以填进去[/quote] 我把你的代码拿过来执行一次: [/quote] 不好意思,之前误解你的意思了,
owen1190 2016-03-08
  • 打赏
  • 举报
回复
引用 4 楼 qq457163027 的回复:
静态块在第一个对象创建时运行 初始化块在每个对象创建时运行 区别是静态块只执行一次,操作的内存在静态区 初始化块每个对象构造时都需要执行一次,操作的内存在用户区。 你好,可以帮忙粘贴一下你的运行截图吗?
5楼有截图, 那能讲解一下如何运行的吗,
oh_Maxy 2016-03-08
  • 打赏
  • 举报
回复
引用 3 楼 owen1190 的回复:
[quote=引用 1 楼 oh_Maxy 的回复:]
Mid的无参数的构造器
我这边执行是两次啊。你控制台向上翻一下应该能看到

另外,36行多余了吧。



答案是只执行一次,

36行是多余,因为那时候分析,所以填进去[/quote]
我把你的代码拿过来执行一次:
owen1190 2016-03-07
  • 打赏
  • 举报
回复
答案是只执行一次, 36行是多余,因为那时候分析,所以填进去
owen1190 2016-03-07
  • 打赏
  • 举报
回复
引用 1 楼 oh_Maxy 的回复:
Mid的无参数的构造器 我这边执行是两次啊。你控制台向上翻一下应该能看到 另外,36行多余了吧。
答案是只执行一次, 36行是多余,因为那时候分析,所以填进去
oh_Maxy 2016-03-07
  • 打赏
  • 举报
回复
Mid的无参数的构造器 我这边执行是两次啊。你控制台向上翻一下应该能看到 另外,36行多余了吧。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧