内部类的使用

本文深入探讨了Java中的内部类,包括静态内部类、非静态内部类和局部内部类,以及如何通过匿名内部类创建对象。示例代码展示了它们的使用方式,如创建静态内部类对象、非静态内部类对象以及匿名内部类的实现。同时,文章还涵盖了接口的实现,以及在主方法中调用相关方法的实践。
摘要由CSDN通过智能技术生成

源码:

public class Outer {
    int a = 5;
    public void WW(A ak){
        ak.run();
    }
    public void JB(){
        class JB{       //局部类在方法里面,作用域仅限该方法
            void JBL(){
                System.out.println("局部内部类的JBL方法");
            }
        }
        new JB().JBL();     //JB jb = new JB();   jb.JBL();
    }

    static class  Inner{      //静态内部类
        public void AA(){
            System.out.println("i am inner!!");
        }
    }
    class OnStInner{    //非静态内部类
        int a = 3;
        public void BB(){
            System.out.println(this.a);     //打印内部类变量a
            System.out.println(Outer.this.a);      //打印外部类变量a
        }
    }
    public static void main(String[] args) {
        Outer.Inner a = new Outer.Inner();    //构造静态内部类
        a.AA();
        Outer.OnStInner oo = new Outer().new OnStInner();   //构造非静态内部类
        oo.BB();
        Outer o = new Outer();
        o.WW(new AA());
        o.WW(new A() {            //匿名内部类-----1
            @Override
            public void run() {
                System.out.println("这是匿名内部类的第一个run方法");
            }
        });
        o.WW(new A() {
            @Override
            public void run() {
                System.out.println("这是匿名内部类的第二个run方法");
            }
        });
        o.JB();
    }
}
interface A{
    void run();
}
class AA implements A {

    @Override
    public void run() {
        System.out.println("这是A接口的实现类run方法");
    }
}

 运行结果:

 学习笔记

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值