Java匿名类

来源:互联网 发布:慧博智能策略终端mac 编辑:程序博客网 时间:2024/06/05 06:14
public class Person{    public void hello()    {        System.out.println("我是Person");    }}

 

 1 public class Main 2 { 3     /** 4      * 主函数,程序的入口 5      * @param args 6      */ 7     public static void main(String[] args) 8     { 9         final int num=90;//局部变量10         11         //匿名类12         Person p1=new Person(){13             14             @Override15             public void hello()16             {17                 System.out.println("我是匿名类"+" "+"外部类中的局部变量num="+num);18             }19         };20         21         p1.hello();22     }23 }

 

  

显然内部类可以访问外部类的局部变量。

匿名类原理

原理解析:

Person p1=new Main$1();
而Main$1是个类,也就是匿名类,定义如下:
 1 package yydl; 2  3 import java.io.PrintStream; 4  5 class Main$1 extends Person 6 { 7     public void hello() 8     { 9         System.out.println("我是匿名类 外部类中的局部变量num=90");10     }11 }

 

0 0
原创粉丝点击