java学习笔记-接口与内部类

一、定义
接口:接口用来描述具体的功能,但并不给出功能的具体实现
内部类:处于另一个类的内部,其中的方法可以访问外部类的域,内部类技术主要用来设计具有相互协作的类集合

二、接口(没有实例域的抽象类)(instanceof也可以用于接口)
–1》接口中的方法自动属于public,不必提供关键词
–2》接口中不能包含实例域和静态方法,却可以包含常量
**自动设置为public static final
–3》不能用new实例化接口,却能够声明接口的变量:
**如List list=new ArrayList();
–4》接口与抽象类:
类是单继承,接口是多继承

三、内部类
–1》**内部类可以访问该类所在作用域的数据,包括私有数据
**内部类可以对同一个包中的其他类隐藏起来
**当要定义一个回调函数又不想编写大量代码用匿名内部类
–2》局部内部类
**局部内部类定义在方法中,完全隐藏,只有方法知道内部类的存在
**局部内部类可以访问被声明为final的局部变量、

class LocalInner
{
    int a = 1;

    public void doSomething()
    {
        int b = 2;
        final int c = 3;
        // 定义一个局部内部类
        class Inner3
        {
            public void test()
            {
                System.out.println("Hello World");
                System.out.println(a);

                // 不可以访问非final的局部变量
                // error: Cannot refer to a non-final variable b inside an inner
                // class defined in a different method
                // System.out.println(b);

                // 可以访问final变量
                System.out.println(c);
            }
        }

        // 创建局部内部类的实例并调用方法
        new Inner3().test();
    }
}

–3》静态内部类
**只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。

class StaticInner
{
    private static int a = 4;

    // 静态内部类
    public static class Inner
    {
        public void test()
        {
            // 静态内部类可以访问外部类的静态成员
            // 并且它只能访问静态的
            System.out.println(a);
        }

    }
}

–4》匿名内部类
**匿名内部类隐式地继承了一个父类或者实现了一个接口

String str2 = test.getDate(new Date()
        {
        });// 使用了花括号,但是不填入内容,执行结果和上面的完全一致
            // 生成了一个继承了Date类的子类的对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值