我现在要写一个关于比较的类可以写成
class XXComparer{
XXX xxx1;
XXX xxx2;public boolean compare(){
}
}我也可以写成class XXComparer
class XXComparer{
public static boolean compare( XXX xxx1, XXX xxx2) {
}}这两种使用的分别是什么时候呢?

解决方案 »

  1.   

    第一种写法需要实例化这个类才能够使用;第二种不用实例化,直接用compare方法,如果XXComparer这个类仅仅是一个用于比较的工具类,建议使用第二种写法...
      

  2.   

    这个类可以直接implement Comparable接口。形式我觉得1和2没啥太大差别,不同的形式而已。无非是2在使用时,无需实例化,而且不用再费劲给两个变量传值。推荐第二个吧!
      

  3.   

    类的静态方法更像一种功能 更加灵活和高效
    不用去为使用某个方法而去构造一个类 在调用 (如果非要这样做是多么恶心的事啊)
    Java中广泛的使用了第二种方法 最著名的java.util.Collections这个类基本上都是静态的
    功能方法