黑马程序员技术交流社区

标题: (难点)内部类内容了解 [打印本页]

作者: 307117758    时间: 2015-10-25 21:41
标题: (难点)内部类内容了解
(3)内部类分类:
  1:成员位置
   private 安全        隐藏内部类  提供公共的访问方法
   static  方便调用
    外部访问非静态成员内部类  外部类名.内部类名 变量 = 外部类对象.内部类对象;
    外部访问静态成员内部类    外部类名.内部类名 变量 = 外部类.内部类();

   代码:
    class Body
    {
     private int weight = 100;
     private class Heart
     {
      public void operator()
      {
       System.out.println("心脏搭桥手术");
      }
     }

     public void method()
     {
      if(如果你是医生)
      {
       Heart h = new Heart();
       h.operator();
      }
     }
    }

    class Test
    {
     public static void main(String[] args)
     {
      //Body.Heart bh = new Body().new Heart();
      //bh.operator();
      Body b = new Body();
      b.method();
     }
    }
  2:局部位置
   定义在方法中。

   局部内部类访问局部变量必须加final修饰。
   延迟生命周期。

   代码:
   class Outer
   {

    public void method()
    {
     final int num = 10;
     //定义类
     class Inner
     {

      public void show()
      {

       System.out.println(num);
      }
     }

     //创建对象
     Inner i = new Inner();
     i.show();
    }

    public void function()
    {
     //错误
     //Inner i = new Inner();
     //i.show();
    }
   }

   class InnerTest3
   {
    public static void main(String[] args)
    {
     Outer o = new Outer();
     o.method();
    }
   }

(4)内部类字节码文件命名规则
   成员内部类:外部类$内部类
    有多个成员内部类的 会多个  外部类$1
   局部内部类:外部类$1内部类

(5)匿名内部类(掌握)
  1:是定义在局部位置的没有名字的内部类。
  2:前提
   存在一个类,抽象类,或者接口。
  3:格式
   new 类或者接口名()
   {
    重写方法;
   }

   本质理解:其实这是一个继承类或者实现接口的匿名的子类对象。


作者: 孤单背影    时间: 2015-10-26 00:48
当我大哥好不好,




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