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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡焱老师 中级黑马   /  2014-1-20 16:09  /  984 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在前一个贴子中已经知道了相关的知识点,但是还有个疑问就是:
1、内部类中是没有 构造代码块吧 ??


2、创建对象调用内部类会运行构造代码块吗??

3 个回复

倒序浏览
哥们,你的头像很牛X啊
回复 使用道具 举报
下面是相代码一个是内部类的,一个是外部类的。
  1. class Outer
  2. {
  3.        private int x = 3;
  4.        class InnerFirst    //这是一个成员内部类。 Static class Inner当静态内部类
  5.        {
  6.                  {
  7.                          System.out.println("这是InnerFirst类的构造函数代码块");
  8.                  }
  9.               void function()
  10.               {
  11.                      System.out.println("innner:"+Outer.this.x);
  12.               }
  13.               
  14.               void function(String str)
  15.               {
  16.                       
  17.                       System.out.println("str");
  18.               }
  19.        }

  20.        void method()
  21.        {
  22.               InnerFirst in = new InnerFirst();
  23.               in.function();
  24.        }
  25.       
  26.        void method2()
  27.        {
  28.             class InnerSecond  //这是一个局部内部类
  29.             {
  30.                      {
  31.                              System.out.println("这是InnerSecond类的构造函数代码块");
  32.                              }
  33.                  void function()
  34.                  {
  35.                      System.out.println("innner:"+Outer.this.x);
  36.                  }
  37.                  
  38.                  void function(String str)
  39.                  {
  40.                                  System.out.println(str);
  41.                  }
  42.             }
  43.             
  44.             new InnerSecond().function("hello");
  45.        }
  46. }

  47. class  InnerClassDemo   
  48. {
  49.        public static void main(String[] args)
  50.        {
  51.               Outer out = new Outer();
  52.               out.method();
  53.               out.method2();
  54.        }
  55. }
复制代码
1、内部类中也有构造代码块。因为内部类也是类,是类就可以有多个构造函数,就可以提取共同的部分,形成构造函数代码块。2、创建对象调用内部类,此时如果类中有代码块的话,一定会运行构造代码块。而且无论构造代码块在程序中的任何位置,一定会先于其它函数执行。

   

1111.jpg (41.99 KB, 下载次数: 20)

结果

结果
回复 使用道具 举报 1 0
dapeng111 发表于 2014-1-20 17:45
下面是相代码一个是内部类的,一个是外部类的。
1、内部类中也有构造代码块。因为内部类也是类,是类就可以 ...

非常感谢!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马