日期:2014-05-20  浏览次数:20672 次

什么时候定义静态类
我目前的理解是一些工具类
最近想写个Excel的操作类,可以现实多种功能
class static Excel{
public static toCsv(arg..){}
public static read(arg..){}
public static write(arg..){}
...
}


然后看了一下POI的例子源码XLS2CSVmra,突然就不解了
为什么这个类不是静态的
然后又想到
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
sdf.format(new Date());

若我来写,会这样写这个类
SimpleDateFormat.format(new Date(),"yyyy-MM-dd")

可是大牛们没这样写,
突然就觉得连“什么时候定义静态类”这个简单的问题都理解不了
好失落,求助

------解决方案--------------------
在另外一个类内部定义的类,此类的实例化不希望依赖外部类的实例化,此时可以定义为静态类(即,内部静态类)。
------解决方案--------------------
http://blog.sina.com.cn/s/blog_605f5b4f0100zbps.html 给个参考 这里讲的比较详细
------解决方案--------------------
直接定义静态常量。
------解决方案--------------------
引用:
直接定义静态常量。

这个说来麻烦了,目测LZ是想问静态方法,却又扯到静态内部类去了。。
------解决方案--------------------
SimpleDateFormat应该不是工具类,静态类只有内部类,楼主说的应该是静态方法。。
------解决方案--------------------

//可以利用SimpleDateFormat来写自己的工具类,比如
public class DateUtil {

public static String getStringDate(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(new Date());
}
}

静态方法的使用还有“单列模式”,代码写得多,看得多,很多东西自然懂了
------解决方案--------------------
SimpleDateFormat 要先 new 一个新的对象在调用方法。
按照楼主得想法:SimpleDateFormat.format(new Date(),"yyyy-MM-dd") 这样的话 format()方法是静态方法