zoukankan      html  css  js  c++  java
  • 匿名类

    匿名类是没有名字的内部类,所以在创建时,必须作为一个new语句的一部分来声明它们,这就要采用另一种形式的new语句。如下所示:

    new<类或接口><类的主体>

    这种形式的new语句声明一个新的匿名类,他对一个给定的类进行扩展,或实现一个给定的接口。他还创建一个类的新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。

    假如匿名类对另一个类进行扩展,他的主体能够访问类的成员覆盖他的方法,这和其他任何标准的类是相同的。假如匿名类实现了一个接口,他的主体必须实现接口的方法。

    ps:匿名类的声明是在编译时进行的,实例化在运行时进行。这意味着for循环中的一个new语句会创建相同匿名类的几个实例,而不是创建几个不同匿名类的一个实例。从技术上说,匿名类可被视为非静态的内部类,所以它们具备和方法内部声明的非静态内部类相同的权限和限制。假如要执行任务需要一个对象,但却不值得创建全新的对象,匿名类就显得很有用。匿名类尤其适合在swing应用程序中快速创建事件和处理程序。

    public class niminglei{

    public static void main (String []args){

    Frame frm=new Frame("产生一个窗体");

    frm.setSize(300,300);

    frm.setVisible(true);

    frm.addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e){

    System.exit(0);

    }

    });

    }

    }

  • 相关阅读:
    堆排序
    我花了一年时间来学机器学习
    一个由进程内存布局异常引起的问题
    老曹眼中的Linux基础
    Select模型原理
    socket编程的select模型
    [插件] 如何在一个页面中使用多个SWFUpload对象上传文件
    [算法] 拖动排序
    [算法] 应用版本更新逻辑
    [oracle] 如何使用myBatis在数据库中插入数据并返回主键
  • 原文地址:https://www.cnblogs.com/Angella/p/6027969.html
Copyright © 2011-2022 走看看