`

java匿名类

    博客分类:
  • java
阅读更多

匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。 这就要采用另一种形式的new语句,如下所示: new <类或接口> <类的主体> 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定的接口。它还创建那个类的一个新实例,并把它作为语句的结果而返回。要扩展的类和要实现的接口是new语句的操作数,后跟匿名类的主体。 如果匿名类对另一个类进行扩展,它的主体可以访问类的成员、覆盖它的方法等等,这和其他任何标准的类都是一样的。如果匿名类实现了一个接口,它的主体必须实现接口的方法

java 代码
  1. interface pr   
  2. {   
  3. void print1();   
  4. }   
  5.   
  6. public class noNameClass    
  7. {   
  8. public pr dest()   
  9. {   
  10.     return new pr(){   
  11.      public void print1()   
  12.      {   
  13.       System.out.println("Hello world!!");   
  14.      }   
  15.     };   
  16. }   
  17.   
  18. public static void main(String args[])   
  19. {   
  20.     noNameClass c=new     noNameClass();   
  21.     pr hw=c.dest();   
  22.     hw.print1();   
  23. }   
  24. }   
  25.   

 

pr也可以是一个类 但是你外部调用的方法必须在你的这个类或接口中声明 外部不能调用匿名类内部的方法

Java中内部匿名类用的最多的地方也许就是在Frame中加入Listner了吧。
如下:

java 代码
  1. import java.awt.*;   
  2. import java.awt.event.*;   
  3.   
  4. public class QFrame extends Frame {   
  5.     public QFrame() {   
  6.            this.setTitle(\"my application\");   
  7.   
  8.            addWindowListener(new WindowAdapter() {   
  9.                    public void windowClosing(WindowEvent e) {   
  10.                    dispose();   
  11.                    System.exit(0);   
  12. }   
  13.             });     
  14.   
  15.           this.setBounds(10,10,200,200);   
  16.      }   
  17. }   

 

内部匿名类,就是建立一个内部的类,但没有给你命名,也就是没有引用实例的变量。
new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
             dispose();
             System.exit(0);
     }


new 是建立一个 WindowAdapter对象 ,后面一个 {} 表示这个括号中的操作作用于这个默认的对名象,

而上面的Java程序中后面是一个函数体。
这个用法的作用是:创建一个对象的实例,并且 override 它的一个函数。
打开 WindowAdapter 的代码可以发现。它是一个抽象类。它是对 WindowListener 接口的一个实现。

Frame.addWindowListner(); 的参数是一个 WindowListner ,而实现上是传一个从WindowAdapter 派生出的一个匿名类。


分享到:
评论
4 楼 jsjxieyang 2010-05-20  
3 楼 jsjxieyang 2010-05-18  
还是不太懂
2 楼 jkleeo 2009-11-05  
写的太乱了!
1 楼 Heyfy 2008-11-17  

相关推荐

    Java匿名类的分析和理解.pdf

    Java匿名类的分析和理解 Java匿名类是Java编程语言中的一种特殊的类,它没有明确的类名。匿名类经常被用在Java GUI程序设计中,例如在Swing库中,以便快速地创建GUI组件。然而,很多Java学习者对匿名类的理解不够...

    JAVA匿名类创建对象.doc

    ### Java匿名类创建对象 #### 一、Java匿名类简介 在Java编程语言中,类是面向对象程序设计的基本组成部分之一。通常情况下,我们在定义一个类时会为它指定一个名称,以便后续可以通过该名称来实例化这个类的对象...

    Java匿名类机制改善代码.pdf

    Java匿名类机制是Java语言中一个独特而强大的特性,它允许我们在不定义单独类的情况下创建类的实例。这种机制在需要一次性使用的或者只需要一个简单实现的类时特别有用,能够减少代码的冗余,提高代码的简洁性。在...

    Java匿名类,匿名内部类实例分析

    Java匿名类和匿名内部类实例分析 Java中的匿名类和匿名内部类是一种特殊的类,它们没有明确的名称,但它们可以继承父类的方法,访问外部类的成员变量和方法,并且可以重写父类的方法。下面将对Java中的匿名类和匿名...

    16.java匿名内部类.zip

    16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名内部类.zip16.java匿名...

    java 匿名内部类的使用规范

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不需要定义一个单独的类的情况下创建类的实例。这在处理回调、事件监听、单例模式以及其他需要短时间内定义一个简单类的情况时非常有用。本篇文章将...

    匿名类的特点

    在Java图形用户界面编程中,匿名类常用于快速创建事件监听器。例如,在Swing框架中,可以轻松地创建一个按钮点击事件监听器: ```java button.addActionListener(new ActionListener() { public void ...

    Java 匿名内部类

    Java匿名内部类是Java语言中一个独特且强大的特性,它允许我们在不定义单独类的情况下创建对象。这种类没有名字,通常用作一次性实现某个接口或继承某个类的需求。在Java编程中,匿名内部类主要用于事件处理、回调...

    Java的内部类和匿名类剖析

    本文介绍内部类和匿名类在Java代码中是如何具体工作的,如何正确使用它们,以及如何避免一些常见的错误。 下面来看看这些特性具体是如何工作的?  1、非静态内部类  如果内部类没有指定static修饰符,拥有对...

    java 内部类使用(内部匿名类)

    2. **内部匿名类**:内部匿名类没有名字,通常用于创建一次性使用的类。它们常用于实现接口或继承一个类,特别是在事件处理、回调机制和简短的辅助类中。创建匿名内部类的方式是在实例化类时直接定义类的实现,不...

    java中的匿名内部类总结

    Java 中的匿名内部类是一种特殊的内部类,它没有名字,因此也称为匿名类。匿名内部类是一种简洁的编程方式,能够简化代码编写,但它也有一些限制和特点。 匿名内部类的定义 匿名内部类是指没有名字的内部类,它是...

    java基础四种匿名内部类

    掌握java四中匿名内部类

    使用内部和匿名类优化Java代码

    Java 1.1 引入了内部类和匿名类,这两种特性极大地增强了代码的灵活性和可读性。内部类是指定义在另一个类内部的类,它可以是静态的或非静态的,根据其是否需要访问外部类的实例成员来区分。静态内部类与普通类的...

    Java中的内部类和匿名类

    Java 中的内部类和匿名类 Java 中的内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在 C++ 里也有,那就是嵌套类(Nested Class)。内部类从表面上看,就是在类中又定义了一个类,而实际上并没有那么...

    Java WebSocket匿名聊天室项目.rar

    Java WebSocket匿名聊天室源码项目,运行于JSP环境下的WEB项目,核心代码由JAVA编写,编译成Bean运行于JSP的服务器中,支持匿名聊天,作为Jsp编程资料觉得挺不错,将源代码分享给大家吧。

    java 内部类 局部内部类 匿名类 实例代码

    本篇文章将深入探讨Java中的四种内部类:实例内部类、局部内部类、匿名类和静态内部类,并通过实例代码进行详细解析。 1. **实例内部类**:这是最常见的内部类形式,它在外部类的实例方法或成员位置定义。实例内部...

    java基础--list(ArrayList、LinkedList、匿名类).docx

    【Java基础——List接口详解(ArrayList、LinkedList、匿名类)】 在Java编程中,List接口是集合框架的重要组成部分,提供了有序存储元素的功能。ArrayList和LinkedList是List接口的两种主要实现,它们各有优缺点,...

    java基础-匿名类的使用

    在Java中,匿名类是一种没有显式声明名称的类。它常用于在创建对象时直接定义类的实现或重写类的方法。 使用匿名类可以简化代码,特别是在需要实现接口或继承抽象类的情况下。

    Swift匿名内部类像java那样的功能改.zip

    使用swift匿名内部类,实现jave匿名内部类功能,java中的匿名内部类,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就...

Global site tag (gtag.js) - Google Analytics