Java内部类

本文介绍了Java中的四种内部类:成员内部类、局部内部类、匿名内部类和静态嵌套类,阐述了它们的特点、实例和适用场景。
摘要由CSDN通过智能技术生成

内部的类型:

内部类有多种类型,包括成员内部类、局部内部类、匿名内部类和静态嵌套类。下面是对这些内部类的简要介绍:

1. 成员内部类(Member Inner Class):

javaCopy codepublic class OuterClass {
    private int outerField;

    public class InnerClass {
        public void display() {
            System.out.println("InnerClass display: " + outerField);
        }
    }
}

成员内部类是定义在类内部的类。它可以访问外部类的所有成员,包括私有成员。通常通过创建外部类的实例来实例化成员内部类:

javaCopy codeOuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
innerObject.display();

2. 局部内部类(Local Inner Class):

javaCopy codepublic class OuterClass {
    public void outerMethod() {
        class LocalInnerClass {
            public void display() {
                System.out.println("LocalInnerClass display");
            }
        }

        LocalInnerClass localInnerObject = new LocalInnerClass();
        localInnerObject.display();
    }
}

局部内部类是定义在方法或作用域内的类。它只在声明它的方法内可见。通常在方法内部实例化局部内部类。

3. 匿名内部类(Anonymous Inner Class):

javaCopy codeinterface Greeting {
    void greet();
}

public class OuterClass {
    public void displayGreeting(Greeting greeting) {
        greeting.greet();
    }
}

匿名内部类是没有名字的局部内部类,通常用于实现接口或继承类。它在实例化的同时定义类的实现:

javaCopy codeOuterClass outerObject = new OuterClass();
outerObject.displayGreeting(new Greeting() {
    public void greet() {
        System.out.println("Hello from Anonymous Inner Class");
    }
});

4. 静态嵌套类(Static Nested Class):

javaCopy codepublic class OuterClass {
    private static int staticOuterField;

    public static class StaticNestedClass {
        public void display() {
            System.out.println("StaticNestedClass display: " + staticOuterField);
        }
    }
}

静态嵌套类是声明为静态的内部类。与成员内部类不同,静态嵌套类不依赖于外部类的实例,可以直接通过外部类访问:

javaCopy codeOuterClass.StaticNestedClass staticNestedObject = new OuterClass.StaticNestedClass();
staticNestedObject.display();

内部类提供了一种封装和组织代码的方式,同时也允许访问外部类的成员。选择使用哪种内部类取决于设计的需要。成员内部类通常用于与外部类有密切关系的场景,而局部内部类和匿名内部类通常用于更临时的需求。静态嵌套类则更像是外部类的静态成员,与外部类的实例无关。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值