java定义在局部的内部类、匿名内部类 (接《c++与java嵌套类比较》)

上文只简单说了java中的内部类常用方式,这里再介绍下一些特殊情况:定义在局部的内部类,匿名内部类


定义在局部的内部类:

//java,不访问局部变量的局部内部类

class outer
{
    int x=3;

    void method()
    {
       class inner                   //定义在局部的内部类
       {
           void function()
           {
               System.out.println("");
           }
        }
        new inner().function();     //若想在main()函数中,调用new outer().method()时调用function(),就要建立一个inner对象
    }
} 

//main()函数略去

//java,访问局部变量的局部内部类

class outer
{
    int x=3;

    void method(final int a)         //final 类型参数
    {
       final int y;                  //final 类型变量
       class inner                      
       {
           void function()
           {
               System.out.println(a);//此处使用局部变量y或者传递进来的参数a皆可,
                                       //但是,注意,必须是final类型的变量
           }
        }
        new inner().function();        
    }
} 

//main()函数略去



匿名内部类:

1.匿名内部类其实就是内部类的简写形式

2.定义匿名内部类必须继承一个类或实现一个接口

//java,匿名内部类

abstract class inner          //此类也可以不是抽象的,若非抽象,下面也就不是必须重写方法
{
    abstract void show();    //若此类方法过多,不宜使用匿名内部类,这样会造成重写每个方法,影响阅读
 }

class outer
{
    int x=3;

    public void function()
    {
        new inner()                    //匿名内部类格式:
        {                                //  new 父类类名()
             void show()                 //  {
             {                           //         方法定义
                System.out.println("");  //   
              }                          //   }.调用的方法名();
         } .show();
    }    
} 

//main()函数略去



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值