内部类、局部内部类、静态内部类、匿名内部类

 调用内部类比较特殊:OuterClass.InnerClass innerClass = outerClass.new InnerClass();

复制代码
public class OuterClass {
    private int i = 10;
    //1成员内部类
    class InnerClass{
        public void getOuterProperty(){
            System.out.println("【内部类获取外部类的私有属性的值】="+i);
        }
    }
    //2局部内部类
    public void getLocalClass(){
        class LocalClass{//局部内部类上不能有修饰符,或者只能有个final修饰符
            public int local_m1(){
                System.out.println("【局部内部类获取外部类私有属性】="+i);
                return (i + 100);
            }
        }
        LocalClass localClass = new LocalClass();
        int local_result = localClass.local_m1();
        System.out.println("【调用局部内部类方法的返回值+100】="+local_result);
    }

   //3静态内部类
    public static class StaticInnerClass{
        int i = 1000;
        public void staticInner_m1(){
            System.out.println("【静态内部类】="+i);
        }
    }
   //4匿名内部类
    Thread thread = new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("【匿名内部类】");
        }
    });
   //4匿名内部类
    AnonymousClass anonymousClass = new AnonymousClass() {
        @Override
        public void anonymousClass_m1() {
            System.out.println("【匿名内部类】");
        }
    };
    public static void main(String[] args) {
        OuterClass outer = new OuterClass();

        //1调用成员内部类
        OuterClass.InnerClass ic = outer.new InnerClass();
        ic.getOuterProperty();

        //2调用局部内部类
        outer.getLocalClass();

        //3调用静态内部类
        StaticInnerClass sic = new StaticInnerClass();
        sic.staticInner_m1();

        //4调用匿名内部类
        Thread thread = outer.thread;
        thread.start();

        //4调用匿名内部类
        AnonymousClass ac = outer.anonymousClass;
        ac.anonymousClass_m1();
    }


}
interface AnonymousClass {
    void anonymousClass_m1();
}
复制代码

 

 

 

posted @   禁止摆烂  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示