黑马程序员技术交流社区

标题: 输出结果求解 [打印本页]

作者: wangleixhlm    时间: 2014-5-25 23:50
标题: 输出结果求解
本帖最后由 wangleixhlm 于 2014-5-26 22:04 编辑
  1. public class OuterClass
  2. {
  3.         private class InterClass
  4.         {
  5.                 public InterClass()
  6.                 {
  7.                         System.out.println("InterClass Create");
  8.                 }
  9.         }

  10.         public OuterClass()
  11.         {
  12.                 InterClass ic = new InterClass();
  13.                 System.out.println("OuterClass Create");
  14.                 }

  15.         public static void main(String[] args)
  16.         {
  17.                 OuterClass oc = new OuterClass();
  18.         }
  19. }
复制代码


内部类的一道题,输出结果应该是什么?为什么?
作者: 寻找人生目标    时间: 2014-5-25 23:52
本帖最后由 寻找人生目标 于 2014-5-25 23:56 编辑

哥们你真屌   这是套了几个了............
额  之前看错了  
  1. public class OuterClass
  2. {
  3.         private class InterClass
  4.         {
  5.                 public InterClass()
  6.                 {
  7.                         System.out.println("InterClass Create"); //输出InterClass Create
  8.                 }
  9.         }

  10.         public OuterClass()  {
  11.                 InterClass ic = new InterClass(); //第二步  内部类的构造函数执行  再向下执行
  12.                 System.out.println("OuterClass Create"); //然后输出 OuterClass Create
  13.         }

  14.         public static void main(String[] args){
  15.                 OuterClass oc = new OuterClass(); //  第一步  然后外部类的构造函数执行
  16.         }
  17. }
复制代码



作者: 寻找人生目标    时间: 2014-5-25 23:58
先是main函数  然后是创建外部类的对象    外部类的构造函数执行    外部类的构造函数中创建了内部类的对象然后内部类的构造函数执行    执行完再继续往下执行   所以输出的是

InterClass Create
OuterClass Create
作者: 张辉玉    时间: 2014-5-26 00:01
输出结果是    InterClass Create
                   OuterClass Create   
    首先执行main()方法 new一个OuterClass对象,这就会调用已经写了的 OuterClass()构造方法,然后执行构造方法中new一个 InterClass 对象,这时就会调用内部类中的构造方法InterClass()输出一个InterClass Create语句,然后继续执行OuterClass构造方法中的语句输出OuterClass Create 语句。
作者: java木    时间: 2014-5-26 00:27
InterClass Create
OuterClass Create
执行过程是 OuterClass构造函数执行,InterClass 构造函数执行, System.out.println("OuterClass Create"); 执行
作者: 247033993@qq.co    时间: 2014-5-26 09:24
都是大神,楼上回答了,楼下没办法回答
作者: ZHao.Xiao    时间: 2014-5-26 12:13
InterClass Create
OuterClass Create




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2