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

© 絮缘小默 中级黑马   /  2014-3-5 22:09  /  1616 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习了匿名内部类,但是我自己写不出来,所以想请同学们给我写一下内部类的样式

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

5 个回复

倒序浏览
interface A{
public void fun1();
}
class B{
int i = 10;
public void get(A a)// 声明了一个方法get,接受一个类型为A的参数
       {
         a.fun1();
}
public void test(){
     this.get(new A()//这里就是匿名的内部类,实现了A这个接口的类,只是是匿名的,编译的时候会自动生成一个
//类名为B$1的类,这一点你可以用cmd手动编译一下,就能看见B$1.class这样一个文件,相当于你有一个B$1
//的类实现了A这个接口,然后作为get的参数传了进去
  {
   public void fun1() {
    System.out.println(i);
     }
  });
}
}
class TestNonameDemo{
public static void main(String args[]){
  B b = new B();
  b.test();
}
}

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报

评分

参与人数 1技术分 +2 收起 理由
朱神必 + 2

查看全部评分

回复 使用道具 举报
外部类{

     内部类{}


就是这样

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
new InterfaceClass()
{
   //代码块
    // InterfaceClass是接口,抽象类时,实现抽象方法,Override这个类的其它方法
    //InterfaceClass是普通类时,Override这个类的方法
}



enum Lamp {
         //生成一个匿名类
        YELLEW {
                @Override
                public void sayColor() {
                        System.out.println("");               
                }
        },
         //再生成一个匿名类
        RED
        {
                public void sayColor() {
                        System.out.println("");                       
                }
        }
        ;
        //抽象方法
        public abstract void sayColor();     
}






评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

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