java实战之数组工具集

java是一门面向对象的语言,我们也提到过,面向对象的一个优点就在于能够提高代码的复用性,前面我们详细讲过数组的查找,排序,等等,为了提高代码的复用性,我们何不自己写一个数组的工具集,来综合下前面所学的面向对象的知识呢,这一节,我们就来写一个实例来练练手,也来加深下我们对所学知识的理解。在写程序之前,我们来想一下需求

需求:

  1、根据所输入的数组,进行查找,排序。

  2、能够单独封装成一个类来供其他用户使用

思路:

  1、首先要完成对方法的封装,我们把所有的方法都放到类当中,这个时候我们需要定义一个类Arrtool

  2、此时类需要一个构造方法进行初始化。

  3、对相应功能分离封装到函数当中,并且明确函数的接受值还有返回值。

代码示例:

/**
*This is a ArrTool For array search , array sort , array print tool set.
*@author Mrsun
*@version v0.0.1
*/

public class ArrTool
{
	/**
	*TO avoid new class 
	*/
	private ArrTool(){}
	
	/**
	*Find array index for special value
	*@param arr 
	*@param val
	*@return int index
	*/

	public static int arrSearch(int [] arr,int val)
	{

		for(int i = 0 ; i <= arr.length-1 ; i++)
		{

			if(arr[i] == val)
				return i;

		}
		return -1;

	}
	/**
	*Use select Alogrithsm to sort the array you input 
	*@param arr
	*/
	public static void selectSort(int[] arr)
	{

		for(int i = 0; i<arr.length-1; i++)
		{

			for(int n = i+1 ; n<=arr.length-1 ; n++)
			{

				if(arr[i] > arr[n])
					swap(arr,i,n);//swap the value

			}

		}

	}

	private static void swap(int[] arr,int i, int n)
	{

		int temp;
		temp = arr[i];
		arr[i] = arr[n];
		arr[n] = temp;
	}

	/**
	*Print the array you input
	*@param arr
	*
	*/

	public static void printArr(int[] arr)
	{
		System.out.print("[");
		for(int i = 0;i<=arr.length-1;i++)
		{
			if(i<arr.length-1)
				System.out.print(arr[i]+",");
			else
				System.out.print(arr[i]);

		}
			
		System.out.println("]");

	}

}

 这里需要注意的有一下几点:

第一为什么我们要让构造函数私有?

答:这是一个单独功能的工具箱,他的功能就是处理数组的相关操作,要是我们把这个类给了其他人供其使用的话,别人又不知道的话很有可能去实例化这个类,但是为了使用时方便,我们定义这个类中的各个方法为静态,这样的一个好处就是,我们不用初始化这个对象,就可以实现对他的访问,对其方法进行使用。这个也是我们在方法前加static关键字修饰的原因。其次,我们在不用对外访问的方法对其进行私有化,这样可以更利于我们对他的封装,不对外提供的都要对齐进行私有化。

第二个,这个工具类如何使用?

答:我们创建了这个工具集,当然知道如何对其进行使用。但是如果我们把这个类,拿给其他人使用的话,我们如何给其他人说明呢?身边的人还好说,但是如果在异地,或者不同的国度,我们如何处理呢,我们这里就需要一个生成帮助文档的工具,java也提供给我们了。

javadoc的使用:

在控制台,输入javadoc会显示一些帮助信息。

javadoc使用的注意事项:要写帮助信息的类是公开类,第二个就是常用的@说明符。

@version 版本

@author 做着

@param 参数(多个参数时要分行写,每行一个参数说明)

@return 返回 

posted @ 2013-09-22 14:10  stark_javac  阅读(241)  评论(0编辑  收藏  举报