Java(4-4)

本文详细介绍了Java内部类的概念、特点和使用场景,包括匿名内部类和静态内部类。内部类可以访问外部类的私有数据,提供隐藏和回调函数的便利。通过TimerTest示例,阐述了内部类如何构造和访问外部类对象。此外,局部内部类可以完全隐藏并访问外部方法的final变量。匿名内部类简化了类的创建,常用于实现接口。静态内部类则无需引用外部类对象,提供了额外的封装性。
摘要由CSDN通过智能技术生成

这一节看内部类:
1.首先是概念和介绍:
内部类就是定义在另一个类中的类

但是为什么我们引入这个概念呢?如下三点:
1.内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
2.内部类可以对同一个包中的其他类隐藏起来
3.当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷

现在我们通过一个简单的例子来认识内部类:分析TimerTest示例,并抽象出一个TalkingClock类,构造一个语音时钟需要提供两个参数:发布通告的间隔和开关铃声的标志 。

public class TalkingClock
{
   
    private int interval;
    private boolean beep;

    public TalkingClock(int interval,boolean beep){...}
    public void start(){...}

    public class TimePrinter implements ActionListener
    {
   
        public void actionPerformed(ActionEvent event)
        {
            System.out.println("At the tone,the time is "+ new Date());
            if(beep)Toolkit.getDefaultToolkit().beep();
        }
    }
}

对这段程序,我们要说明以下几点:
首先,这里的TimePrinter类位于TalkingClock类内部,这并不意味这每个TalkingClock都有一个TimePrinter实例域。TimePrinter对象是由TalkingClock类的方法构造出来的。程序中的TalkingClock会有一个start()方法,如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值