`
utopialxw
  • 浏览: 369818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA便利类

    博客分类:
  • java
 
阅读更多

java便利类,这个词偶然看到的,维基百科找不到解释。就是抽象类继承接口。

比如Collection接口,里面有很多抽象方法,而AbstractCollection实现了Collection接口。jdk中如下描述这个便利类:

This class provides a skeletal implementation of the Collection interface, to minimize the effort required to implement this interface.

意思就是这个抽象类实现了接口中的大部分的方法,在需要实现Collection接口的时候继承这个类就可以专注实现自己需要的方法。

1:抽象类实现接口,可以实现接口中的所有方法,但这不是必须的。因为抽象类允许抽象方法存在,而接口中的方法都是抽象的。甚至,你可以写一个抽象类继续接口,但是什么都不做

public interface Interface {
	public void method1();
	public void method2();
	public void method3();
}
public abstract class Abstract implements Interface{
	
}

 

很显然,这样做是没有什么意义的。

2:抽象类继承接口的最主要用处应该是“便利”了类实现接口必须实现所有的方法。比如说只想实现method1这个方法,如果直接实现接口的话,那么就需要实现所有的方法。但是有了抽象类之后,就可以在抽象类中实现所有方法,而继承这个抽象类的子类只需实现method1就可以了:

public interface Interface {
	public void method1();
	public void method2();
	public void method3();
}
public abstract class Abstract implements Interface{
	public void method1(){
		
	}
	public void method2(){
		
	}
	public void method3(){
	
	}
}
public class Extend extends Abstract {

	public void method1() {
		
	}

}

 

3:抽象类实现接口主要用在事件监听方面

public interface MouseListener extends EventListener {

    /**
     * Invoked when the mouse button has been clicked (pressed
     * and released) on a component.
     */
    public void mouseClicked(MouseEvent e);

    /**
     * Invoked when a mouse button has been pressed on a component.
     */
    public void mousePressed(MouseEvent e);

    /**
     * Invoked when a mouse button has been released on a component.
     */
    public void mouseReleased(MouseEvent e);

    /**
     * Invoked when the mouse enters a component.
     */
    public void mouseEntered(MouseEvent e);

    /**
     * Invoked when the mouse exits a component.
     */
    public void mouseExited(MouseEvent e);
}


public abstract class MouseAdapter implements MouseListener {
    /**
     * Invoked when the mouse has been clicked on a component.
     */
    public void mouseClicked(MouseEvent e) {}

    /**
     * Invoked when a mouse button has been pressed on a component.
     */
    public void mousePressed(MouseEvent e) {}

    /**
     * Invoked when a mouse button has been released on a component.
     */
    public void mouseReleased(MouseEvent e) {}

    /**
     * Invoked when the mouse enters a component.
     */
    public void mouseEntered(MouseEvent e) {}

    /**
     * Invoked when the mouse exits a component.
     */
    public void mouseExited(MouseEvent e) {}
}

protected class DoubleClickListener extends MouseAdapter {
        // NOTE: This class exists only for backward compatability. All
        // its functionality has been moved into Handler. If you need to add
        // new functionality add it to the Handler, but make sure this
        // class calls into the Handler.
	Handler handler;
	public  DoubleClickListener(JList list) {
	    handler = new Handler(list);
	}

	/**
	 * The JList used for representing the files is created by subclasses, but the
	 * selection is monitored in this class.  The TransferHandler installed in the
	 * JFileChooser is also installed in the file list as it is used as the actual
	 * transfer source.  The list is updated on a mouse enter to reflect the current
	 * data transfer state of the file chooser.
	 */
    public void mouseEntered(MouseEvent e) {
            handler.mouseEntered(e);
	}

	public void mouseClicked(MouseEvent e) {
            handler.mouseClicked(e);
	}
}

 

分享到:
评论

相关推荐

    HtmlFormatter:一个纯净的Java便利类,用于将String格式化为HTML字符串

    HtmlFormatter 一个纯Java便利类,用于将String格式化为Html String。 它旨在与Android一起使用,但是由于它是纯Java,因此在Android领域之外应该可以正常使用,但是我不确定是否存在这种用例。例子。小的() ...

    java实体类生成工具

    Java实体类生成工具是一种高效开发辅助软件,它旨在简化Java应用程序中的数据模型对象(也称为实体类)的创建过程。...通过不断反馈和优化,这类工具会变得更加智能和完善,为开发团队带来更大的便利。

    JAVA基本类源代码

    3. `Integer`类:作为`int`的包装类,提供了将整数与字符串之间转换的便利方法,以及一些数学运算和比较操作。研究`Integer`源码有助于理解自动装箱拆箱的过程。 4. `ArrayList`类:基于数组实现的动态列表,允许在...

    小芳便利店java实现

    在本项目中,“小芳便利店java实现”是一个简单的Java编程示例,用于模拟便利店的货物购买过程。这个项目的核心功能是让顾客可以分次选择商品,然后一次性结算购物篮中的所有商品。通过分析给定的文件名,我们可以...

    JAVA类查找工具

    需要注意的是,尽管这类工具提供了很大的便利,但为了确保安全,使用前应确保来源可信,避免引入潜在的安全风险。此外,了解和熟练掌握Java类路径(Classpath)的概念也是每个Java开发者必备的基础知识,这对于理解...

    JAVA对象以及数据的工具类

    包装类提供了许多便利的方法,例如,将字符串转换为对应的数值类型,或者进行数值比较。 在处理对象时,工具类经常扮演重要角色。例如,Apache Commons Lang库中的StringUtils类,提供了大量处理字符串的方法,如...

    java工具类汇总

    Java工具类是编程实践中不可或缺的一部分,它们为开发者提供了便利的功能,可以大大提高开发效率。在Java中,工具类通常是一些静态方法的集合,用于执行特定的任务,如处理字符串、日期、数组、集合等。本篇将详细...

    javazip压缩类

    JavaZip压缩类是Java编程语言中用于处理ZIP文件格式的核心工具,主要集中在java.util.zip包中。这个包提供了多种类和接口,使得开发者能够轻松地对数据进行压缩和解压缩,尤其是在开发需要处理大量数据的应用时,如...

    小方家的便利店(JAVA)

    【小方家的便利店(JAVA)】项目是一个基于JAVA编程语言实现的软件测试作业,旨在帮助学生理解和掌握软件测试的基本概念和技术,同时锻炼其在实际场景中应用JAVA编程的能力。这个项目的实现通常会涵盖以下几个核心...

    java utils 工具类

    总的来说,JavaUtils工具类是Java开发中的重要组成部分,它们为日常编码工作提供了极大的便利。理解并熟练运用各种工具类,能够提升我们的开发效率,同时让代码更加简洁和易维护。在实际工作中,根据项目需求选择...

    java 集合和内部类资料

    内部类可以访问外部类的所有成员,包括私有成员,这为实现复杂的设计和封装提供了便利。同时,内部类可以实现多重继承的效果,因为一个内部类可以实现多个接口,同时外部类可以继承一个类。 在`Java集合排序及java...

    常用公共JAVA类,基础类

    Java是一种广泛使用的面向对象的编程语言,其丰富的类库为开发者提供了极大的便利。"常用公共JAVA类,基础类"这个项目显然聚焦于提供一套实用的Java基础类库,旨在简化开发过程,提高代码复用性。这个类库包含了...

    Java内部类.pdf

    此外,内部类可以访问外部类的成员变量,这为内部类的实现提供了便利。 5. 内部类的特殊形式 - 匿名内部类可以创建只用一次的类实例。 - 局部内部类通常和方法的参数结合,用于解决小型、一次性的需求。 6. 内部类...

    Java 包装类

    Java包装类是Java编程语言中的一个关键特性,主要用于将...总之,Java的包装类在处理基本类型与对象交互时起着至关重要的作用,提供了丰富的功能和便利。在实际开发中,熟练掌握包装类的使用能提高代码的可读性和效率。

    php调用java类JavaBridge

    在IT领域,跨语言通信是常见的需求,尤其是在服务器端开发中。PHP作为一款广泛使用的脚本语言,有时候需要与Java...JavaBridge为这种跨语言的交互提供了便利,使得开发人员可以更加灵活地选择适合的开发工具和语言。

    JAVA对象序列化保存为XML文件的工具类

    【JAVA对象序列化保存为XML文件的工具类】 在Java编程中,对象序列化是一种将对象的状态转换为字节流的过程,以便可以存储或在网络上传输。而在反序列化时,这个字节流又可以恢复为原来的对象。Java提供了一个方便...

    小芳便利店JAVA源码

    3. Store:小芳便利店 主程序 -static final Goods[] GOODS //所有商品 -static Basket basket //存放选中商品的购物篮 -static final String MESSAGE_HEADER //菜单顶部 -static final String MESSAGE_FOOTER //...

    java 工具类(File,Date,Xml,Number,sqlhelp..)

    这些工具类通常会提供一些便利的方法,如字符串格式化、集合转换、文件流复制等。 总结起来,这个Java工具类集合是一个全面的实用工具库,涵盖了文件操作、日期时间处理、XML解析、数字格式化、数据库操作以及正则...

    RSA+AES 加密工具类 Java

    总的来说,这个“RSA+AES加密工具类 Java”为开发者提供了一个便利的工具,帮助他们在Java项目中集成高级的加密功能,确保数据的安全传输和存储。通过合理地使用RSA和AES,可以在不牺牲效率的前提下提高应用的安全性...

    maven+mybatis+通用mapper生成java实体类,映射接口与映射文件

    本篇将详细介绍如何利用这三个工具,通过`generatorConfig.xml`配置文件,自动生成Java实体类、映射接口以及映射文件。 首先,Maven是一款强大的项目管理和依赖管理工具,它能够自动化构建、测试和部署Java项目。在...

Global site tag (gtag.js) - Google Analytics