Java面试基础篇——内部类

本文深入解析Java内部类的四种类型:静态内部类、成员内部类、局部内部类和匿名内部类,详细介绍每种内部类的定义、特点及用法。

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


内部类主要有四种:1.静态内部类 2.成员内部类 3.局部内部类 4.匿名内部类

一、静态内部类

定义:被声明为static的内部类。
特点:

  1. 可以不依赖于外部类实例而被实例化(通常的内部类需要再外部类实例化后才能实例化)
  2. 不能与外部类名字相同
  3. 不能访问外部类的普通成员变量,只能访问外部类中的静态成员和静态方法(即使是私有类型也可以访问)
class outerClass{
    static class innerClass{}   //静态内部类
}

二、成员内部类

定义:就是一般的内部类(静态内部类去掉static就变成了成员内部类)
特点:

  1. 只有外部类实例化后,该内部类才能被实例化
  2. 不能有静态成员
  3. 可自由引用外部类的属性和方法(包括静态和非静态)
class outerClass{
    class innerClass{}   //成员内部类
}

三、局部内部类

定义:一个代码块内的类,作用范围就是该代码块(最少用到的内部类)
特点:类似局部变量,不能被public,protected,private,static修饰,只能访问方法中定义为final类型的局部变量

class outerClass{
    public void memberFun(){
        class innerClass{}     //局部内部类---定义在一个代码块中
    }
}

四、匿名内部类

定义:没有类名的内部类
特点:

  1. 不使用关键字:class、extends、implements
  2. 没有构造方法
  3. 必须继承其他类/实现其他接口
  4. 代码简洁紧凑,但是可读性差
public class MyFrame extends Frame{    //外部类
    public MyFrame(){
        addWindowListener(new WindowAdapter(){    //匿名内部类
            public void windowClosing(WindowEvent e)
                dispose();
                System.exit(0);
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值