A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2014-3-29 11:11  /  1127 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 阳春烟景 于 2014-3-29 11:57 编辑



public class Test1 {

          public static int k = 0;   //定义一个静态成员变量k,并初如化
          public static Test1 t1 = new Test1("t1");  //定义一个静态方法t1
          public static Test1 t2 = new Test1("t2");  //定义一个静态方法t2
          public static int i = print("i");   //这句话只是打印1,2,3,4...
          public static int n = 99;   // 定义一个静态成员变量n,并初如化
          public int j = print("j");//这里调用了下面的print函数,传进去的是j,打印结果是:1:j   i=0   n=0
          {
                  print("构造块"); //这里调用了下面的print函数,感觉这对{}没什么用。打印结果是:2:构造块   i=1   n=1
          }   
          static //这是静态方法,由于上面new了一个t1,所以打印结果是:3:t1   i=2    n=2
          {
                  print("静态块");  //这里调用了下面的print函数所以打印结果是:4:j   i=3   n=3
          }
//          由于每次调用Test1,print方法,都让i,n自增。所以接下来打印结果是:
//          5:构造块   i=4   n=4
//          6:t2   i=5    n=5
//          7:i   i=6   n=6
//          8:静态块   i=7   n=99
//          9:j   i=8   n=100
//          10:构造块   i=9   n=101
//          11:init   i=10    n=102
            
          public Test1(String str){ //这里是Test1方法
                 System.out.println((++k) + ":" + str + "   i=" + i + "    n=" + n);      
                 ++i;        
                 ++n;   
          }  
          
          private static int print(String str){   //这是print函数   
             System.out.println((++k) + ":" + str + "   i=" + i + "   n=" + n);      
             ++n;        
             return ++i;   
          }
          
          public static void main(String[] args){  //这是主函数
              Test1 t = new Test1("init");   
          }

}

点评

感觉,这段代码,难点不仅仅在注释。 更重要的难点在搞清楚执行顺序额。 这东西,写在代码里面,已经很不容易个。  发表于 2014-3-29 12:06

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报 2 0
您需要登录后才可以回帖 登录 | 加入黑马