内部类的概述

本文介绍了Java中的内部类,包括成员内部类、静态内部类、局部内部类和匿名内部类。内部类提供了一种封装机制,可以更好地隐藏细节和增强代码的结构。成员内部类可以直接访问外部类的所有成员,而静态内部类则只能访问外部类的静态成员。局部内部类和匿名内部类通常用于方法内,前者有名称,后者无名称,常用于快速实现接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.内部类的定义

        内部类(Inner Class),是 Java 中对类的一种定义方式,在一个类的内部。内部类分为成员内部类、静态内部类、局部内部类和匿名内部类四种,内部类是java类的五大成分之一(属性,方法,构造器,代码块,内部类),可见内部类在java基础体系中相当重要

2.为什么要定义内部类?

        采用内部类这种技术,可以隐藏细节和内部结构,封装性更好,让程序的的结构更加合理

3.成员内部类(外部类对象相关)

        1.成员内部类就相当于一个外部类的成员变量/成员方法,能被各种修饰符修饰

        2.成员内部类能够直接访问外部类的所有属性和方法,包括private

        3.创建一个成员内部类的对象需要先创建外部类对象,然后通过外部类对象来创建内部类对象,代码如下:

OuterClass.InnerClass innerclass = new OuterClass().new InnerClass()

        4.如果外部类的属性和方法与成员内部类的属性和方法同名,成员内部类调用本类的同名方法时遵循就近原则,要想调用外部类的同名方法,通过外部类类名.this.同名方法名

4.静态内部类(外部类直接相关)

        1.静态内部类是由static修饰的内部类,能够被各种访问修饰符修饰

        2.静态内部类能够访问外部类的由static修饰的属性和方法,不能访问非static修饰的属性和方法

        3.可以直接创建静态内部类的对象,不需要通过外部类

        4..如果外部类的属性和方法与静态内部类的属性和方法同名,静态内部类调用本类的同名方法时遵循就近原则,要想调用外部类的同名方法,通过外部类名.同名方法名

5.局部内部类

        1.局部内部类定义在方法里或者代码块里面

        2.局部内部类不能用任何访问修饰符修饰,就像局部变量一样,最多只能由final修饰,因为这些都是线程私有的,不需要外界访问,外界也不能访问,是存储在栈帧里面的,随着方法调用的结束,内存就会被释放掉

6.匿名内部类

        1.匿名内部类和局部内部类一样都是定义在方法中或者代码块里面,只是局部内部类有名字,而匿名内部类没有名字

        2.匿名内部类常用于来实现接口,优点是比先直接用一个类来实现该接口然后重写接口中的方法要简洁方便,但缺点是代码耦合度较高,代码如下:


public interface MyInterface {
    public void display();
}
 MyInterface myInterface = new MyInterface() {
            @Override
            public void display() {
                System.out.println("你好");
            }
        };
        myInterface.display();

        

        

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值