Java中 定义语名 与方法 的执行顺序

 
刚学Java学到类不久的朋友,可能会在这定义语句与构造器的执行顺序问题上不能理解。往往是心里想的结果与执行结果有所出处。看下面这段代码:

看完这代码后 你心里已有输出结果了吧  是不是与下面的调试出来的结果有所不同:

class Mug  
{

   Mug(int   marker)
   {
        System.out.println("Mug(" + marker +  ")");
    }

}

public class Mugs 
 {
     Mugs()
    { 
        System.out.println("Mugs()");
    }
 
    Mug   c1;
    Mug   c2;
    { 
        c1   =   new   Mug(1);
        c2   =   new   Mug(2);
        System.out.println("c1 & c2 initialized");
    }
public static void main(String [] args){
        System.out.println("Inside main()");
        Mugs x=new Mugs();

  }

}

 Inside   main()
       Mugs()
       Mug("  1  ")
      Mug("  2 ")
      c1   &   c2   initialized

 关于这点 其实原因在于:程序中 先执行定义语句  然后在执行方法语句  无论是构造器也好 一定先执行的是定义语句  

   如果你认为这样不对  是代码块的原因

   那我们也可以 另定一个代码块 里面放一个简单的输出语句 试试看:

我们把它加在Mugs构造器的下面

{
 
  System.out.println("11111111111111111111111111");
 
 }

 

这下调试的结果为:

 Inside   main()
       Mugs()
       Mug("  1  ")
      Mug("  2 ")
      c1   &   c2   initialized

      11111111111111111111111111

 这回 代码块 中的全1还是在最后 输出吧   如果你认为是位置顺序问题 

可以调试一下 看看  结果会有所不同吗? 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值