本帖最后由 michael_wlq 于 2015-8-28 10:20 编辑
类中静态(方法或变量)的应用:如果每个应用程序中都有共性的功能,可以将这些功能进行抽取,独立封装,以便复用。
如果通过建立ArrayTool的对象使用工具类中的方法,对数组进行操作,但发现了以下问题:
1、对象是用于封装数据的,可是ArrayTool对象并未封装特有数据。
2、操作数组的每一个方法都没有用到ArrayTool对象中的特有数据。
这时就应该考虑,为了让程序更严谨,是不需要建立对象的(浪费内存--堆内存),此时可以将ArrayTool中的方法都定义成static的,直接通过类名调用即可。
另外,工具类中的方法如果只是为了完成内部方法的应该定一个功能,那么该方法应该定义为private,而不应该定义为public类型,只供工具类内部调用即可(也可以说为了安全性)。工具类对外只提供接口即可,无需提供内部的实现。
将方法都静态后,可以方便于使用,但是此时该类还是可以被其他程序建立对象的(为了节省内存,应当禁止),
为了更为严谨,强制让该类不能建立对象,可以通过将构造函数私有化来完成。
接下来,将ArrayTool.class文件(工具类)发送给其他人,其他人只要将该文件设置到classpath路径下,就可以使用该工具类。但是,该类中到底定义了多少个方法,以及什么方法,对方不清楚,因为该类并没有使用说明书。
而Java制作程序的说明书,可以通过文档注释来完成:
//制作使用javadoc命令生产说明文档。
命令:javadoc -d myhelp -author -version ArrayTool.java
下面是工具类和使用工具的测试类:
测试类:
- class ArrayToolDemo
- {
- //主函数只用来测试,而不具体实现功能,功能的实现通过调用工具类的方法来实现。
- public static void main(String[] args)
- {
- int[] arr = {3,1,87,32,8};
- //直接通过类名调用工具类中的static方法即可。
- int max = ArrayTool.getMax(arr);
- System.out.println("max="+max);
- }
- }
复制代码
|
|