A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

内部类定义在局部时,
1.不可以被成员修饰符修饰。
2.可以直接访问外部类中的成员,因为还持有外部类中的引用。
但是不可以访问它所在的局部中(注意是局部中)的变量,只能访问被final修饰的

局部变量。

匿名内部类:
1.匿名内部类其实就是内部类的简写格式。
2.定义匿名内部类的前提:
内部类必须是继承一个类或者实现接口。
3.匿名内部类的格式:new 父类或者接口(){定义子类的内容} ps:(注意父类或

者接口()后面是没有;号的)
4.其实匿名内部类就是 一个匿名子类对象,而且这个对象可以带内容的对象。
5.匿名内部类中定义的方法最好不要超过3个

什么时候用到匿名内部类呢?举个例子:
interface Inter
{
        void method();
}

class Demo
{
        public static void main(String[] args)
        {
               
               
                Test.function().method();

        show(new Inter()//在show方法中定义一个内部类
        {
                public void method()
                {
                        System.out.println("method run");
                }
        });
               
        }

        public static void show(Inter in)//接收的是接口类型,查看接口的

方法不超过3个,这时可以定义一个匿名内部类,把匿名内部类作为参数传进去
        {
        in.method();
        }
}


没有父类 ,没有接口,用匿名内部类访问方法的方式:

class InnerTest
{
        public static void main(String[] args)
        {
        new Object()//建立父类的对象
                {
                public void function()
                        {
                                //执行语句
                        }
                }.function();//调用function方法
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马