Java4Andriod 从零学起 ---learn12

内部类 ;  匿名内部类

class A{
    int i ;

    class B{
        int j ;

        int funB(){
            int result = i+j ;   //相当于 result = A.this.i + this.j
            return result ;
        }
    }
}



/*
    如果内部类和外部类成员变量冲突怎么办?
        就近原则
*/

class Test{
    public static void main(String args []){
        A a = new A() ;

        A.B b = new A().new B();   //  也可以   A.B b = new a.new B();
        A.B c = a.new B();

        a.i = 1 ;
        c.j = 3 ;
        System.out.println(c.funB());


    }

}

匿名内部类

interface A{
    public void doSomeThing();
}

class AImpl implements A{
    public void doSomeThing(){
        System.out.println("AImpl的调用");
    }
}

class B{
    void fun(A a){
        System.out.println("B类中的方法");
        a.doSomeThing();
    }
}

public class Test{
    public static void main(String args []){
        AImpl a_imp = new AImpl();
        A a = a_imp ;  //向上转型

        B b = new B();
        b.fun(a);

        //下面是匿名类
        B b_ano = new B();
        b_ano.fun(new A(){
            public void doSomeThing(){
                 System.out.println("--------\n匿名内部类");
            }
        });

    }
}
/*
    匿名内部类:
        1.B类中的方法以接口为其参数
        2.没有名字的类,且在Test内部
        3.new 接口(){实现接口};
*/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值