zoukankan      html  css  js  c++  java
  • Java中的匿名类

    我们知道接口一般用于定义一种规范或操作协议,然后子类实现接口的所有功能。如下面的简单代码:

    定义IMessage接口

    package org.lyk.entities;
    
    public interface IMessage
    {
        public abstract void print();
    }

    定义Message类实现IMessage接口

    package org.lyk.entities;
    
    public class Message implements IMessage
    {
    
        @Override
        public void print()
        {
            System.out.println("正在打印消息!");
        }
    
    }

    测试代码:

    package org.lyk.main;
    
    import org.lyk.entities.*;
    
    public class Main
    {
        public static void main(String[] args)
        {
            IMessage msg = new Message();
            showMsg(msg);
        }
    
        public static void showMsg(IMessage msg)
        {
            msg.print();
        }
    }

    上面的代码能很好的运行。但是如果我们有这样一种场景: Message类只会被使用一次,用完后就根本不关心这个类是否存在。对于这种情况,我们为这种临时使用的类再去定义一个.java文件在项目中显得没有必要。此时我们可以使用匿名类。

    下面的测试代码演示了匿名类的定义与使用:

    package org.lyk.main;
    
    import org.lyk.entities.*;
    
    public class Main
    {
        public static void main(String[] args)
        { 
            showMsg(new IMessage()
            {
                
                @Override
                public void print()
                {
                    System.out.println("测试代码:匿名类的使用");
                }
            });
        }
    
        public static void showMsg(IMessage msg)
        {
            msg.print();
        }
    }

    可以看到,我们没有去手动实例化一个类,而是采用了“new 接口名“这种方式直接定义了一个匿名类对象,然后将它作为参数传递个函数。

  • 相关阅读:
    POJ
    POJ 3268 Silver Cow Party
    POJ 3046
    HDU 2089
    MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
    研发产品经理培训什么?(摘抄)
    设计模式简要分析说明与归纳总结
    设计模式(十四)模板方法模式(Template Pattern)
    设计模式(十三)代理模式(Proxy Pattern)
    设计模式(十二)享元模式(Flyweight Pattern)
  • 原文地址:https://www.cnblogs.com/kuillldan/p/5911609.html
Copyright © 2011-2022 走看看