Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18860
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-02 14:42
文章分类
文章存档

2015年(5)

2014年(7)

我的朋友
最近访客

分类: Java

2015-01-18 19:21:59

Java类中带有内部类和匿名类编译的class文件命名规则

内部类的class文件命名是:主类+$+内部类名


匿名类的class文件命名是:主类+$+(1,2,3....)

 

例如:QualityMonitorDiagramAction.java

如果QualityMonitorDiagramAction类中定义了内部类QmdSub,则会在ualityMonitorDiagramAction.class的同级目录下产生一个QualityMonitorDiagramAction$QmdSub.class的文件。

如果QualityMonitorDiagramAction类中定义了匿名类,则会在ualityMonitorDiagramAction.class的同级目录下产生一个QualityMonitorDiagramAction$1.class的文件。

 

内部类(inner class):

class Outer{
    private int index = 10;
    class Inner {
        private int index = 20;
        void print(){
            int index = 30;
            System.out.println(this); // the object created from the Inner
            System.out.println(Outer.this); // the object created from the Outer
            System.out.println(index); // output is 30
            System.out.println(this.index); // output is 20
            System.out.println(Outer.this.index); // output is 10
        }
    }

    void print() {
        Inner inner = new Inner(); //得到内部类的引用
        inner.print();
    }
}

class Test {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.print();
    }
}


匿名类:new Xxx({在这里进行操作即可});

new Test({System.out.println("你好!");});

 

匿名内部类:new Xxx(){} 或者 new Xxx(String param){}
  Timer timer = new Timer();  //实例化Timer类
  timer.schedule(new TimerTask(){
   public void run(){
    //System.out.println("退出");
    this.cancel();
   }
  }, 100000);  //1000毫秒=1秒

阅读(661) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~