java 内部类和匿名内部类的使用

#内部类的使用
内部类可以直接访问外部类的变量
//A.java文件

class A{
    int i;
    class B{
        int j;
        void funB()
        {
            int k=A.this.i+j;
            System.out.println("i+j="+k);
            
        }
        
    }
    
}
//Test.java文件
class Test 
{
    
    public static void main(String[] args)
    {
        A a=new A();
        A.B b=a.new B();
        a.i=10;
        b.j=11;
        b.funB();
        
    }
    
}

#匿名内部类的使用
不需要使用C类来实现接口A,直接匿名实现接口A

interface A{
 public void do_some_thing();
    
}
class B{
    
    void funB(A a)
    {
        
        System.out.println("funB run");
        a.do_some_thing();
    }
    class Test 
{
    
    public static void main(String[] args)
    {
        //C c=new C();
        //A a=c;
        //B b=new B();
        //b.funB(a);
   
         B b=new B();
          b.funB(new A(){
             public void do_some_thing()
             {
             System.out.println("great!!! class A run");
             }
          });
    }
    
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值